给各类 AI Agent 用的 D-Robotics RDK 资料中心 检索插件。
模型自己记不住板端手册里的烧录步骤、接口名和版本号。这个仓库把官方文档变成 MCP 工具 + Skill:Agent 先搜手册,再打开原文回答,并带上可点击链接。
适用于 Cursor、ZCode、DeepSeek Harness、Claude Code、Claude Desktop、VS Code Copilot,以及任何支持 MCP 的 Agent。
把下面这句话复制给当前 AI:
根据 https://cdn.jsdelivr.net/npm/rdk-docs-mcp@latest/install.md 安装 RDK 文档检索。
Agent 会拉到安装剧本,执行 npx -y rdk-docs-mcp@latest --install,写入 MCP + Skill。不要把 JSON 或仓库地址发给用户。源码仓库可以 private;安装物是 npm 包。
装完后重载 MCP / 重启会话。之后发新版本:MCP 是 @latest,已安装的 Skill 会在 下次 MCP 启动时 被当前包装盖。用户不用再跑安装,也不用改那一行字。
jsDelivr 不可用时,同一文件在:
https://unpkg.com/rdk-docs-mcp@latest/install.md
解决什么问题
- 问「X5 怎么烧录 / TROS 某节点怎么启 / XBurn 支持哪些板」时,不再靠过期训练数据。
- 同一套能力可以装进不同 Agent,不用为每个 IDE 重写爬虫。
六个工具
| Tool | 做什么 |
|---|---|
list_manuals |
列出资料中心已上架手册(X/S 系列、TROS、Model Zoo、Studio、XBurn、OE、X5 SDK 等) |
search_docs |
BM25 检索(标题/路径权重大于正文,中文按二字切分)。指定手册只搜那一本;不指定时只搜手册。问句或 board 点名 X3/X5 时不会返回 S 系列 OE。未传板卡时 ambiguousBoard=true,groups 按板卡分组。每条命中带参考用的 confidence(0–1)。noGoodMatch=true 只在问句里的包名、命令、API 或错误码既不在所搜手册里、也不在顶部命中里时出现。没有这个标记不代表命中一定相关。 |
get_page |
把一页官方文档或一篇论坛主题收成 Markdown。可选 query / section,或 URL 带 #anchor,用来跳过页首、直接打开相关小节。 |
list_toc |
列出某一本手册的页面目录;forum 列出「开发与问题」和「通用」最近帖 |
search_skills |
在 D-Robotics/rdk-skills 目录快照里按任务找 Skill(只读,带 catalog_revision 溯源) |
get_skill |
按目录精确名称返回 Skill 详情与安装引导:flat 给 npx skills add ...,workspace 给整包交接(Pack repo/ref/verify_paths + rdk-pack-installer 获取入口) |
三个 bundled Skill
rdk-docs:规定 Agent 先搜再打开页面;手册是规范、答案主体,论坛只作补充参考,必须附可点击链接。forum-post:把图文/视频发到社区论坛(SSO 登录、composer 发帖、上传与编辑)。浏览器路线需要本机已装 agent-browser CLI;发帖要用户自己的论坛账号。MCP 本身永远只读,写入只发生在 skill 驱动的浏览器/API 流程里。article-writer:把一段工作写成可发布的中文技术文章并渲染成带配图的 HTML。
--install 会把三个 skill 一并写入本机各客户端的 skills 目录;已安装的 skill 在 MCP 启动时 随新版本自动刷新。
不覆盖
- 旧版资料
https://developer.d-robotics.cc/information不在索引里。 - 论坛内容默认走 MCP:
search_docs带source=forum(只要社区)或source=all(手册为主、论坛补充);get_page可直接读公开论坛帖。MCP 论坛检索失败或 0 命中时,才直接 GET Discourse 公开 JSON 兜底。论坛帖子不当官方规范,不要爬论坛 HTML。 - 不需要登录,也不写入文档站或论坛。
Skill 发现(只读)
用户问「X5 40PIN GPIO 有没有现成 Skill」「X5 PTQ 量化部署怎么做」「有没有现成量化好的模型」这类工具/工作流问题时,Agent 调 search_skills,再对候选调 get_skill 核对,最多推荐 1–2 个:
- 目录里有 ≠ 本机已安装。 两个工具只读:不安装、不执行上游脚本、不读写用户 Skill 目录。
- flat 型 Skill 的安装入口是
npx skills add d-robotics/rdk-skills --skill <name>(装整个 Skill 目录)。 - workspace 型(OE 工具链类)必须整包安装:交接
rdk-pack-installer、需要项目根目录、按verify_paths校验,不能只复制单个 SKILL.md。 - 调用方模型负责理解目标、排除、条件和复合任务,再传
task、platform、exclude_platforms、workflow;query 仅排序。纯事实仍查官方文档。复合任务分开检索,多板卡分别调用。 task: camera/gpio/uart/ready_model/model_conversion/model_deploy/model_maintenance/environment/diagnostics/bsp。workflow: ptq/qat/undecided,仅适用于 model_conversion;不确定时只返回入口并澄清。- 分类表
mcp/src/skill-taxonomy-data.ts是带来源的本地目录补充,不是排序白名单。对完整记录指纹校验,源内容变化后分类失效,严格任务查询不返回未分类记录;详情中 classification=null 表示未知。上游目前无标准分类字段,本 PR 不依赖未发布的上游修改。 - 平台明确时使用分类表已审核的系列范围,缺失则 platform_scope=unknown;范围匹配不是电气/型号兼容保证。平台支持 x3/x5/s100/s100p/s600/ultra,比较请求拆分。目标与显式排除冲突才报 platform_conflict,正文不会覆盖结构化条件。
- 旧 query-only 接口保留原有候选检索行为,并返回 legacy_query 警告;不再承诺理解复杂自然语言。新流程不能回退到旧接口绕过明确约束。
- 展示层用
display_name(清理生成器的__SKILL_<family>-__<slug>内部格式),get_skill与安装命令仍用name精确名;同 display_name 的不同记录靠name区分。 - 目录数据来自 rdk-skills 的生成索引(
skill-index.json+pack-registry.json),本 MCP 不维护第二份清单;pack 板卡家族映射取自该仓库 README 的 Supported Boards / Installation layers 表(快照 revision 溯源)。上游 canonical name 归一化(去掉__SKILL_前缀)需在 rdk-skills 侧规范,本 MCP 仅做展示层清理。
对外安装走上面的 URL,不要让用户 clone。本机改代码时:
cd mcp && npm install && npm test && npm run build本地 Plugin symlink(开发调试):
mkdir -p ~/.cursor/plugins/local
ln -sfn "$(pwd)" ~/.cursor/plugins/local/rdk-docs手动合并 MCP 片段见 examples/*.mcp.json(均已是 npx -y rdk-docs-mcp@latest)。
用户问 RDK / TROS / 烧录 / 量化等问题时:
search_docs(能确定产品就带manual,如x5、tros、xburn;已知板卡而问句没写型号就带board;只要社区就source=forum,兼容写法manual=forum)- 读顶部摘要,自己判断是否答得上。
noGoodMatch=false不是相关性证明。noGoodMatch=true只表示某个包名、命令、API 或错误码不在所搜手册和顶部命中里,不要编造这个标识符。摘要答不上就换问法,或补board,或source=forum。问句里的型号会硬过滤另一产品族(问 X3/X5 不会拿到 S 系列 OE)。matchedVia=alias的摘要会说明字面量(如hbm_shell)不在索引里。 - 对判断相关的 1–2 个命中 URL 调用
get_page(手册或forum.d-robotics.cc主题)。长页传query或section。 - 用原文回答,并附上官方文档或论坛链接。
imageOnly=true时展示contentNotes里的官方图片,不要编针脚号。
不要凭记忆编 apt 包名、镜像版本或管脚复用。
- 含图的信息不算已读。 部分页面(如 管脚定义与应用)把完整管脚表放在图片里。对「40PIN 管脚定义」传
section时,imageOnly=true,contentNotes列出图片 URL。涉及引脚 / 电平 / 电源时,要打开或展示这些官方图片,不要拿其他型号的针脚表推断,也不要编造针号。 - 长页用
query、section或 URL hash。 只读开头会错过 FAQ 后部(例如 apt 软件源)。truncated=true表示当前片段仍被截断;需要后文就加大maxChars(上限 40000)重读,仍不完整就明确说明只读到部分内容。 - 官方页面之间的数值冲突不在 MCP 里裁决。 已知一例:RDK X5 的 40PIN 电源负载,硬件简介写 1A @3.3V / 1A @5V,管脚定义与应用写 800mA @3.3V / 500mA @5V。MCP 忠实返回两处原文;Agent 应引用差异并建议以文档维护者的确认为准,不要自行下兼容性结论。此项已转交官方文档维护者核实。
cd mcp
npm install
npm test
npm run eval:live
npm run eval:skills
npm run build
npm run evalnpm run eval 跑 mcp/eval/retrieval-cases.json(约 60 条中英检索 + 3 条小节读取),报告 hit@1、hit@3、MRR 和冷/热/论坛延迟。基线在 mcp/eval/baseline.json。eval:live 用另一组真实开发问题打资料中心(搜 + 拉页)。对标 ESP / Jetson MCP 的结论见 docs/eval-vs-esp-jetson.md。eval:skills 起真实 stdio MCP 连接打 rdk-skills 在线目录,验证六个工具与 flat/workspace 安装引导(需要网络;用隔离 HOME/缓存目录,不碰用户配置)。
冷启动检索读包内 mcp/prebuilt/*.json.gz(文档快照)和同名 .bm25.gz(倒排表,避免每次现场切词)。这不是整站镜像。get_page 仍向资料中心拉正文。快照超过 14 天(RDK_DOCS_PREBUILT_MAX_AGE_DAYS)会改拉线上索引并在 warnings 里说明;线上失败才退回旧快照并警告结果可能过期。设 RDK_DOCS_PREBUILT=0 可强制每次拉线上索引。刷新:npm run build:index(同时重写倒排表),然后提交 mcp/prebuilt/。npm publish 不再在 prepublishOnly 里重建索引,打包的是仓库里已提交、已验证的快照。发布时再拉线上索引会让包内容和验证过的 tarball 不一致。npm run eval:offline 只用包内快照,不访问网络(跳过论坛用例和 get_page)。npm run eval:paraphrase 跑另一组 40 条口语/错字/报错开发集(eval/paraphrase-cases.json),结果写 eval/paraphrase-after.json,改 BM25 之前同一组的结果留在 eval/paraphrase-before.json 作对照。排序是 BM25,没有额外的向量模型:常见多语小模型有几十到几百 MB,放不进这个包,也做不到冷启动 300ms 以内。
磁盘缓存:~/.cache/rdk-docs-mcp(可用 RDK_DOCS_CACHE_DIR 覆盖),默认 TTL 24 小时。官方改文档后,缓存过期会重新拉最新索引;要立刻跟上就删掉缓存目录,或设 RDK_DOCS_CACHE_TTL_MS=0。
Skill 目录缓存是同一目录下的独立快照文件 skill-catalog-snapshot.json:一次刷新先取 rdk-skills 默认分支 commit SHA,再按同一 SHA 拉索引与 Pack 注册表两份 JSON,校验通过后原子替换;损坏视为 miss 重取,过期后刷新失败会明确报「目录不可用」,不回退旧数据。它和文档索引缓存互不影响,也和「MCP 启动时刷新已安装 bundled Skill」是两回事(后者只覆盖本包自带的 rdk-docs/forum-post/article-writer 三个 Skill 的既有安装,见 mcp/src/install.ts)。
S 系列 OE / OE LLM 是 Rspress 站点:不写死 search_index.*.json 的哈希,每次从首页 JS 里发现当前文件名,所以站点发版后哈希变了也能搜。资料中心新上架一本手册时,还要在 mcp/src/catalog.ts 加一条(并补 eval/cases.json)。
契约见 SPEC-rdk-docs.md。MCP / Plugin / Skill 三者关系见 mcp-plugin-skill.md。
MIT。文档与帖子版权归 D-Robotics 资料中心 与 社区论坛 原站。本仓库提供检索与阅读适配,并附带搜索索引快照以加快冷启动;不镜像整站 HTML。get_page 仍读取原站页面。