news 2026/8/14 0:44:48

Avernet:Agent 的组织网络

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Avernet:Agent 的组织网络

Emdash、Orca 和 Avernet 都能让多个 Agent 同时工作,但它们管理的不是同一种东西:

  • Emdash管理隔离的 Coding Task,由人选择仓库、Worktree 和 CLI Agent。
  • Orca在相似的开发工作台上增加 CLI 控制面,让 Coordinator Agent 显式创建并监督 Coding Worker。
  • Avernet管理长期存在的 Bot,以及 Bot 之间的身份、关系、群组、会话和协作流程。

因此,前两者主要解决“怎样并行改代码”,Avernet 解决“不同来源的 Bot 怎样被发现、组队并按固定流程协作”。如果需求是让三个 Coding Agent 分别修改同一仓库,Avernet 不能替代 Worktree 工作台;如果需求是让产品、研发、验证 Bot 长期在线,并在一个组织网络中反复协作,Emdash 和 Orca 又没有提供 Avernet 这层模型。

核实基准:Avernet 公开仓库提交e83d6226,2026-08-08。

Bot 接入解决什么问题

形式:Bot 主动注册身份、能力(name/summary/domains/skills/scopes)、可见性和投递地址,BCS 落库到bcs_bots,维护bot_id → 实际 runtime 的映射。两条接入路径:WebSocket/ws/bot直连,或 HTTP Provider 模式(bcs_providers+bcs_provider_bot_bindings记录绑定)。注册只让 BCS 知道“这个 Bot 是谁、能干什么、往哪投”,不改写它的 System Prompt,不接管它的 Skill、RAG 和记忆。公开代码已包含 Bot Registry、Discovery、Group Chat、Context Fusion、Message Routing、Friend 与 Visibility Control,见 BCS README:L1-L16。

README 把规模化后的四个瓶颈与四项基础设施成对给出:

瓶颈README 的对策机制是否解决
Cannot find
能力难以发现
persistent agentsRegistry 让 Bot 成为可寻址对象:discover(topic)匹配 name/summary/domains/skills/scopes,find_by_skills/find_by_domains/find_by_scopes按标签过滤;候选查询区分发现与协作用途并传入好友关系,见 bcs-app-bot/src/lib.rs:L213-L249部分。寻址是真的,但能力是自述而非凭证
Cannot align
表面共识掩盖分歧
structured coordination把验收标准写成明文criteria,LLM Judge 强制 JSON Schema 输出,逐条返回checked_criteria{criterion, satisfied, evidence}outcome限定 enum、越界拒绝,结果驱动approved/rejected分支,未通过带retry_instruction重做,已实装
Cannot run fast
执行依赖人工传递
governed execution上游artifact_text自动进入下游[Upstream Outputs]并投递,取代人工复制粘贴;人只在human_input节点按需介入,但编排能力受限
Cannot retain
知识未沉淀为组织能力
compounding organizational memory单次 Run 落库:节点产物全文(node_runs.artifact_text)、判定审计链(collaboration_events.payload_json,可按 run/node/attempt 回溯)、流程定义快照;以及可复用模板bcs_collaboration_templates,带 visibility/owner/priority,registry.yaml按 judge/branching/parallel/serial 打 tag)部分。单次 Run 内成立,跨任务记忆缺失

四项里第二、三项是当前公开版最实的部分,第一、四项都停在“形似”这一步。三处边界值得单独点出。

能力描述不是凭证。scopes在全仓库只出现于find_by_*过滤器,从不参与授权判断,见 memory.rs:L818-L850。scopes: ["production_db"]等同于简历上写“精通 MySQL”,BCS 不校验、不授予、不拦截。所以“找不到”只被改善为**“找得到,但不保证找得对”**——既无能力验证,也无效果评价(Evaluation 标 Planned),风险从“不知道有谁”转移为“不知道谁靠谱”。同理,角色绑定只是把节点assignee_bot_id解析到具体 Bot,节点 Prompt 仅含节点名、Run 输入、直接上游产物和instruction角色的description从不进入 Prompt,见 runtime.rs:L922-L964。能力必须 Bot 自带,Avernet 不赋能。

记忆止于单次 Run。Context 与 Memory 均标 Planned;Provider 模式下会话上下文由对方平台按(provider_bot_ref, session_id)自行维护,BCS 不下发完整历史;本地配置store_messages = false,聊天消息默认不落库。真正可复利的资产其实是模板——一次评审的结论价值有限,“这类事该按什么判据、哪里并行、哪里要人审”被固化成可复用流程,才是组织能力。

治理层尚未生效。权限只在协作图层面起作用:把 Bot 加进 Session 时检查公开性、所有者或创建者关系、好友关系,Hidden Bot 不能参与协作,见 bcs-app-session/src/lib.rs:L370-L424。但这层不做能力隔离;公开本地配置require_authentication = false,Security、Governance 标 Planned,Audit 仍在进行中,见 bcs-config-local.toml:L145-L147。README 承诺的 governed execution,目前只有“流程受控”,没有“权限受控”。

与 Emdash、Orca 的差别由此确定:后两者的核心对象是一次开发任务及其目录、分支和进程,随任务结束消失;Avernet 的核心对象是长期存在的 Bot,一次协作只是把它临时绑定到某个角色。

两种接入方式连接异构 Bot

Avernet 不要求所有 Bot 使用同一种 Agent Runtime。单个 Bot 进程可以通过 WebSocket/ws/bot接入,完成握手、接收chat.send,再用chat.event回传最终结果。协议同时支持群聊、@mention、broadcast 和上下文注入,最小交互可在 Bot 接入指南:L35-L97 核对。

已经拥有 Bot 平台的团队可以使用 HTTP Provider 模式。BCS 保存 Provider 与 Bot 的注册关系并投递任务,Provider 自己选择 Runtime、维护 Session 并异步回调结果;BCS 不接管 Provider 实例,也不会自动下发完整历史,见 Bot Provider 接入:L8-L31。

这两条路径说明 Avernet 更接近协作控制面,而不是另一个 Agent 引擎。它连接 OpenClaw、本地 Bot 和已有平台,但推理、工具调用以及平台内部调度仍由各自 Runtime 负责。

从一次方案评审理解协作

假设团队要评审“登录系统改造方案”,已有项目负责人、架构、风险和业务价值四个 Bot 接入 BCS。接入只让 BCS 知道 Bot 的身份、能力和投递地址,不会改写它们的 System Prompt,也不会接管各自的 Skill、RAG 或长期记忆。Avernet 在这些 Bot 之上创建三个对象:Group 保存长期团队和默认流程,Session 隔离“登录系统改造”这一次评审,Run 则是在该 Session 中执行一次 YAML 状态机。

“多专家并行协同”模板先声明project_leadsolution_architectrisk_analystvalue_analyst四个逻辑角色,再描述下面的步骤:

项目负责人整理评审范围 ↓ 技术可行性 / 风险 / 业务价值并行评审 ↓ 项目负责人汇总结果

开始这次评审时,调用方提交模板、本次输入和角色绑定,例如:

bcs collaborate run review.yaml\--session"review-group:abcdef12"\--binding"project_lead=bot-lead"\--binding"solution_architect=bot-architect"\--binding"risk_analyst=bot-risk"\--binding"value_analyst=bot-value"\--input'{"proposal":"登录系统改造方案"}'

participant_bindings的作用是把逻辑角色解析成节点的实际执行者。绑定solution_architect=bot-architect后,BCS 会检查这个 Bot 是否属于当前 Group,并把技术评审节点的assignee_bot_id设置为它;绑定不会永久改变 Bot 的身份或人格。当前运行时还要求每个被节点引用的角色恰好绑定一个 Bot,见 runtime.rs:L3730-L3819。

Run 启动后,BCS 先向bot-lead发送整理任务。协议会加入当前 Group、Session、参与者和“需要回复”等投递信息;状态机再加入本次输入、直接上游产物和节点指令。入口节点收到的核心 Prompt 接近:

[State Machine Task] node_id: frame_review_scope display_name: 明确评审范围 [Input] {"proposal":"登录系统改造方案"} [Upstream Outputs] (none) [Instruction] 请把用户请求整理成一份简短评审简报……

这里有一个容易误解的边界:角色的display_namedescription目前不会自动变成完整的角色 Prompt。真正约束 Bot 行为的是节点instruction,以及 Bot 自己原有的 System Prompt 和知识;源码构造的节点 Prompt 只包含节点名称、Run 输入、直接上游产物和指令,见 runtime.rs:L922-L964。

bot-lead返回评审简报后,BCS 将结果保存为该节点的artifact_text,再把这份简报放进三个专家节点的[Upstream Outputs]并并行投递。三个专家各自使用自己的知识完成评审;等三个节点都结束后,汇总节点会收到三份产物并生成最终结果。模板中的并行分支、超时、尝试次数和汇聚节点可在 parallel-expert-review.yaml:L39-L136 核对。

因此,Avernet 当前沉淀的“知识”限于单次 Run 范围内,但不止于产物本身:节点产物全文落在bcs_state_machine_node_runs.artifact_text,judge 判定连同逐条判据与证据落在bcs_collaboration_events.payload_json(可按 run / node / attempt 回溯“第一次为什么被拒、第二次为什么通过”),本次所用流程定义另有快照表。Bot 的专业知识仍归各自 Runtime;Session 对话上下文由 Provider 按(provider_bot_ref, session_id)维护,BCS 不会自动把完整历史发给每个 Bot。完整的跨任务 Context 与 Memory 仍是规划能力。需要人工决策时,流程也可以插入human_input节点,等待审核后再继续,见 bot-human-bot-review.yaml:L17-L62。

Orca 的 Coordinator 需要临场拆 Task、选择 Worktree 和 Worker;Avernet 的 Run 按预先写好的角色和状态图推进。前者适合目标仍需 Agent 动态拆解的编码任务,后者适合团队已经知道“谁先做、谁并行、谁审核、谁汇总”的重复流程。

三者按同一口径比较

维度EmdashOrcaAvernet
首要场景多 Coding Agent 并行开发多 Coding Agent 开发与 Coordinator-Worker 协调异构 Bot 的长期组织协作
核心对象Task、Workspace、Worktree、ConversationWorktree、Terminal、Run、Task、DispatchBot、Relation、Group、Session、Run、Template
隔离方式Git Worktree / 独立 WorkspaceGit Worktree / 独立终端可见性、关系和 Session 边界(无能力隔离)
谁分配工作人,或调用 Orca CLI 的 Coordinator AgentYAML 状态机按角色绑定和节点流转
Agent 间关系默认互不通信,由人汇总Coordinator 监督 WorkerBot 可发现、建立关系、组群和交换上下文
人机协作人创建任务、Review Diff/PR人监督,Decision Gate 可等待决策human_input是工作流节点
代码开发闭环Worktree、编辑器、Diff、PR、CIWorktree、编辑器、浏览器、Diff、PR、CI公开主线没有等价的 Worktree 与 PR 闭环
接入范围本地或 SSH 上的 CLI Coding Agent本地或远程 CLI Coding AgentWebSocket Bot 与外部 HTTP Bot Provider
当前成熟边界主流程以人管理任务为中心Orchestration 仍是实验能力公开协作运行时仍是 MVP

这个表也给出直接的选型规则:

  1. 目标是隔离并行改代码、比较 Diff,选 Emdash 或 Orca。
  2. 需要 Coordinator Agent 调用工具创建并监督 Coding Worker,优先看 Orca。
  3. 需要长期 Bot 身份、发现、关系、群组和可复用协作模板,再看 Avernet。

把三者串起来也比三选一更合理:Avernet 负责选角色和推进组织流程,某个研发 Bot 再调用 Orca 或 Emdash 完成具体仓库里的编码任务。公开仓库目前没有提供这条现成集成,但它符合三者各自的对象边界。

公开版离“组织级平台”还有多远

Avernet 已有可运行代码,但 README 中的完整愿景也不能全部算作公开能力。

首先,README 将 Identity、Discovery、Relationships、Team Formation、Routing 和 Collaboration 标为 Available,同时把 Context、Memory、广义 Orchestration、Evaluation、Evolution 标为 Planned,见 README.zh-CN:L37-L82。这与源码中的状态机并不矛盾:固定模板的协作运行时已经公开,跨任务记忆、通用自主编排和持续评测仍未完整公开。

其次,当前状态机明确是 MVP。它只接受bot_taskhuman_input节点,不支持actionoutput_contract、变量和事件;图必须无环,且只能有一个入口和一个终止节点,guarded transition 也会被拒绝,见 definition.rs:L112-L132、L157-L199、L298-L374。但这些限制不等于状态机只能线性或并行推进:validate_requires的白名单已放行state_machine.node.judgestate_machine.outcome_transitionsjudge 驱动的 outcome 分支与带反馈重试已经实装,配合max_attempts和 judge 超时,公开版已具备质量门禁与条件分支,而不只是“并行后汇总”。

可靠性边界更值得注意。Provider 收到重复下行请求时必须自行按业务 ID 保证幂等,并按(provider_bot_ref, session_id)保存上下文;状态机的后续处理运行在当前 BCS 进程中,进程退出后不会恢复尚未完成的处理,见 Bot Provider 接入:L123-L130、L162-L173。本地配置虽然使用 SQLite,但store_messages = false,不能据此声称聊天消息默认全部持久化,见 bcs-config-local.toml:L1-L12。

最后,官方称内部部署已覆盖 12 个业务板块,统计工作流完成率超过 90%,但公开 README 同时说明 Demo 不展示完整的连接规模、权限隔离、审计、故障恢复和长期组织协作。这组数字应视为项目方自述,不是公开仓库已经独立证明的能力,见 README.zh-CN:L24-L41、L118-L127。

需要单独区分的是权限:它不是“仍是 MVP”,而是公开部分尚未生效。公开本地配置的鉴权链为chain = ["local", "session"]require_authentication = false,生产模板才是oauth_session+require_authentication = true,见 bcs-config-local.toml:L145-L147。因此本地形态下真正被强制的只有协作图层面的一致性检查(组织成员、好友、可见性、配额),不含能力隔离。

最终判断

Avernet 与 Emdash、Orca 只有表层相似:它们都把多个 Agent 放进一个可观察、可控制的系统。向下一层看,前两者围绕一次 Coding Task 组织目录、进程和代码结果,Avernet 围绕长期 Bot 组织身份、关系和协作方式。

当前公开版最可信的能力是 BCS:连接异构 Bot,控制谁能发现和邀请谁,再用群组、Session 与 YAML 状态机完成并行、汇聚、人工审核,以及 judge 质量门禁与条件分支。它已经比“多 Bot 群聊”多了一层可执行结构,但距离具备崩溃恢复、长期记忆、完整治理和自主编排的组织级 Agent 平台仍有明确缺口。

所以,Avernet 不是 Emdash 或 Orca 的升级版。它更像两者上方可能出现的一层组织控制面,而这层控制面能否进入生产,取决于公开版接下来怎样补齐恢复、审计、记忆和评测。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/14 0:44:18

企业内网通讯选型:从功能清单到安全集成生态的三维评估

数据安全法规趋严的今天,企业内网通讯早已不再是“选个聊天工具”那么简单。当数据主权上升到合规基础设施的高度,CIO和信息化负责人面临的真实拷问是:员工的通讯数据到底存在哪里?谁能看?谁能删?监管来了能…

作者头像 李华
网站建设 2026/8/11 19:11:51

量化分批交易设计:触发间距、仓位与停止条件

面对波动行情,很多人会说“跌了分批买、涨了分批卖”。这句话听起来简单,真正执行时却容易变形:第一笔买多少?每跌多少再买?反弹后先卖哪一笔?连续触发时是否还要继续?如果没有事先写清楚&#…

作者头像 李华
网站建设 2026/8/14 0:41:04

从源码到应用:csvtomd核心函数详解与自定义开发指南

从源码到应用:csvtomd核心函数详解与自定义开发指南 【免费下载链接】csvtomd 📝📊 Convert your CSV files into Markdown tables. 项目地址: https://gitcode.com/gh_mirrors/cs/csvtomd csvtomd是一款轻量级实用工具,能…

作者头像 李华
网站建设 2026/8/11 19:09:03

MySQL慢查询监控与优化实战指南

1. 慢查询SQL的识别价值与核心原理当数据库开始出现性能瓶颈时,慢查询往往是首要怀疑对象。我经历过一个电商系统在促销期间崩溃的惨痛教训——事后分析发现,一条未被及时发现的商品分类查询SQL在流量激增时拖垮了整个数据库集群。这个经历让我深刻认识到…

作者头像 李华
网站建设 2026/8/11 19:08:03

WMPFDebugger深度解析:Windows微信小程序逆向调试技术实战指南

WMPFDebugger深度解析:Windows微信小程序逆向调试技术实战指南 【免费下载链接】WMPFDebugger Yet another WeChat miniapp debugger on Windows 项目地址: https://gitcode.com/gh_mirrors/wm/WMPFDebugger WMPFDebugger是一款专为Windows平台设计的微信小程…

作者头像 李华