17 · 深度研究技能组(deep-research 家族)深拆

← 返回主报告:Kimi Agent(云端沙箱)技术报告GitHub 原文

合规与风险声明:本报告为安全研究与互操作学习目的的逆向分析,全程只读采集,未对目标系统做任何修改;文中所有密钥、token、账号级标识(chat_id / project_id / tenant_id 等)均已脱敏;沙箱内发现的默认弱口令(VNC/SSH)属平台侧配置,仅作安全发现披露,请勿用于访问任何不属于自己的系统。docx/pdf/xlsx/kimi-slides 等引擎二进制为 Moonshot 专有许可(禁再分发/逆向),本文仅作行为级描述。报告基于单次分析窗口(约 50 分钟生命周期),软件版本与技能库存随镜像更新可能变化。

采集方式:HTTP 只读(http://127.0.0.1:18080)。采集窗口内沙箱被回收(连接中断),但目标文件已在此前全部拉取完毕,本章节所有结论均有原文证据。 覆盖技能:deep-researchdeep-research-swarminteractive-research-report-en(同时以纯 skill 插件存在于 portal overlay)、对比样本 equity-researchstock-research-report;另追查了引用链下游 docx 技能的 md2docx 管线。

0. 家族全景与定位

沙箱中 research/report 类技能多达 23 个(deep-researchdeep-research-swarmequity-researchequity-researcherequity-research-report(-cn)interactive-research-report-enstock-research-report(-cn)market-insight-reportvc-industry-researchreport-writingresearch-advisor 等)。本组五个核心技能构成一条完整流水线:

deep-research(单 agent 研究循环)
  └─ deep-research-swarm(多 agent 编排版,Phase 0~7)
        └─ Phase 7 交接 report-writing / paper-writing(写作技能)
              ├─ docx 技能 md2docx 管线(citation.jsonl → Word 脚注)
              └─ interactive-research-report-en(报告 → 交互式网站)
equity-research(垂直领域:股票研报,自带 3-Task 架构 + Excel 模型)
stock-research-report(样式复刻:国泰海通/海通国际视觉契约)

值得注意的分发差异:interactive-research-report-en 是唯一一个同时出现在 /app/.agents/skills/(镜像内置)和 /app/.agents/plugins/(portal overlay,纯 skill 型插件,hostKind:"hosted",bundle 5.7MB,作者为个人开发者 zhanhaobing,MIT-0)的研究技能——说明它走的是”云端按会话下发”的商业化路径,且 catalog 接受第三方投稿。


1. deep-research:单 agent 研究循环(116 行 SKILL.md + LICENSE,无脚本)

1.1 输入输出契约

  • 输入:用户复杂问题 + 可选附件;澄清通过 ask_user 工具进行。
  • 输出:默认 Markdown 存 /mnt/agents/output/;用户指定 docx/pdf/xlsx/pptx/webapp 时走”格式路由”——强制先读对应格式技能,且 docx/pdf 必须先生成完整 Markdown 再经对应技能转换(”Do not generate the DOCX or PDF directly from scratch”)。webapp 任务强制先读 webapp-building 技能,禁止 npx 等临时初始化命令。

1.2 核心机制:10+ 步循环 + 递归反思

  • ≥10 个搜索步硬下限(”Perform at least 10 search steps”),每轮禁止关键词重复,”each round brings substantial new information”。
  • 递归反思:每轮搜索后强制输出 Thinking Process + Summary 两小段,且被要求”short and concise”——防止反思本身吃掉上下文。
  • 权威源优先级(政府/学术/同行评审)、”Never fabricate data”、定量分析必须用 Python、时间基准用当前日期。

1.3 不可变引用 ID 机制(本技能最关键的云端耦合点)

原文(SKILL.md L66-74):

Citation indices are immutable source IDs from tool/search results. Do not renumber them based on order of appearance, writing order, or any reference-list order; if a source already has an ID such as [^85^] from tool/search results, that same ID must be preserved everywhere in the document. Citation IDs are used for frontend rendering and source mapping, not for a model-generated bibliography.

配套规则:每句最多两个引用;多源写作 [^1^][^2^],禁止 [^1,2^]禁止在报告末尾生成 References 列表(参考文献渲染是前端的活,模型生成书目反而会污染映射)。表格不设 Source 列,引用标记直接放进数据单元格。

1.4 报告工程规范(防 LLM 文风退化的细粒度约束)

  • 段落 100–1000 词;每个子小节必须多于一段;条件式 TL;DR(仅当问题几句话可答才给);
  • 表格是”主要结构工具”:跨章节的重复实体必须聚合成集中对比表;
  • 修订纪律:不足时扩写已有逻辑相关章节,”Integrated Improvement”,禁止附录式打补丁;
  • 图表:默认 ECharts 先行,即使静态报告也”先 ECharts 再导出 PNG 嵌入”,禁止把 option 对象/script 贴进正文;四维质量条(正确性/图型适配/清晰度/美学一致性——”same entity → same color”)。

:无 scripts/references,纯提示词技能;质量完全依赖模型自觉,无任何确定性校验器兜底(对比 equity-research 有 report_validator.py)。


2. deep-research-swarm:多代理编排协议(509 行单文件,无脚本)

2.1 Phase 0 路由器(四条路由)

分类逻辑只看两个变量:有没有上传文件 × 话题宽度

信号路由
有文件 + “only based on files”/”no search”C(File-Only,零外部搜索)
有文件 + “refer to”/”combine with”/无限制D(File-Augmented,文件为主+外部补缺)
无文件 + 宽泛探索型话题A(Wide Search,两阶段 swarm)
无文件 + 具体有界问题B(Focused,标准管线)

歧义默认值都写死了:拿不准选 A 不选 B、选 D 不选 C(”prefer richer output”)。路由结果要求”一句话声明 + 理由”再开跑。

2.2 相位结构与量化预算

  • A 路独有 Phase 1W:5–8 个互补且刻意 ≥20% 重叠的 facet,≥5 个子代理并行(每个 ≥10 次搜索)做广度扫描,产出 {topic}_wide{NN}.md,orchestrator 合并后才进 Phase 2 分解。重叠不是浪费,是”cross-verification pressure”——这个理念贯穿全文(Phase 2 维度间也要求 ≥30% 概念重叠)。
  • Phase 2:≥10 个维度(强制下限),给出 6 种维度组织轴(分析角度/情景/利益相关方/地域/时间跨度/文件主题)。
  • Phase 3:≥10 个子代理并行深潜,每个 ≥20 次独立搜索;子代理 prompt 必须含五要素(任务/上下文/文件上下文/输出格式/输出路径);输出格式为结构化证据卡:Claim/Source/URL/Date/Excerpt(逐字原文,禁转述)/Context/Confidence
  • Route C 特规:子代理禁止外部搜索,且 prompt 必须内嵌文件原文(”do not assume the sub-agent can access files independently”)——承认了子代理沙箱不一定共享文件系统的现实。
  • 搜索预算按路由量化:A ≥250 次、B ≥200 次、C = 0 次、D ≥150 次(文件已提供基础证据故减量)。

2.3 四级置信度(Phase 4 交叉验证引擎)

层级判据
High Confidence≥2 个代理、独立来源、证据一致
Medium1 个代理 + 权威来源
Low弱来源/博客级/单一未验证声明
Conflict Zone数值不一致、解释分歧、时间口径不一致(同指标不同期间也算冲突,须记录各自归属期间)

冲突处理原则:”Contradictions are signal — highlighted and analyzed, never suppressed or averaged away”。有 Conflict Zone 或关键 Low 项才触发 Phase 5(每个冲突 ≥3 次定向搜索的验证子代理,循环到 Resolved 或”显式标记为领域内真实分歧”);Route C 禁用 Phase 5(不许借外部搜索消解冲突,如实记录带入 Phase 6)。

2.4 输出契约:Everything is a file

所有产物强制落在 /mnt/agents/output/research/(”non-negotiable”,连直接放 output/ 都禁止):_file_analysis.md(F)、_wide{NN}.md(1W)、_dim{NN}.md(3)、_cross_verification.md(4-5,携带置信度分级,”critical”)、_insight.md(6,≥5 条跨维度洞察,每条须≥2 个维度证据支撑)。Phase 7 按文体路由到 report-writing/paper-writing 写作技能,交接时给显式文件路径清单并声明”研究已完成,不需要更多研究子代理”。聊天通道只发状态更新(”Chat is for status updates only”)。

工程质量亮点:纯 prompt 实现了一个 MapReduce 式研究引擎,子代理原语只依赖 task(子代理)+ 共享输出目录;每条规则都有量化判据(≥10 维度、≥20 搜索、≥20%/30% 重叠),把”认真做研究”从口号变成可审计的 checklist。

:① ≥200 次搜索的预算在云环境是巨大 token/时延开销,本地移植必须缩水;② 依赖宿主 agent 框架有 task 子代理原语和共享文件目录;③ 无脚本校验,Phase 4 的四级分类全靠 orchestrator 模型自觉执行。


3. 引用链路全景:从工具侧到前端的完整证据

这是本轮最重要的跨技能发现。链路四段,全部有原文证据:

① 产生(云端搜索工具,沙箱外):搜索工具给每条结果分配全局不可变数字源 ID,并把源记录写入沙箱工作区的 /mnt/agents/.store/citation.jsonl,每行一个 JSON(docx/references/md2docx-reference.md L56-59):

{"id": 123, "url": "https://example.com", "page": {"site_name": "Example Site"}}

沙箱内 269 个技能中没有任何代码生成这些 ID——skills 里 grep 到的全是”保留 ID”的消费侧规则,产生方在云端工具层(本轮 HTTP 只读无法直接观察搜索工具实现,但 /mnt/agents/.store/ 在工作区挂载内,说明工具结果通过云端→工作区落盘)。

② 写作(模型,受技能纪律约束):模型只准原样引用 [^85^],禁止重排、禁止合并写法、禁止生成 References 节(deep-research SKILL.md §6,原文见 §1.3)。

③ 前端映射(Kimi UI,沙箱外):”Citation IDs are used for frontend rendering and source mapping”——前端按 ID 查 citation store 渲染来源卡片/悬停。这就是为什么 ID 不可变:重排会让前端映射到错误的源。

对移植的核心结论:这套机制在工程上可以脱离 Kimi 前端独立运行——ID 契约只是”工具侧稳定编号 + JSONL 溯源库 + 模型禁重排 + 消费侧两层编号”四件套,每一环都能在自有栈里用确定性代码实现(见 §7 移植表)。真正依赖云端的只有两点:搜索工具侧的稳定 ID 分配器,和前端来源卡片渲染;前者约 100 行代码,后者是可选增强。


4. interactive-research-report-en:报告 → 交互式网站(文档驱动型技能的最高水位)

体量:SKILL.md 79 行 + DESIGN.md(106 行)+ CHARTS.md(246 行,23 个图型配方)+ COVER.md(117 行)+ QA.md(80 行)+ assets(theme.css 20.9KB + fonts.css base64 内嵌 ET Book 字体)+ templates(skeleton.html/utils.js 152 行/bundle.py 37 行)+ references(gallery 截图 + BUILD_LOG 范例)+ agents/openai.yaml(仅 4 行界面元数据:display_name/default_prompt)。

4.1 三层架构与输入契约

技能自述分三层:invariants(字体/色板/布局/组件,照抄不许即兴)、abstraction rules(换主题的方法)、methodology(调试循环与事后清单)。输入契约 5 项(开工前与用户确认):

  1. prose fact source:一份报告 md/pdf 作为唯一事实源,网页文字忠实转写并保留对冲措辞(”preserving hedged wording”);
  2. 数据表 → 编译成 js/data.jswindow.RPT = { key: [...] },snake_case 键);
  3. 来源登记js/sources.js(K1–Kn 锚表;无日期的来源必须分级:公司一手 > 交叉验证 > 券商转述 > 推算);
  4. 主题原子(theme atom):一个问题定全局——”这个行业里最具象、可分解、一眼可认的实体是什么?”(芯片=封装/die,猪=工业化养殖场,船=集装箱船);四个封面状态全是同一个物理对象的不同视图;
  5. 语言与交付宽度基线(默认 1680/1280 双验收)。

4.2 QA 门禁(这是该技能最值钱的部分)

模块级调试循环(每个模块做完立即进入,收敛才许做下一个):

截图(playwright 无头,先慢速滚动触发 IO 入场动画,再元素级截图)
→ 以"挑剔设计总监"视角目测批评(重叠/出界/贴边/空白/字体回退/色彩纪律/孤列)
→ 去文本截图:隐藏全部文字后还能认出行业实体或核心机制吗?
→ 换皮测试:只换文案就能移植到别的行业 = 失败(过度模板化)
→ 假图测试:隐藏文字后仍编码 ≥2 个结构变量(数量/时间/流/概率/拓扑/物理单位),只剩方框连线状态点 = 删除
→ 修复 → 复验

收尾门禁(全部通过才算完):node --check 全过;playwright 1680/1280 双宽度整页慢滚扫描(0 pageerror / 0 console error / 0 横向溢出 / 0 残留非目标语言);document.fonts.check('16px et-book')===trueprefers-reduced-motion 下全部动画显示静态完成帧;标签零重叠零出界;bundle.py 单文件版 file:// 直开 0 错误;抽查 5 个数字下钻回溯到 sources.js 与原文。

并行 review agent(QA.md §4,整站完成后):派 3–4 个只诊断不改文件的 review agent 分片——① 全部封面变体+前两章;② 中段全部图表(含下钻抽查);③ 后段至 Sources;④ 响应式(1280/1100/820 三视口,每 1000px 截屏人工审 + scrollWidth 探针)。Prompt 要点可直接照抄:给 URL 和负责区段;要求先慢滚再 scrollIntoView 截图到指定目录;逐张人工看图;产出结构化清单(一句话问题/选择器+截图名/严重度 P0 broken·P1 obvious·P2 polish/一句话修法);”通过项”也要逐条列出;不改文件、不贴 base64。收回报告后按 P1→P2 分诊修复,跑一轮全站回归再收尾。

4.3 模板代码的实际质量

  • templates/bundle.py(37 行):把多文件站点内联成单 HTML——CSS link 转 <style>、按原顺序内联 <script src>、land-110m.json 拓扑数据转全局变量并改写 dashboard.js 的 fetch。简单可靠。
  • templates/utils.js(152 行):共享工具 IIFE——种子化 RNG(可复现纹理)、HiDPI canvas 绑定(DPR≤2)、3D 投影、点半色调场、count-up 动画、drill-down 卡片系统U.showDrill({title,value,delta,sub,source}),来源必须带日期和表键)、chart frame 三件套生成器。调色板里埋着遗产坑并明示:PAL.red 实际是电光蓝 #2251ff(legacy slot name),真红是 PAL.neg
  • assets/theme.css + fonts.css:ET Book base64 内联(禁外部字体链接,保证 file:// 离线可用)。

4.4 坑(postmortem 26 条精选,全是实战学费)

  • canvas 在 display:none 时初始化量到 0×0 → 激活时必须重新 fit();”把新 canvas 漏出 position:absolute;inset:0 选择器”→ 整块空白(出现两次,被标为”最常见坑”);
  • sticky 布局无 height:100vh → 图和文字全挤顶部;host.clientWidth 首帧为 0 → 一切 scale 压扁(铁律:固定 viewBox 坐标系,永不量容器实际宽度);
  • ET Book 只有 400/700 两个字重,写 600/800 静默回退;
  • 句子切分正则必须要求 [.;] 后接空白,否则把小数点当句末(”diluting 65.”);
  • 数据纪律:表里没有的实体宁可不画并注释,缺口画成缺口(红斜纹 + ? + [TBD]),禁止插值

定位判断:这是”把 McKinsey 级视觉 QA 流程 prompt 化”的极端样本,工程密度全组最高;但它产出的是静态站点,与研究/引用机制零耦合,可独立移植。


5. equity-research:垂直领域研究报告工厂(对比样本 1)

体量:5 个 SKILL 入口(主路由 327 行 + tearsheet 322 行 + task1 414 行 + task2 352 行 + task3 430 行)+ 6 个 analysis 框架 + 2 个 valuation + 6 个模块规格 + 6 个 references + 6 个 output 文件(layout/qa/css ×2)+ 4 个 Python 脚本。是本组工程化程度最高的垂直技能。

5.1 路由器:三 Tier + L1/L2 估值深度 + 确定性语言算法

  • Tier A(明确关键词)直接路由;Tier B(意图模糊,如”帮我看看茅台”)必须问用户三选一(速览/深度/简单回答);Tier C(简单事实问题)禁止触发技能。”Do not assume they want a full report — that wastes their time and tokens”。
  • 深度研报再问一层估值深度:L2(三表 Excel 模型 + DCF + 敏感性,3 步)/ L1(仅可比公司,2 步)。
  • 语言选择是算法不是判断(task1 Phase 0.1):数字符比例定 query_lang → 按市场定 market_lang → 一致直接用、不一致必须停下来问,锁定后永不更改。任务内部却留了矛盾:task1 写”Deterministic Algorithm (NO exceptions)”,tearsheet 同一节写”Intelligent Judgment, Not Hard-Coded Rules”——两份文件不同步,是真实维护债。

5.2 3-Task 架构与”STOP 协议”

L2 全链路:Task 1(研究文档 ≥13,500 词,分节最低词数:§I ≥600w、§II ≥2,250w、§III ≥1,800w、§IV ≥2,250w)→ 交付并 STOP → 用户说”继续”→ Task 2(真 Excel 模型:8+ tab、BS 必平、现金流与 BS 勾稽、字体颜色约定蓝=硬编码/黑=公式/绿=跨表链接)→ STOP → Task 3(HTML→PDF ≥25 页)。禁止自动串联 Task;数据走文件不走记忆(”Data flows via files, not memory”)。

5.3 分析层↔展示层契约(references/output-schema.md,312 行)

定义 13 个 Section 的结构化中间对象({company}_{ticker}_analysis_brief.md),六维分析(H1 竞争格局…H6 技术周期)每维含 conclusion/key_data_support/so_what/information_class(verified 分级仅内部使用,永不出现在报告里)。”Neither layer should bypass this contract”——分析层必须填满必填字段,展示层不得重新推导分析结论。末尾 7 条校验规则(投资论点表必须恰好 4 行、多空因子各 ≥1、催化剂日历 ≥4 事件含下次财报等)。

5.4 数据纪律(data-sources.md,447 行)

  • 数据源按市场分优先级:A 股/港股 iFind > Yahoo > 天眼查 > Web Search;美股 Yahoo 优先。iFind 报告期参数 YYYYMMDD 且 MM DD ∈ {0331,0630,0930,1231},美股代码 iFind 用 .N/.O 后缀、Yahoo 不带后缀(常见错误全列表化)。
  • 股价数据零容忍 + 重试协议:失败五类定义(超时/空响应 <100B/显式错误/有效行 <50/异常)→ 单源最多 3 次重试(指数退避 2/4/8s,每次重试前跑参数诊断决策树)→ 换源(iFind→Yahoo)→ 全部耗尽则跳过模块并标注”无公开数据”——”⛔ NEVER: after 1 failure, immediately fall back to mock data”。
  • Web 搜索预算封顶:Task 1 全程 ≤25 次(API 调用不计),接近上限时收口并把缺口转为 §X 风险节的”data limitation”——把数据缺口制度化为一等公民输出,与 irr 的”缺口画成缺口”同一哲学。

5.5 QA:三层级门禁 + 确定性校验脚本

  • output/report-qa.md:A 级 23 项(任一失败禁止交付)/ B 级 27 项(>3 失败禁止交付)/ C 级仅记录;质量门禁循环最多 3 轮;”任何修改后必须重跑全循环,无例外”。
  • scripts/report_validator.py(132 行,纯 stdlib):正则检查 HTML 完整性(</body>/</html> 各恰好 1 个)、必备 CSS 类(.report-container/.cover-split/.debate-table/.exec-summary)、模块数(equity ≥18 / tearsheet ≥8)、exhibit 数、base64 图表数、禁止原始 Mermaid(PDF 不执行 JS)。exit code 语义化,支持 --json
  • scripts/chart_generator.py(157 行):matplotlib Agg 后端,5 种图型(revenue_segment/margin_trends/market_share/pe_band/scenario_comparison),JSON 进 SVG 出。代码本身平庸(无字体处理、无 hatch 预测样式——尽管模块规格书要求 forecast 期 hatch)。
  • scripts/embed_charts.py(110 行):{{PLACEHOLDER}} → base64 SVG <img> 替换 + 图表计数。
  • scripts/stock_chart_generator.py(102 行):52 周股价 + 基准 rebase 叠加 + 成交量双轴。
  • Task 3 要求 ≥10 个数字与 Excel 逐项 cross-check(封面营收=IS tab FY0、敏感性中心格=Sensitivity tab 中心等,全部”Exact”)。

5.6 文档-代码不一致(真实坑,移植前必须修)

  1. SKILL-task3-report.md 让模型调用 embed_charts.py render --specs '[...]'embed_charts.py count --html——这两个子命令在实际脚本里不存在(实际是 --count_only + --html/--chart_dir);文档自己也承认”The --json flag alone does NOT return base64″并给了手动 4 步 fallback,说明作者知道 wrapper 不可靠。
  2. equity-report-charts.md 的调用示例传 {"years":...,"segments":{...}}--currency/--unit 参数,chart_generator.py 实际期望 {"labels":[],"datasets":[]} 且无这两个 flag。
  3. report-qa.md A23 行表格错位(Standard 列串进了 A22 的内容),markdown 表格已损坏。

这三处都指向同一结论:技能文档靠模型运行时自适应纠错活着,不是可盲信的确定性规范。


6. stock-research-report:样式契约驱动复刻(对比样本 2)

SKILL.md 162 行 + references/structure_contract.md(338 行)+ style_contract.md(286 行),零脚本。做的是券商研报视觉身份复刻(国泰海通/海通国际两变体)。方法学值得注意:所有样式参数来自对真实 PDF 参考件的逆向提取——颜色用渲染截图 200 DPI 像素采样、字体用 fitz(PyMuPDF)枚举确认(正文是楷体_GB2312 而非想当然的宋体,标题黑体)。契约细到:封面页 8 个必备元素(含”往期回顾”列表、分析师登记编号栏)、目录必须点线前导符、页脚”请务必阅读正文之后的免责条款部分 X of Y”、免责声明多页(评级定义/评级分布表/九个法域的分发通知)、”NO decorative circles”这类负向约束。版权警示:该技能复刻的是真实券商的品牌视觉身份(logo、版式、免责声明文本),自用研究笔记无妨,对外分发有商标/合规风险。

与 equity-research 的分工:equity-research 管”分析什么、怎么验证”,stock-research-report 管”长什么样”,两者可串联。


7. 移植评估

7.1 引用 ID 机制的依赖拆解(任务重点问题)

环节云端依赖脱离 Kimi 前端能否运行
不可变 ID 分配云端搜索工具(每次搜索结果给稳定 ID)可替代:任何搜索封装在返回结果时分配会话内单调递增 ID 即可,约几十行
citation 溯源库/mnt/agents/.store/citation.jsonl(工具侧落盘到工作区)可替代:工作区写一个 JSONL(id/url/site_name/date),md2docx 管线直接可用
模型侧纪律(禁重排/禁 References 节)无,纯 prompt直接拷贝,零成本
前端来源卡片Kimi 前端按 ID 渲染可缺省:没有前端时 marker 是惰性文本,不影响报告本体;自有 UI 可做 hover 卡片(JSONL 查询即可)
离线转换(脚注/尾注)md2docx 五脚本 + pandoc/python-docx/lxml完全可移植,开源依赖,契约清晰(两层编号分离 + missing 保留警告)

结论:整套机制可以脱离 Kimi 前端独立运行。 硬依赖不是”前端”,而是”工具侧 ID 稳定性”——只要自有搜索工具在一次研究会话内对同一 URL 返回同一 ID,链路就闭合。Kimi Code 移植时最小实现 = 搜索工具包装器(分配 ID + 追加 JSONL)+ 技能原文 + (可选)md2docx 管线。

7.2 移植评估表

技能/组件对 Hermes 价值对 Kimi Code 价值移植工作量硬依赖
deep-research(单 agent 循环)——10+ 步循环 + 递归反思 + 引用纪律是纯 prompt,直接增强 Hermes 研究能力——SKILL.md 即拷即用,Kimi Code 已有 WebSearch/WebFetch纯拷贝(仅需把 ask_user/mnt/agents/output 换成本地等价物)搜索工具需返回稳定源 ID 才能保住引用机制
不可变引用 ID + citation.jsonl 契约——溯源库 + 两层编号分离是任何严肃研究 agent 的基建——加一个搜索包装器即可闭环需适配(写 ID 分配器 + JSONL 落盘,约 100-200 行)无闭源依赖;前端卡片可选
deep-research-swarm(Phase 0 路由 + 四级置信度)——若 Hermes 有子代理原语,这是现成的多代理研究乐谱;路由信号表和置信度判据可直接抄——Kimi Code 子代理能力(task/agent 工具)具备,但 ≥200 次搜索预算需按本地配额大砍需适配(替换 task 原语、输出目录、砍搜索预算)子代理 + 共享目录;无云端 API
swarm 的 Route C/D 文件研究——”文件为主+外部补缺”的分流逻辑通用纯拷贝(规则部分)
interactive-research-report-en(设计系统+QA 门禁)——Hermes 若不做可视化报告站点则价值限于 QA 方法论(截图→批评→修复循环、三重测试、分片 review agent 可泛化到一切前端产出)——Kimi Code 有 playwright/浏览器工具链,整个技能(含 theme.css/utils.js/bundle.py/ET Book 字体)可目录级拷贝,唯一外部依赖 d3/topojson 需 vendor需适配(vendor d3 本地化 + 替换 playwright 调用方式);QA 方法论部分纯拷贝d3.min.js/topojson vendor 文件(本轮只确认了引用,未取回本体);playwright
equity-research 整体——金融垂直,Hermes 通用 agent 用不上全流程,但 3-Task STOP 协议、Hard Gate Table、output-schema 契约是通用范式——Kimi Code 已有 kimi-datasource 插件(iFind/Yahoo/天眼查同构),数据源层可对接需重写数据源层(ifind_* → 本地数据源插件调用),其余 prompt 可拷iFind/天眼查/Caixin 为云端 agent-gw 插件(凭证在 root 的 agent-gw.json,模型用户读不到);Yahoo 可公开替代
equity-research 的零容忍+重试协议(data-sources.md §Missing Data)——”失败五类定义→诊断决策树→指数退避→换源→跳过并标注”是 LLM 调外部 API 的通用防编造红宝书纯拷贝(改源名)
report_validator.py / chart 三脚本低-中——validator 思路(确定性结构校验兜底 prompt 技能)值得抄,代码本身平庸且与文档不一致同左需重写(文档与代码参数契约已漂移)matplotlib/pandas
stock-research-report——单一券商视觉身份,且有商标合规风险纯拷贝无;但有品牌/版权风险
md2docx 引用转换管线(docx 技能子件)——把 [^N^] 报告转 Word 脚注/尾注的确定性管线,Hermes 交付 docx 时直接可用——Kimi Code 面向 CLI 用户,docx 需求较弱需适配(5 个 Python 脚本需取回本体;本轮只拿到规范文档)pandoc + python-docx + lxml(全开源)

7.3 凭证与密钥

本组技能未发现任何密钥/token 硬编码。外部数据能力全部走云端 agent-gw 插件(ifind/tianyancha/yahoo_finance 等在 /app/.agents/plugins/,API key 位于 root 的 /root/.kimi/agent-gw.json 只读 444,kimi 用户与模型上下文均读不到——引自一轮 10-plugins 章结论)。技能正文只引用工具名(ifind_get_price 等),不接触凭证。

7.4 横向工程启示(给 Hermes/Kimi Code 的抽象经验)

  1. “量化纪律”代替”认真做”:≥10 搜索、≥20%/30% 重叠、四级置信度判据、A/B/C 三级门禁——把所有软性质量要求写成可审计数字,是这批技能与社区 prompt 的最大分野。
  2. Everything is a file + STOP 协议:多阶段产物的交接全部走显式文件路径 + 用户单词续跑(”继续”),把长任务拆成可断点续传的流水线;聊天只发状态。
  3. 数据缺口一等公民化:搜索预算耗尽 → 缺口写入风险节;图表无数据 → 跳过模块并标注;引用缺失 → 保留 marker + 警告。宁可显式缺失,绝不编造——这套立场贯穿全部五个技能。
  4. 文档-代码漂移是真实存在的:equity-research 的三处不一致说明 Kimi 的技能迭代是”文档先行、代码追不上”,移植时必须以代码为准重新核对契约。
  5. 采集限制说明:本轮后段沙箱被回收(HTTP 隧道中断,与一轮”约 50 分钟空闲回收”结论互证),未能取回 irr 的 gallery 截图、theme.css/fonts.css 本体与 docx 的 md2docx 五个脚本源码;如需移植这两件,需下一次采集窗口补齐。