市场调研 SOP(多 Agent 并行)
主研(主 Agent):不出分析结论——出流程、守纪律、做裁决、负责交付。调研、建模、综合由子 Agent 完成,每份工件走文件交接;任何一环可被替换、打回、重跑。
何时使用
- 正触发(五类):做市场调研 / 调研某行业、品类或闭环 / 评估这个生意能不能做 / 算算投入和回本 / 可行性分析。
- 无「调研」表达同样触发:如「这个生意能不能做」「投入多少、多久回本」;凡目标是为商业决策收集市场证据并给出可行性结论,即触发。
- 负触发(不加载,上下文零占用):单点事实问答;纯技术方案调研。
- 命中后先与用户确认命题与边界,得到确认才进入 S1;未确认不得派发。
- 误触发且用户仅要轻量回答:降级为直接回答并说明,不强行走全流程。
角色与坐标
- 主 Agent(本 skill 执行者):出流程、守纪律、做裁决;不替子 Agent 写分析结论。
- 运行期角色(派发面枚举,共 5 个):
market-researcher(市场与需求)、supply-researcher(供给与成本)、channel-researcher(渠道与竞争)、financial-modeler(财务建模)、synthesis-writer(综合裁决)。 - 与构建期角色(产品经理/架构师/前端/后端/组长/测试)严格隔离;两套角色名不得混写进同一派发件。
五段流水线
体量参考(估时估费口径)与格式示例指引见 references/volume-and-examples.md。
一次完整调研的产出目录(相对宿主工作目录):
docs/research/
00-brief.md 命题书(主 Agent 写,不派发;≤30 行)
01-market.md 市场与需求(market-researcher)
02-supply.md 供给与成本(supply-researcher)
03-channel-competition.md 渠道与竞争(channel-researcher)
04-financial-model.md 财务模型(financial-modeler)
00-final-report.md 综合裁决(synthesis-writer;编号 00 置顶)
<报告名>.docx / .html (可选)S5 渲染产物,非工件
工件统一格式:frontmatter 8 键(artifact / owner / version / status / created / reviewers / gate / supersedes)+ 四块正文(结论 → 依据 → 影响 → 未决项)。00-brief.md 的「结论」块首行必须含固定确认行:用户确认:<YYYY-MM-DD> 命题与边界已确认(缺失即未确认,不得派发)。
S1 界定命题(主 Agent 自己做,不派发)
- 动作:把用户原话改写为可证伪命题(含失败定义);列三路必查维度(按对象裁剪);写
00-brief.md(≤30 行);宿主有 runtime 时铺设账本(明细见references/runtime-ledger.md)。 - 输入:用户原话(命题与边界须经用户确认)。
- 产出物:
docs/research/00-brief.md。 00-brief.mdfrontmatter 取值:artifact=00-brief / owner=orchestrator / version=v1 / status=draft / created=<日期> / reviewers=[orchestrator] / gate=— / supersedes=—。- 完成判据:命题可证伪、失败定义非空、固定确认行在、(有 runtime 时)账本 plan 就绪。
S2 三路并行(唯一并行段;同一条消息同时发出 3 个派发,并发 ≤3)
- 动作:按
references/dispatch-templates.md的成品模板逐字复制,按其 §1 填充总则替换四类字段槽(角色 id / 命题 / 日期 / 产出物绝对路径)与尖括号宿主参数(<宿主工作目录>/<项目 id>/<正在做什么>);产出 01/02/03 三路工件。 - 输入:已确认的
docs/research/00-brief.md(非空且固定确认行在)。 - 产出物:
docs/research/01/02/03。 - 完成判据:模板零猜谜;同消息发出;前置
00-brief.md非空且确认行在。
S3 财务建模
- 动作:派
financial-modeler(允许读 = 01-03);六件必产定义与模板见references/dispatch-templates.md。 - 输入:01/02/03 三路工件(存在且非空)。
- 产出物:
docs/research/04-financial-model.md。 - 完成判据:六件齐全;参数 100% 标注「来源章节」或
[假设];计算可复现。
S4 综合裁决
- 动作:派
synthesis-writer(允许读 = 01-04);必产定义与模板见references/dispatch-templates.md。 - 输入:01-04 四份工件(存在且非空)。
- 产出物:
docs/research/00-final-report.md。 - 完成判据:每环节判定词 ∈ {通, 勉强通, 不通};两层终局裁决判定词 ∈ {能做, 不能做, 有条件能做};未决项两栏合计 ≥3 条。
S5 交付
- 动作:需要双格式时从 md 渲染 docx/html(渲染规则、降级口径与摘要模板见
references/delivery-and-render.md)。 - 动作(图表):报告含图表时按
references/chart-playbook.md出图(HTML/CSS → 无头 Chrome → PNG;十类原型 + Tufte 审校 + 出图后回看 PNG 的校验环),图表数字必须与 md 工件逐一核对。 - 输入:
docs/research/00-final-report.md及全套 md 工件(存在且非空)。 - 产出物:
docs/research/00-final-report.md(+可选 docx/html + charts/)。 - 降级:无 Node 或 docx 依赖缺失时降级为仅 md 交付(md 为唯一真相),口径见
references/delivery-and-render.md§4。 - 完成判据:postcheck=0;用户摘要六数字(市场盘子/价格带/单件毛利/启动投入/回本周期/最大回撤)齐全;md 唯一真相。
串行前置:派发任一段前实查上游工件存在且非空;缺失即不派发,先补齐。
数据纪律
以下栅栏内 5 条为 canonical;派发模板以 抄:SKILL.md §数据纪律|整段复制 槽引用,禁止改写;复制时只取栅栏内文本,不含本节标题、引导句与栅栏行;编造一个字即 R2 FAIL 重做。
- 每个关键数字必须有来源(URL 或明确出处 + 年份);区分「有源 / 传闻 / 推断」三档,
推断必须标 [推断];财务模型参数另加 [假设] 档。
- 不同机构口径打架时并列呈现,不硬凑成一个数;查不到写「未查到」,严禁编造。
- 成本/价格给区间(上下限);金额带单位与年份。
- 中英文信源都查;优先近 2 年数据。
- 回传信号 ≤15 行。
派发纪律
- 三要素必填:目标 / 产出物绝对路径 / 边界;缺任一即拒发。
- 一层编排:子 Agent 不得再派孙 Agent;需要拆解就回报主 Agent。
- 心跳:超过 90 秒的命令先发 heartbeat——看门狗分不清「深思」与「挂死」。
- 上游落盘再派下游:派发前实查引用文件存在且非空。
- 并行要真并行:能同时开工的(三路调研)必须同一条消息同时发出。
- 双宿主:有 runtime(
runtime/cli.py存在且 python 可达)走 spawn/progress/heartbeat/finish;无 runtime 直接派发,等效纪律为首条消息先报 + 静默自查补报。 - 派发前的边界三条固定句(canonical;模板槽
抄:SKILL.md §派发纪律|整段复制即以下三条,逐字复制,不含本引导行):- 只管本路
- 禁止派孙 agent
- 禁止修改
runtime/**
- 成品模板与发出前自检清单见
references/dispatch-templates.md。
门禁
每份工件收口逐条核;退回即重改、版本 +1;同一工件返修 2 轮仍不过 → 回炉。
- 派发前:三要素缺一 → 拒发。
- R1 结构完整:frontmatter 8 键 + 结论/依据/影响/未决项四块齐全,缺一退回。
- R2 来源覆盖:抽查 10 个关键数字,≥90% 有来源;发现编造即 FAIL 重做。
- R3 口径冲突:打架处被抹平(未并列)→ 退回。
- R4 未决项:<3 条 → 退回。
- R5 财务溯源:参数标注 <100% → 退回。
- R6 裁决质量(三子条件全过):① 环节判定表判定词 ∈ {通, 勉强通, 不通};② 两层终局裁决判定词 ∈ {能做, 不能做, 有条件能做};③ 废话黑名单(既有机会也有风险 / 机遇与挑战并存 / 有待进一步验证 / 利弊都很明显 / 长期看好但短期谨慎)命中即退回。
- S5 交付检查:postcheck ≠0 或摘要要素缺 → 不交付。
失败模式摘要
完整 14 症状全集与对策在 references/failure-modes.md;本节为摘要,冲突时以 references 为准。常见 6 条:
- 子 Agent 因模型额度/不可用失败 → 受控重试 1 次并留痕;再失败停下找用户。
- 子 Agent 长时间静默 → 先按 90 秒法则确认是不是在跑长命令。
- 看板/账本完成度 = 0 → 查 plan 与
--phase。 - 双格式内容漂移 → 只改 md 重渲染。
[推断]被下游洗成事实 → 终版抽查打回。- 结论软弱(资料汇编) → 检查失败定义是否缺失,退 S4 重写。
宿主与账本
- 探测口径:宿主存在
runtime/cli.py且 python 可达 → 有 runtime;否则无 runtime。命令全集与补账排查见references/runtime-ledger.md。 - 有 runtime:S1 铺账本(plan 铺阶段;task 挂
--phase);子 Agent 按 spawn/progress/heartbeat/finish 上报;命令失败 → 绝对路径重试 → 仍失败降级为直接派发并留痕。 - 无 runtime:直接派发;「开工即报」等效为首条消息先报;「看门狗」等效为静默自查补报;账本以工件文件即进度。
- 红线:严禁伪造账本或进度数字。
环境注记
- python 用绝对路径执行(Git Bash 常缺 coreutils);本机实测路径示例见
references/environment-notes.md(标注「本机实测,按需替换」)。 - skill 新装/新改需新会话生效。
- Windows 路径与引号规则、python 不在 PATH 等常见故障处置见
references/environment-notes.md。 - 渲染前置依赖(Node + docx@7)归属
references/delivery-and-render.md。
references 索引
references/dispatch-templates.md— 5 份派发模板 + 默认必查清单 + 发出前自检;S2/S3/S4 派发前读。references/runtime-ledger.md— 宿主探测、账本命令全集、无 runtime 等效纪律;S1 铺账本前与账本异常时读。references/failure-modes.md— 14 症状全集与完整对策;症状出现时及 S5 对账读。references/delivery-and-render.md— 渲染铁律、依赖与降级、摘要模板;S5 交付前读。references/volume-and-examples.md— 体量参考与格式示例;新会话首用或用户询问规模/耗时读。references/environment-notes.md— 环境注记全集;命令异常、安装/更新 skill 后读。references/chart-playbook.md— 出图管线(HTML/CSS→Chrome→PNG)、设计 tokens、十类图表原型、Tufte 审校表、校验环;S5 渲染图表前读(v2.1 新增)。scripts/render-charts.js— 图表渲染管线模板(复制改数据即可;v2.1 新增)。