日期:2026-10-09;10-10 按 1010 会白晨对本文 v2(AIC-2693 第二个附件)的意见和《NDClaw 服务端对接手册》v1.0 回修,同日按子任务 AIC-2694 的合规评估补小红书执行的核实结果。对象:本周目标一「完成 AI 助手与外部 Agent 协作技术方案设计」(周目标原文未入库,三项周目标见 10/16 结项待办(原文引用:../plans/2026-10-08-创业平台10月16日结项待办.md;未收录于本包)「周目标」一条),明确团团拆解任务后的能力匹配、执行方对接、结果回收三段流程,以 ndclaw 为第一个外部执行方,作为 10/12~10/16 开发与 10/16 交付的依据。场景侧的具体落地见姊妹篇 直播电商场景落地方案(原文引用:2026-10-09-直播电商场景落地方案-design.md;未收录于本包)。表结构、状态机、时序、接口与配置这些实施细节,等本文确认后再写(10-09 写过一版纯技术方案 v3,留在 AIC-2693 第三个附件)。
性质三分:白晨已定/本文提案/待白晨定,每条规则都标明。团团现有代码在分支
codex/tuantuan-project-assistant(c65148be,未合入
master,已推到 origin:https://github.com/ndhy-app-web/venture-os/tree/c65148be),下文简称「团团分支」。
目标
范围外
docs/superpowers/specs/2026-09-29-团团陪跑运营层-design.md
3.3 节)。这与陈洁「Agent 要真把事做掉」的要求有张力;1010
会老板仍希望直接在小红书执行,列入第 6 节,接法见 3.11;合规与安全风险见
替用户执行操作的合规与安全风险(AIC-2694,下称「合规评估」)。路径和命名都是本文提案,实施计划阶段可以调整。
| 路径 | 新建/修改 | 说明 |
|---|---|---|
apps/api/app/tuantuan/ |
修改(团团分支已有) | ① 把写死的 INSTRUCTIONS 拆成「内核指令 +
场景包」,场景包用 Pydantic AI 的 Capability 挂载;②
新增派单、预审用到的结构化输出 |
apps/api/app/tuantuan/scenarios/<场景>/ |
新建 | 场景包:SKILL.md(提示词正文)+
pack.yaml(立项维度、任务模板、关卡等结构化部分)。首个场景包是直播电商,见姊妹篇 |
apps/api/app/executors/ |
新建 | 执行方域:执行方登记、统一适配接口、ndclaw A2A 适配器、执行记录、交付块解析 |
apps/api/alembic/versions/ |
新建迁移 | executors(执行方登记)、executions(执行记录)、execution_messages(工作间消息)、project_facts(项目事实)四张表 |
apps/api/app/common/config.py |
修改 | 新增 NDCLAW_A2A_BASE_URL 等(手册确认不需要
biz-code 头);BTS 凭据沿用 apps/api/.env
里已有的 venture-os BTS 应用(8158568859),不入库 |
apps/api/tests/fake_a2a/ |
新建 | 假 ndclaw A2A 服务,供单元和集成测试用,照
apps/api/tests/fake_cs/ 的做法 |
apps/web/src/features/projects/(任务工作间) |
新建 | UI 由陈高武在周目标三里设计;本文只定接口 |
apps/api/app/tasks/ |
已存在,勿建 | 交易层的单。项目任务不复用这张表;付费执行方派单时才生成交易单并关联(团团分支运营层设计 2 节,10 月底) |
apps/api/app/files/(CS) |
已存在,复用 | 用户上传的截图和文件存这里,换成签名链接传给专家 |
| 角色 | 负责 | 不做 |
|---|---|---|
| 用户 | 定目标和授权;拍板五类事(花钱、对外发布、改目标或验收标准、换人、结项);完成只有本人能做的线下动作 | — |
| 团团 | 立项、规划、匹配派单、维护项目事实、预审验收、节奏与复盘;委派模式下代用户回答专家的问题(3.7) | 不亲自做专业产出,不持有账号和支付凭据,不替用户拍板五类事 |
| 专家(执行方) | 专业判断;在任务工作间里和用户(委派模式下是团团)多轮协作;在授权范围内执行并留证据;按格式交付;发现上游问题或做不了时上报 | 不改项目目标和预算,不带走项目信息,不私下给其他专家派活 |
团团能做什么、不能做什么,沿用陪跑原型规则
4(白晨已定):团团能自己做的只有增删调任务、指派官方
Agent、催办提醒,每次都记入改动记录。五类确认写在工具定义上(requires_approval),不靠提示词约束(团团分支运营层设计
3.3 节)。1010
会白晨再次说明:团团在运行中要能创建、删除、修改任务,并把任务指派给
Agent、人(发单)或用户自己(1010 会:121)。
┌──────────────────── 创业平台后端 ─────────────────────┐
用户 ─项目对话─→ 对话轮次 → 团团(内核指令 + 场景包) │
│ │ 调用平台函数(五类事要确认) │
│ ↓ │
│ 平台服务:任务图 · 项目事实 · 决策队列 · 执行记录 │
│ ↑ 解析交付块/上报块/等待线下块 │
用户 ─任务工作间→ 执行记录(消息存档) │
│ │ 统一适配接口(鉴权在这里) │
└─────────────────┼─────────────────────────────────────┘
↓
ndclaw / AI 员工 / OpenQ 上的专家
两条线都先进平台后端,区别在终点:项目对话的终点是平台里的团团,任务工作间的终点是外部平台上的专家。平台在两条线里扮演的角色也不同:
| 项目对话 | 任务工作间 | |
|---|---|---|
| 对端 | 团团:平台自己的 Agent,跑在平台进程里 | 外部专家:跑在 ndclaw 等外部平台上,要跨网络调用 |
| 平台的角色 | 托管:给团团上下文和工具,按规则放行它的操作 | 转发并解读:原样转给专家,同时从回复里识别交付块、上报块、等待线下块 |
| 能不能改项目 | 能,通过平台函数(五类事要用户确认) | 不能直接改;专家的输出只是文本,经平台解析后才写进任务图和项目事实 |
| 范围 | 整个项目,贯穿几十天,多次唤醒 | 一个任务,任务完成就关闭 |
| 对话状态 | 只在我方数据库 | 专家那边一份上下文(ndclaw 的
contextId),我方存一份副本 |
| 响应 | 秒级 | 首次派单有冷启动,用异步状态承接(「专家准备中」) |
两条线在平台服务这一层汇合:团团通过工具读写任务图和项目事实,工作间里专家的交付经平台解析后也写进这里。所以团团不用旁听每一句对话,也能知道任务进展到哪了。
1010 会:355、:367-381,见
3.7)。执行方登记(executors
表)有三类来源:
| 类型 | 来源 | 10/16 |
|---|---|---|
| 外部 Agent | 从执行平台的目录同步(ndclaw:GET /a2a/experts),平台侧补登能力标签、价格、可见范围 |
✅ 直播电商 9 个专家 |
| 用户本人 | 内置 | ✅ 兜底 |
| 真人接单者 | 交易层 | 10 月底 |
字段:执行方编号、类型、平台、平台侧引用(ndclaw 只登记
mkt-
开头的市场专家,用户首次调用时自动召唤成本人的副本)、能力标签、价格、是否启用;另按合规评估第五节加两项:通道类型(不接第三方账号、官方授权、用户确认、非官方)和动作类型(生成、读取、发布、互动、交易)。10/16
的 9 个直播电商专家都是「不接第三方账号、生成」。
匹配分三步:
find_executors(task)
用代码筛掉四类执行方:能力不符的、超预算的、未启用的,以及通道类型为「非官方」的(不对
C 端用户开放,合规评估第五节)。项目所有者不是组织账号时,ndclaw
的执行方也不返回(ndclaw 目前只支持组织账号,ndclaw 报告 1.3 第 2
项)。assign
时平台再校验一次:执行方编号必须在本次候选里,模型编出来的编号直接拒绝(团团分支运营层设计
3.2 节)。价格从哪来(本文提案;定价方式待白晨定,第 6 节):
场景包只写能力,不写指定哪个执行方。这样团团始终可以在多家执行方之间挑选,站在用户这一边。
团团不直接调外部平台。执行方域只用四个方法,每个执行平台写一个适配器;派单、续话、接收进度本质上都是「发一条消息、收一段流」,合并成一个
send。
| 方法 | 含义 | ndclaw(A2A) | AI 员工(S2S) | OpenQ(OpenResponses) |
|---|---|---|---|---|
list_agents |
列出执行方 | GET /a2a/experts |
GET /api/s2s/positions |
GET /api/v1/agents |
send |
发一轮:首轮发任务书开一个执行,之后用户或团团续话;同时接收进度和回复 | SendStreamingMessage,首轮新开
contextId,之后带同一个 |
首轮 POST /api/s2s/tasks,续话
/answer、/follow-ups;没有流式,适配器内部轮询
GET /:id、/messages |
POST /api/v1/responses(stream: true),续话带
previous_response_id |
get_turn |
确认一轮的终态、取产物 | GetTask 的 artifacts |
GET /:id + 产物下载链接 |
返回结果里的输出项 |
cancel |
中止 | CancelTask |
/abort |
待确认 |
三家的协议细节、鉴权、接入前提和卡点,见 公司内多个 Agent 平台接入分析报告。
ndclaw 适配器要点(依据《NDClaw 服务端对接手册》v1.0
与 agent-hub e243c5cb,详见 ndclaw
对接背景与待确认项):
Userid: <UC 用户号> 表示代哪个用户调用,再带
A2A-Version: 1.0;不能带任何 sdp-* 头。BTS
的令牌要在进程内缓存,不能每个请求都去换一次。只接组织账号。contextId。专家在同一个任务里记得之前的对话;不同任务之间不共享上下文。📎 文件名 | 大小(原文引用:url;未收录于本包)
的形式放在正文前面;专家产出的文件会自动上传、以 Markdown
链接写在回复里,链接会过期(手册 7.4),所以平台收到后要转存到我方
CS(只转存 CS
域名的链接)。转存是我方要做的,还没实现,也没验证:现有
CsStorage
能上传和签发下载链接,「从专家给的链接下载再上传」还没写;链接的域名、有效期、下载要不要鉴权,联调时验证。GetTask
的结果为准,不能只信流里的最后一帧。任务书由平台按场景包的任务模板,从项目事实里取字段拼成,作为首轮
send 的消息:
附件:📎 名 | 大小(原文引用:url;未收录于本包)
【任务书】
项目目标:…(只摘本任务相关的部分)
本任务:… 交付物:… 验收标准:…
上游成果:(按任务模板列出所需字段)
边界:预算 / 期限 / 平台 / 合规禁区
授权:可以自己决定的事 / 必须请用户确认的事
附件链接按手册 7.4 放在正文前面。这和陪跑原型规则 7(白晨已定)一致:派活时只把项目摘要交给执行方,不给全部聊天记录。
交付块:专家完成时,在最后一条消息末尾附一个固定格式的代码块,平台据此判断交付了:
```交付
{"status": "done",
"deliverable": {…按任务模板约定的字段…},
"self_check": [{"criterion": "…", "met": true, "note": "…"}],
"open_issues": ["…"],
"downstream_hints": ["…"],
"attachments": "📎 [名(原文引用:url;未收录于本包)"]}
```
另外有两种块:
上报:上游成果有矛盾、缺少必要信息,或专家判断这件事做不了(写明原因)。平台收到后交给团团处理,不直接再去问用户;做不了的按
3.6「对方不交付」处理。等待线下:需要用户完成线下动作,比如样品测试;块里写明要用户做什么、预计多久。消息里没有这三种块,就视为对话还在进行,状态是「等你回复」;委派模式下先由团团代答(3.7)。
兜底:如果合作方来不及改提示词,平台用各员工固定的收尾话术(如「交给团队下一个环节」)判断完成,再由团团从对话里提取交付字段。这只是过渡方案,准确率低于交付块。
执行记录(executions
表,独立建表:外部调用要幂等、可重放、可审计):项目、任务、执行方、平台侧上下文(contextId、远端任务
ID)、状态、交付(JSONB)、预审意见、时间戳。
状态迁移:
派单中 → 进行中 ⇄ 等你回复
↘ 等待线下 → 进行中
↘ 已上报 → (团团处理后)进行中
进行中 → 待预审 → 待验收 → 已完成
↘ 退回返工 → 进行中(意见作为新消息发回专家,沿用同一 contextId)
任一状态 → 失败 / 已取消
对方不交付(白晨 1010
会要求考虑,1010 会:301;做法为本文提案,10/16
要做,交互和委派两种模式都适用):
| 情况 | 去处 |
|---|---|
| 远端失败或超时 | 进「失败」;用户可以重试(沿用同一
contextId)或取消 |
| 专家说做不了 | 专家输出上报块并写明原因;团团在项目对话里给用户三个选择:换执行方、改由用户自己做、调整或删掉这个任务。换人属五类事,用户确认后才执行 |
| 说完成了,但没给交付块 | 视为对话还在进行(「等你回复」,委派模式下先由团团代答,3.7);命中兜底话术时由团团提取交付(3.5) |
| 交付缺东西:缺字段、说好的文件没有、链接失效 | 交付块不完整的,平台提示「交付格式不完整」,专家补交;附件缺失的,预审列为问题,用户退回后平台把问题发给专家补交 |
| 退回两次仍不合格 | 团团提议换执行方或调整任务,由用户定 |
不能多轮的执行方要闭环:白晨问不支持交互的外部能力是否要闭环(1010 会:301)。以后接的工具类执行方(3.11)没有多轮,派单前任务书必须完整(输入没凑齐就不派),结果只有交付或失败两种。ndclaw、AI
员工、OpenQ 都支持多轮,不受这条限制。
白晨在 1010
会定了:交互和委派都要支持。用户能在工作间里直接和专家聊;也能只要结果,由团团凭项目记忆回答专家的问题,做成可选(1010 会:367-381)。
| 交互(10/16 默认) | 委派(团团代答) | |
|---|---|---|
| 专家的提问谁来答 | 用户,在任务工作间里答 | 团团先答,依据任务书和项目事实;答不了的、涉及五类事的,转给用户 |
| 用户看到什么 | 完整对话 | 同样是完整对话,团团的回答标「团团代答」;只在需要用户时提醒 |
| 适合 | 要用户逐项选、要一起想的任务(如主播定位的 13 步) | 只看结果的任务(如调研、整理) |
两种模式随时可以互切;用户在工作间里插话,这一轮就由用户答。
send → 专家的回复以 SSE 推给前端 → 逐条存进
execution_messages。Userid
用项目所有者的 UC 用户号,由服务端写入,不接受前端传参。现状:当前闭环里不体现。 项目预算(白晨 1010 会:目标、预算、时间是每个项目的固定项)在 10/16 只用来筛执行方价格、走「花钱」确认;团团和专家的模型费用都由平台出,不计入项目预算,也不给用户看。
| 费用 | 谁出 | 怎么记 | 在闭环里怎么体现 |
|---|---|---|---|
| 团团自己的模型调用 | 我方网关预算(1009 晚会:模型整体申请 3 万元、挂在创业平台,两个项目先一起用) | 运营层设计规定每轮存用量(输入、输出、缓存读写 token),团团分支代码
c65148be 还没落库;建议 10/16 补上 |
10/16 只记录;以后在项目里显示团团用了多少 |
| 专家(ndclaw)的模型和容器 | 试用期由 AI Hub 出;ndclaw 做完多租户后记我方(报价 3 人日、我方下单,对方说本月内做完,见 1009 晚会(原文引用:../../../knowledge/wiki/60-会议对谈/2026-10-09-服务器与模型预算及两项目分工.md;未收录于本包)第一节第 3、4 条;1010 会白晨说吴梦赢已批、由小杰下单,推断即这一单) | A2A 没有用量接口:每个执行记轮数和耗时,实际费用等 ndclaw 按 service code 出账 | 10/16 不体现;明码标价后按执行方价格计入项目花费,派单前走「花钱」确认(3.3) |
| 真人接单者的报酬 | 用户,经交易层 | 交易层 | 10 月底:验收后结算 |
模型费用要不要计入项目预算、用户要不要为模型付费,待白晨定(第 6 节)。
| 一方 | 要做什么 | 估计 |
|---|---|---|
| 我方 | 执行方域与 ndclaw 适配器、四张表、场景包加载、任务工作间接口、不交付处理,以及前端工作间(周目标三) | 下周主要工作量 |
| ndclaw(AgentHub) | 在 AIAE 生产环境打开 A2A,给我方 BTS 应用开通接口权限;预热池先联调、再按需申请。实例每天自动开通 4000 个、无需审核;专家先不隔离、直接上架市场 | 配置为主;「可以先用」已答复,其余见 ndclaw 报告 1.3、1.4 节 |
| 直播合作方 | 去掉对「主管」的依赖,改成按任务书接收输入;收尾时输出交付块,做不了时输出上报块;产出文件时回链接。9 个专家的创建、发布和技能包,由合作方(范敬萍)或我方在 ndclaw 界面上做,谁先有空谁做 | 改提示词,见姊妹篇第 6 节 |
白晨在 1010
会要求先把这个问题答上(1010 会:413-439):Ricky
问过平台以后怎么接各方的能力,举的例子是 Perplexity 这类 AI 搜索,它不是
Agent。林炜会上的回答因为断音没有记全(:441-479),这里成文作答(林炜
10/10 确认)。
原则:外部能力进平台只有两个入口。要派单、留执行记录、走验收的,作为执行方接进执行方域;团团自己做判断时要查的,作为团团的工具,结果只进团团的上下文。
| 能力 | 例子 | 接法 | 10/16 |
|---|---|---|---|
| Agent 平台上的专家 | ndclaw、AI 员工、OpenQ | 每个平台一个适配器(3.4) | 只接 ndclaw |
| 一次调用就出结果的工具或 API | Perplexity 类 AI 搜索、数据查询 | ① 首选挂在执行平台的专家上,由专家在自己的技能里调用,平台不逐个直连(ndclaw 专家最多挂 10 个技能,手册 6.5;技能里能否调外部 API 是推断,联调时验证);② 团团自己要用的,比如立项时查资料,做成团团的工具(只能是平台写好的函数,见下文);③ 要作为独立执行方、走验收的,写一个工具适配器,实现同样的四个方法,一次调用就返回结果,按 3.6 的闭环要求处理 | 不做 |
| 要以用户身份对外操作的平台 | 小红书发帖 | 另案。1010 会林炜转述的新结论是官方有
SDK、用户最后只负责审批发布(林炜说不确定,:393-411)。核实结果(合规评估
3.3):官方分享 SDK 由前端唤起小红书
App、用户在小红书里自己发,服务端只做签名;但官网已暂停接入,且不再预填标题和正文。白晨要求做或不做都把理由和对策写清楚,再和老板谈,风险与红线见合规评估。在那之前维持「平台不代发」(第
1 节范围外) |
不做 |
团团的工具会不会推翻 Pydantic AI 选型(林炜 10/10 提出):不会。选型的前提就是「工具就是平台业务接口」,代码执行、浏览器、复杂文件这类活派给 NDClaw 等运行时(运行框架选型报告;白晨 0928 定选型不考虑代码执行)。上表 ② 的工具也是平台写好的函数,只是函数里调一个固定的第三方 API,仍在这个前提里。
按仓库工程标准(docs/standards/2026-09-13-仓库工程标准-可维护性与测试体系.md)分三层,交付流程按
skill deliver-task:
单元:
find_executors 的筛选(含个人账号不返回 ndclaw
执行方)和 assign 的候选校验;集成:用假 A2A
服务(tests/fake_a2a/)跑完整链路:派单 → 流式回复 →
用户续话 → 交付块 → 预审 → 验收 → 写入项目事实 →
生成下游任务书。另测冷启动超时、流中断后以 GetTask
为准、上报块(含「做不了」)、交付里带会过期的文件链接,以及委派模式下专家连续提问、由团团代答直到交付。
端到端:验收场景
apps/acceptance/团团派单给外部专家.feature(新建),用
Given/When/Then 写:
假设直播项目已拆出「主播定位」「主题策划」两个任务 当团团把「主播定位」派给定位专家,用户在工作间里回答完所有问题 那么定位交付被回收、用户验收通过 并且「主题策划」的任务书带上了一句话定位和人设类型
真机冒烟:经授权,对 ndclaw 正式环境(先在正式环境联调)的一个专家跑一次,不进自动化。
make check-changed 跑改动相关的测试;收口时跑
make check。| 问题 | 本文默认 | 备选 |
|---|---|---|
小红书直接执行:0929 已定「平台不能替用户发帖」;1010
会老板仍希望直接在小红书执行。合规评估核实:代发笔记的官方接口
write_notes 还在规划中;官方分享 SDK 是唤起小红书 App
由用户自己发,但已暂停接入,也不再预填文字;现成的代发工具都要托管账号、走非官方通道 |
10/16 维持不代发,对外发布仍派给用户;做或不做的理由与对策按合规评估和老板谈(3.11) | 向小红书商务申请 write_notes 或恢复分享 SDK
接入,拿到后由用户确认发布;用非官方工具代发要先过法务,且不对 C
端开放(合规评估第五节) |
| 团团预审要不要拦截 | 10/16 只给意见,不拦截 | 不通过就退回专家 |
| 执行方怎么定价 | 明码标价:Agent 执行方按任务模板分档定固定价,依据多租户计费后的实际成本(3.3) | 按实际用量事后结算,要 ndclaw 出单次用量 |
| 模型费用要不要计入项目预算、用户付不付 | 10/16 由平台出,只记录、不计入(3.9) | 计入项目预算,按执行方价格扣 |
v2 列在这里、现在已经定了的,移到正文:
docs/superpowers/plans/2026-10-08-创业平台10月16日结项待办.md;周目标原文未入库。knowledge/sources/会议对谈/2026-10-10-会议转写-团团UI交互与外部Agent接入调研-白晨林炜陈高武快速会议.md(文中
1010 会:N、:N 指该文件第 N
行),解读页(原文引用:../../../knowledge/wiki/60-会议对谈/2026-10-10-团团陪跑主流程与外部Agent协作模式.md;未收录于本包)。白晨会上评的是本文
v2(AIC-2693 第二个附件,2026-10-09 20:00)。knowledge/sources/。knowledge/sources/会议对谈/2026-10-08-会议转写-10月16日前分工与本周设计任务-白晨林炜陈高武晚间快速会议.md:25-45(匹配与对接、对接
ndclaw 与 AI 员工、白晨的初步想法「不作为正式的讨论」)。knowledge/wiki/60-会议对谈/2026-09-29-团团运行框架选型与执行闭环之争.md。docs/prototypes/2026-09-23-AI助手陪跑流程-教师伙伴运营/README.md「本轮定下的产品规则」。docs/superpowers/specs/2026-09-23-AI创业平台助手能力清单-design.md(B3
匹配、B4 派活与交接、B7 决策点回收、D4 边界与安全)。c65148be(https://github.com/ndhy-app-web/venture-os/tree/c65148be):docs/superpowers/specs/2026-09-29-团团陪跑运营层-design.md
3.1~3.3 节、3.4
节「收尾」一步(规定每轮存用量);apps/api/app/tuantuan/agent.py(目前只有单轮请求次数上限,没有落库用量);pydantic-ai-slim==2.51.0(capabilities/capability.py、agent/spec.py)。