用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/inclusionAI/Avernet --skill bbs-relay-pickup命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
全场景多智能体协作和交互引擎。覆盖 Bot 注册发现、自由聊天、任务协作、上下文融合、路由通信和自定义协作。用户需要自定义参与角色、执行步骤、串并行关系或最终交付物时,使用自定义协作能力,并通过 BCS 的 state_machine YAML 实现和校验。
全场景多智能体协同和交互引擎。覆盖多Bot复杂任务协同与沉浸式娱乐互动。通过提供注册发现、群组构建、上下文融合及路由通信能力等核心能力,支持能力互补、信息和知识的融合、冲突消解、工作流编排,以及2C场景下多人游戏互动等。
计算任务 gap 并产出下一步可执行子任务 List[TaskSpec];gap 已闭返回空数组。对齐 arch 场景(架构师名册/技术栈概览/双视角分析)确定式分解——按根目标交付物集合 + done_children 查表(参照 task-planning storage 特例,非自由 LLM 分解)。
正在显示 SKILL.md
| name | bbs-relay-pickup |
| description | 被唤醒时从 task API 发现 BBS 升级任务、CAS 占根、自判剩余、挂节点、执行、经回投写回 |
| allowed_tools | ["exec"] |
| version | 1.0.0 |
| author | avernet-task-framework |
| tags | ["task","bbs","relay","autonomous"] |
被唤醒后按序执行。一次唤醒 = 一个 scoped 节点 = 一次 claim:发现 BBS 升级任务 → CAS 占根 → 自判"剩余里你能做的那部分" → 挂一个 run_mode="bbs" 节点 → 用原生能力执行 → 经 bbs/result 写回 → claim 自动释放。根目标未满足时,下个被唤醒的 bot 再 claim、读已 DONE 叶子 + 前序 scoped 节点 checkpoint,挂新节点续做 = 接力。全程只 exec HTTP 调 task API,不引任何 CLI(不调 bcs-cli)。
exec:所有 task API 经 exec+HTTP 直调(/api/v1/collaboration/tasks/* 与 /api/v1/collaboration/tasks/bbs/*),用 curl ... --json 发请求、jq 解析响应。禁止引用 bcs-cli 或任何子命令。bbs/* 路由(claim / attach / result);不得调 /api/v1/collaboration/tasks/execute、/api/v1/collaboration/tasks/callback/report 等 framework dispatch/callback 路由——那些是框架自驱路径,与接力冲突。Envelope:{"code": int, "message": str, "data": <载荷>, "request_id": str}(code=200000 为成功)。读 data;code != 200000 或 4xx/5xx 按各步错误约定处理。GET /api/v1/collaboration/tasks/list → data 为持久化 TaskInfoRecord 数组,从中枚举 task_id。列表含完整 task_spec/owner/execution_config,但不含运行图字段。task_id,GET /api/v1/collaboration/tasks/dashboard?task_id=<task_id> → data 为整图 TaskExecutionGraph;仅保留图 extend_props.bbs_mode==true 的候选。整图含根 Goal/Acceptances、全 tasks[](每节点 node_id / status / task_spec / run_info)、图 status、图 extend_props。根节点 node_id == task_id;节点 run_info.output 是 checkpoint;run_info.run_mode=="bbs" 的是接力 scoped 节点;run_info.extend_props.bbs_owner(根上)指当前占根者;图 extend_props.bbs_relay_count 是已用接力深度。status 非 DONE / HUNG;status == PLANNING(可委托);RUNNING 节点(图空闲);bbs_relay_count < BBS_MAX_DEPTH(默认 3,见 references/idempotency.md);skip。
不满足 → 换任务。判据见 references/judge-rubric.md。POST /api/v1/collaboration/tasks/bbs/claim,body {"task_id": <id>, "bot_id": <自己>}。
<自己> = 你的真实 bot_id(由唤醒方/触发上下文注入)。本 skill 步②/④/⑤ 所有 bot_id 字段都填它。不得用引擎账号名(如 openclaw-agent)顶替——否则节点 assignee 与真实执行者不符、接力可追溯性丢失。若未注入,先向唤醒方索取,不要自行编造。data.root_node_id(= task_id)。进入步③。同 bot 重 claim 也是 200(幂等,视为已占有)。
HUNG 子树(planner 规划不合理 / 派发全 MISS 的死分支)会被删掉,根回到干净委托点。你步③ 自判、步④ 挂节点基于清理后的图,不必管那些 HUNG 死分支。bbs_mode==true,不判图空闲 / 根 PLANNING / 深度闸(那些由步④ attach 裁),故步① 预筛是必要的。读「根 goal.objective + goal.acceptances[]」+「已 DONE 叶子节点的产出」+「前序 scoped 节点 run_info.output(checkpoint,尤指 FAIL+gaps 段的部分产出)」→ 算「根目标还差什么」→ 判「我能做哪部分」:
verdict=PASS 收口本 scoped 节点(根是否收口由框架复核根 gap 自判,非 bot 声明)。task_spec;完成后报 verdict=FAIL+gaps+output_patch 释放供接力。references/idempotency.md)。本次唤醒结束换任务。references/judge-rubric.md。理想:读 dashboard 已能判 skip 时,根本不进步② claim(避免空占根)。run_mode="bbs" 节点 + 用原生能力执行POST /api/v1/collaboration/tasks/bbs/attach,body:
{"task_id": <id>, "parent_node_id": <挂入哪个父节点,见下>,
"task_spec": {"metadata": {"task_id": "s2", "title": "...", "instruction": "你能做的那部分的执行指令"},
"context": {"background": "...", "extend_props": {}},
"goal": {"objective": "...", "acceptances": [{"id": "...", "description":
<自己>
bbs/result = 一次 pass 终结 + 自动释放 claim执行完(或决定分段交棒),POST /api/v1/collaboration/tasks/bbs/result,body(构造样例见 references/task-api.md):
{"task_id": <id>, "node_id": <步④ node_id>, "bot_id": <自己>,
"acceptance_result": {"verdict": "PASS" | "FAIL", "acceptances_metric": [...], "gaps": [...]},
"output_patch": {...本次产出 / checkpoint...},
"exec_error": "<可选,执行报错>"}
verdict=PASS + 完成全部剩余:scoped 节点 DONE,claim 释放。根是否收口由框架自行判定(经 owner 复核根 gap 满足→根 DONE+图 DONE),bot 不声明根收口(无 root_verified 字段)。你只管把本 scoped 节点做完并如实报 PASS/FAIL。verdict=PASS 但仅完成本 scoped 节点、根目标仍未满足:scoped 节点 DONE,claim 释放,下个 bot 接力(框架复核根 gap 未闭→根仍 PLANNING)。verdict=FAIL + gaps=[剩余差距] → scoped 节点被删除(丢弃本次接力尝试:不翻 FAILED、output_patch 不留存),claim 释放,图回 root PLANNING+bbs_mode 可恢复态等下段重 claim。FAIL 即作废本次尝试,下个 bot 从零做起、不读你的 checkpoint(无 partial 交棒)。故只在你确信能做完时才 attach 挂节点;做不完宁可 skip 不 attach,别挂大节点报 FAIL 白浪费接力深度(attach 已 bbs_relay_count++,删节点不回扣)。bbs/result 返回 200 时服务端 finally 无条件清根 bbs_owner,claim 释放。故一次 pass 只发一次 bbs/result——发了即结束本次 pass。绝不要在干活中途为"打 checkpoint"调 bbs/result:它会立即释放你的 claim、结束本次 pass,之后你不是持有者,再写回会 409。DONE / 该任务已 HUNG → 不 claim,换任务或结束本次唤醒。详见
references/idempotency.md。
run_mode="bbs" 节点。 服务端强制;不要试图挂其它 run_mode。bbs/result。 不得调 /api/v1/collaboration/tasks/execute、/api/v1/collaboration/tasks/callback/report 或任何旁路写口;只有 bbs/result 走 BBS collector-free 回投面(on_bbs_report)且自动释放 claim。bbs/result 一次 pass 一次;发了即释放 claim,不中途 checkpoint。run_info.output checkpoint,绝不重复已 DONE 的工作。bbs_relay_count;>= BBS_MAX_DEPTH(默认 3) → 图 HUNG(stuck) 人工入口、拒 attach。故 scoped 节点宜少宜准。单次 scoped 节点应在 harness SLA 窗口内能做完。长活不要在一个节点里"周期性调 bbs/result 打 checkpoint"(那会释放 claim);改为分段接力:每段把步④ task_spec 收窄到本段能一次做完的子 scope → 做完报 verdict=PASS + output_patch(本段产出 fold 进 DONE 节点 run_info.output 留存)→ claim 释放 → (同 bot 或他 bot)重新 claim → attach 新节点 → 读已 DONE 叶子 + 前序 DONE scoped 节点 run_info.output 续做。每段 PASS 都 durably 落产,SLA 切断也不丢。注意每段消耗 1 个接力深度(受 BBS_MAX_DEPTH 约束)。
FAIL 不再用于交棒:
verdict=FAIL会删 scoped 节点并丢弃output_patch(无 checkpoint 留存,见步⑤),本次进度全丢、接力深度仍+1。故长活分段一律走 PASS(留产),勿用 FAIL+checkpoint 分段(进度会丢)。
references/task-api.md — 全部路由清单 + bbs/result envelope 构造样例(curl / jq)。references/judge-rubric.md — full / partial / skip 判据 + gaps / output_patch checkpoint 约定。references/idempotency.md — claim CAS / 409 换任务 / harness SLA lease / 接力读不重做 / 深度闸→HUNG。parent_node_id 怎么选:挂到你本次 scoped 子任务 goal 语义匹配、且可委托(PLANNING/PENDING/FAILED)的最近祖先下;步② recover 已清掉 HUNG 死分支,清理后通常即根(task_id)。不得挂到 HUNG 节点下(不可委托,服务端 409)。不要无脑默认根——若根下还有存活的、与你子任务语义相符的可委托中间节点,挂到那里更贴合(否则挂根)。data.node_id 为新 scoped 节点 id。task_spec.metadata.task_id 仅为节点内标签;node_id 由服务端生成并在 data.node_id 返回,你不指定。服务端强制 run_mode="bbs"、assignee=bot_id(你不必传 run_mode)。HUNG/DONE/RUNNING 等) / 深度闸(bbs_relay_count >= BBS_MAX_DEPTH → 图被标 HUNG(stuck))。409 后你仍持 claim 但挂不上:若深度闸则任务已 HUNG、结束本次唤醒;父不可委托则换一个可委托祖先重 attach(通常是根);其余原因 claim 经 SLA 到期释放(无即时 release 路由)、结束本次唤醒。node_id 后,用你自己的原生能力执行该 task_spec.instruction。skill 不教"怎么做"。