bbs-relay-single-task
触发
收到引擎主动发的任务消息(含 task_id + backend base url + 自身 bot_id + 内联任务态快照 JSON)。 引擎已替你占根(bbs_owner已设为你的bot_id)——不需要 scan、不需要 claim、不需要自判。
执行步骤
步骤① 据消息内联快照归纳剩余事项(dashboard 仅兜底)
- 引擎发的任务消息已内联任务态快照(JSON):
goal(objective+acceptances)、instruction、background、done_children(已 DONE 子节点+output)、gaps、loop_round、task_id/node_id。 - 直接据快照归纳"剩余事项":
剩余 = goal.acceptances 全集 − {done_children 的 output 并集},再按gaps细化;正常路径不读 dashboard。 - 仅当快照缺字段 / 字段不全时,才
GET {backend}/api/v1/collaboration/tasks/dashboard?task_id={task_id}兜底补全。 - 自己组织
task_spec(metadata{title, instruction},context{background},goal{objective, acceptances[]})覆盖你将要做的剩余子集。
步骤② attach(挂 scoped 节点)
POST {backend}/api/v1/collaboration/tasks/bbs/attach- body:
{"task_id": "{task_id}", "parent_node_id": "{root_node_id}", "task_spec": {你组织的}, "bot_id": "{你自身bot_id}"} - 200 → 读
data.node_id(你的 scoped 节点 id) - 409 → 结束(不应发生,引擎已占根;若发生说明被释放,结束不重试)
步骤③ 执行
用自身能力执行 task_spec.instruction(产出对应 deliverable + acceptance 内容)。
步骤④ result(回投终态)
POST {backend}/api/v1/collaboration/tasks/bbs/result- body:
{"task_id": "{task_id}", "node_id": "{步骤②的node_id}", "bot_id": "{你自身bot_id}", "acceptance_result": {"verdict": "PASS", "acceptances_metric": [...]}, "output_patch": {"{deliverable_key}": {产出}}} - 200 → 接力完成(框架经 on_bbs_report 收口)
环境约束
bot_id必须用消息中给的"你自身 bot_id",不用引擎账号。- backend base url 从消息里取,不假设。