验证与故障排查
用于确认你的 AI 工具是否真正使用了 CCC 文档的金丝雀问题,以及当它仍然答错 CKB 相关问题时的排查步骤。
设定规则并写好提示词,并不能保证 AI 助手真的读了你指定的内容——规则可能静默加载失败,上下文窗口可能被截断,模型可能会依赖记忆中的(通常是 EVM 形态的)假设。本页为你提供一种快速验证方法,以及在验证失败时的决策树。
金丝雀问题(Canary Questions)
以下每个问题都有唯一正确的答案,而未加载 CCC 的 Agent Skills 的模型答错的概率很高。你可以在完成配置后,或在任何怀疑助手已不再基于文档回答时,选一个问题来验证。这些问题都直接取自 ckb-ccc-fundamentals 或对应的 spoke skill 中的"幻觉防护 / 常见陷阱"表格,因此如果你发现答案有误,可以直接将助手引导回那部分内容。
| 问题 | 正确答案 | 答错意味着 |
|---|---|---|
"signer.getBalance() 返回 number 还是 bigint?" | bigint,单位是 Shannon | 模型在假设 EVM 风格的浮点数余额 |
| "正确顺序是什么:先构建输出(outputs),再按 capacity 补全输入(inputs),然后补全手续费(fee),最后发送——还是先补全手续费再补全输入?" | Outputs → completeInputsByCapacity → completeFeeBy → sendTransaction | 模型不了解 CCC 要求的交易构建流水线 |
"在使用了 ccc.Provider 的 Next.js 应用中,是否需要 "use client"?" | 是 | 模型不知道 Next.js App Router 的常见陷阱 |
"对于 UDT 转账,在 completeInputsByCapacity 之前必须执行什么操作?" | udt.completeBy(tx, signer) | 模型生成的交易会静默丢失 UDT 找零 |
"普通的 Node.js 脚本应该导入哪个包——@ckb-ccc/core 还是 @ckb-ccc/shell?" | @ckb-ccc/shell(它重新导出了 core) | 模型在未被提示的情况下选了底层包,说明它没有参考"包选择"表格 |
模型能在你未向提示词中粘贴任何文档内容的情况下全部答对这五个问题,说明它确实加载了相关的 Agent Skills(或同等上下文)。这才是衡量标准——而不是"听起来很自信"。
如果助手仍然答错
按顺序逐一排查——每一步都对应排除 配置 AI 工具 中的某一层配置问题:
- 安装是否真的执行了? 运行
npx skills list,确认你的工具中确实列出了ckb-ccc-*相关的 skill。如果没有列出,请按配置 AI 工具中的说明重新运行npx skills add ckb-devrel/ccc,并选择你要测试的工具。 - 规则是否在正确的作用域内? 项目级规则仅适用于该项目。如果你从另一个仓库或项目外的临时文件进行测试,项目级规则不会生效——请改用全局/个人路径。
- 工具是否真的将规则附加到了当前会话? 对于没有基于文件的规则机制的纯聊天工具(如普通 ChatGPT 等),你需要为每次会话粘贴系统提示片段,而非只粘贴一次——详见配置 AI 工具。
- 上下文窗口是否已满? 在长时间的会话中,早期加载的规则可能被挤出或降低优先级。开启一个新会话,重新问一个金丝雀问题,再下结论说配置有问题。
- 助手是否拉取了一份过期的副本? 已安装的 skill 文件是某个时间点的副本,并非实时拉取。运行
npx skills update来更新——参见保持 skill 最新。 - 要求助手展示依据。 直接问:"请引用
ckb-ccc-fundamentalsskill 中回答这个问题的原话。" 如果它无法引用任何内容,说明它没有在读取文件——它是在猜测并碰巧蒙对了,或者答错的原因并非缺少上下文。
配置没问题但答案仍然不对时
如果规则已加载,但助手在某个具体话题上仍然答错,说明问题已经触及了已加载 skill 的边界——每个 skill 都是其领域内容的精选摘要,而非完整的文档。此时应将其引导到精确的源文档,而不是与它争论:
- 将助手指向具体的指南。 将具体页面的 Markdown 内容给它,例如
https://docs.ckbccc.com/en/docs/guides/udt-tokens.md,而不是给 skill 文件。完整列表参见告诉你的 AI 去哪里找答案。 - 检查对应的 spoke skill,而不只是 hub。
ckb-ccc-fundamentals只涵盖跨领域的基础知识——signer/wallet、交易、UDT 和 Spore 的细节各自位于独立的 spoke skill 中(参见/skill.md)。如果某个话题答错了,可能意味着 hub 加载了但 spoke skill 没有。 - 签名和类型相关的问题,使用 API 参考文档。 没有任何一个 skill 文件包含所有参数类型——将助手导向 DeepWiki/Context7 或 api.ckbccc.com 获取精确的方法签名(参见
ckb-ccc-fundamentals的步骤 0)。 - 重新锚定,不要凭记忆纠正。 在长会话中,要求助手在继续之前重新拉取相关页面,而不是信任会话早期缓存的答案。
小结
这样就形成了一个闭环:你的工具已经配置完成,你也确认了它确实加载了规则,并且在每次请求时你都正确地提示它。每当你设置新机器、切换 AI 工具,或将 CCC 升级到新的主要版本时,都可以重复金丝雀问题来验证。
Last updated on