cannbot-knowledge回答可追溯技术问题:7步答案框架与零命中处理终极方法
【免费下载链接】cannbot-knowledgecannbot算子开发知识库插件依赖的知识库本体仓,给cannbot提供统一的知识底座。项目地址: https://gitcode.com/cann/cannbot-knowledge
cannbot-knowledge 是 CANN 算子开发 Agent(CANNBot)的知识底座仓库,提供统一的知识检索货架。本文介绍如何用它的7 步可追溯答案框架回答 CANN 算子、API、调试与性能优化类技术问题,并给出检索零命中(零结果)时的标准处理方法,让每一个回答都能追溯到具体知识卡和原始来源,新手也能照着做。
为什么 CANN 技术回答要"可追溯"?
CANN 工程知识有很强的边界性:同一个 API 在 Ascend 910B 和 950 上行为可能不同,同一个优化经验可能只适用于特定 CANN 版本。如果回答只有结论、没有依据,你就无法判断它是否适用于你的平台和版本。
cannbot-knowledge 把知识整理成带 Frontmatter 元数据的Markdown 知识卡,每张卡都记录适用平台、生命周期状态和来源,例如 Ascend 910/95 平台概念卡、数据拷送概念卡。
"可追溯回答"的要点:先给结论,再说明适用范围、依据(读过的卡片与来源)、限制和仍需验证的内容——这正是 recipes/answer_with_evidence.md 定义的流程。
7步答案框架:从提问到可追溯回答
以下步骤整理自 recipes/answer_with_evidence.md:
- 明确问题:一次只回答一个问题。复杂问题拆开查,不要把实现、调试和性能问题塞进同一条 query。
- 查看覆盖情况:确认目标范围内真的有知识卡——只有目录不代表有内容(安装后可先用
knowledge-query的discover查看覆盖统计)。 - 按真实范围查询:保留平台与 DSL 条件,不为了增加结果而扩大范围;记录 CANN 版本,打开命中卡后核对正文边界。
- 选择候选卡:根据标题、摘要、路径和状态选卡。精确 API 名在目标平台稳定卡零命中时,按查询 Skill 单独补搜平台未定位的 draft,仅作待核验线索。
- 打开卡片正文:读结论、适用条件、限制和完整来源,不要直接拿搜索摘要作答。
- 核对来源:确认来源确实支持结论;多张卡片冲突时,先比较它们的平台、版本和来源。
- 整理回答:按固定结构输出——
结论:<直接回答问题> 适用范围:<技术、平台、版本和其他条件> 依据:<使用的知识卡和来源> 限制或冲突:<不适用情况或不同结论> 仍需验证:<源码、实验或性能分析>💡 第 5、6 步是"可追溯"的核心:标题、摘要或来源链接本身都不构成已核验证据,必须读完正文并核对来源。
零命中处理终极方法:先判"故障",再判"缺口"
查询返回空结果时,最常见的误区是直接把"没查到"当成"这个技术不存在"。docs/installation_and_usage.md 的"没有结果时怎么办"章节 + knowledge-query Skill 给出了标准处理链:
| 步骤 | 判断与动作 |
|---|---|
| ① 区分错误与零命中 | 脚本退出码2是参数/索引错误,不是零命中,先修复索引(重跑安装器即可重建索引);退出码0且无结果才是有效零命中 |
| ② 索引不可用 → 停止 | 索引缺失、损坏或过期时停止查询并报告,不能把本次结果当作"没有知识" |
| ③ 核对查询条件 | 核对目标范围的实际覆盖、API 名/错误码拼写,以及平台、技术、版本条件 |
| ④ 定向补搜 | 精确 API 名 stable 零命中时,立即补搜"平台未定位 draft":保留 API 名与 domain/technology,使用--type apis --match literal --include-unlocated --status draft,不带 platform。结果只是平台待核验线索,不能混入原平台结论 |
| ⑤ 普通补搜只换一个角度 | 保持已确定的平台和技术边界,只改变一个有依据的角度(准确标识 → 参数/错误信号、接口 → 使用指南),不要一上来就放宽到"所有技术、所有状态" |
| ⑥ 仍无结果 → 报告知识缺口 | 回答中说明:已检查的范围、具体的知识缺口、是否需要你提供材料或允许核对其他来源。不要用其他平台或其他 DSL 的卡片替代目标证据 |
三条底线(来自 Skill 的权限边界):
- 零命中不证明API 或能力不存在;
- 命中也不等于当前问题已覆盖,仍要读正文核对边界;
- 不能为了召回而修改知识卡的平台或状态字段。
快速上手:安装后如何发起一次查询
安装入口是 install.sh,以 Claude Code 的 consumer(查询)模式为例:
bash install.sh claude /path/to/project consumer安装成功后进入目标项目,向 Agent 提问即可。三种常见入口(详见 安装与使用指南):
| 问题形态 | 推荐入口 |
|---|---|
| 已知准确卡片路径,答案只依赖一张卡 | 直接把路径交给 Agent 阅读全文,例如 Ascend 910/95 平台卡 |
| 不知道卡片路径,或需要多张卡综合 | knowledge-query通用检索 |
| Ascend C API 的契约、选型、本地头文件核对 | ascendc-api-knowledge-query |
提问时给足"问题 + 目标技术 + 目标平台"三要素,例如:
使用
knowledge-query查询 950 平台上实现 Softmax 时可复用的算子设计、API 约束和已知性能问题。请选择相关知识卡,核对来源后综合回答。
延伸阅读:把可追溯能力接入你的项目
- 形成可追溯回答:7 步框架完整说明(本文主要依据)
- 安装与使用指南:安装、验证、零命中处理与常见问题
- 查询 API 最佳实践:API 检索的推荐问法
- 知识路径规范:理解知识卡目录结构,方便按路径直接读卡
- knowledge-query Skill 定义:检索边界、补搜与停止条件的权威说明
- 设计原则:为什么知识库要做成"可追溯到来源"的样子
一句话总结:可追溯回答 = 明确问题 → 按范围查询 → 读卡正文 → 核对来源 → 结构化输出;零命中 = 先排除索引故障,再做定向补搜,最后如实报告知识缺口。照着做,你的每次回答都"有据可查"。
【免费下载链接】cannbot-knowledgecannbot算子开发知识库插件依赖的知识库本体仓,给cannbot提供统一的知识底座。项目地址: https://gitcode.com/cann/cannbot-knowledge
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考