Agent-to-Agent 网络¶
核心判断¶
人与 Agent 的交互解决的是“个体如何使用 AI”。Agent 与 Agent 的交互解决的是“组织如何被 AI 重新编排”。
当企业内部存在多个部门、多个流程、多个角色和多个专业能力时,不能把所有能力塞进一个超级 agent。更可控的方式是建立 Agent-to-Agent 网络:
- 每个 agent 承担明确职责。
- agent 通过消息、事件、查询和任务委托协作。
- harness 负责权限、路由、审计和状态管理。
- agent 的组织结构反过来影响人的组织结构。
未来组织中的沟通比例会发生变化:人与人直接同步减少,人与 agent 交互、agent 与 agent 协作增加。
参考 Zenoh 的思想¶
Agent-to-Agent 网络可以参考 Zenoh 一类系统的思想:用统一的数据空间、主题/键表达、发布订阅、查询和分布式路由来连接节点。
这里不是说第一阶段必须引入 Zenoh,而是借鉴它的架构直觉:
- 不把所有通信写成点对点接口。
- 用主题或 key expression 表达任务、事件、资源和能力。
- 支持发布订阅,也支持查询。
- 支持局部自治和全局路由。
- 让节点可以松耦合加入网络。
Agent 网络抽象¶
flowchart TD
Bus["Agent Message & Data Bus"]
UserAgent["员工助理 Agent"] --> Bus
RD["研发 Agent"] --> Bus
MKT["市场 Agent"] --> Bus
HR["HR Agent"] --> Bus
FIN["财务 Agent"] --> Bus
OPS["行政后勤 Agent"] --> Bus
Policy["Policy Agent"] --> Bus
Eval["Eval Agent"] --> Bus
Bus --> Tools["Tool Plane"]
Bus --> Memory["组织知识与任务状态"]
通信类型¶
Event¶
用于通知状态变化。
示例:
text
task.issue.created
workflow.reimbursement.waiting_approval
document.marketing.copy.generated
ci.pipeline.failed
Command¶
用于请求某个 agent 执行动作。
示例:
text
rd_agent.create_pr
marketing_agent.generate_campaign_plan
finance_agent.precheck_reimbursement
ops_agent.create_procurement_ticket
Query¶
用于查询信息。
示例:
text
policy.query
employee.lookup
campaign.performance.query
repo.context.search
Artifact¶
用于传递结构化产物。
示例:
text
draft_document
test_report
approval_summary
customer_research_brief
Agent 组织结构¶
第一阶段建议采用三层 agent 结构:
```text 入口层 - 员工助理 Agent - 部门入口 Agent
专业层 - 研发 Agent - 市场 Agent - HR Agent - 财务 Agent - 行政后勤 Agent
治理层 - Policy Agent - Audit Agent - Eval Agent - Routing Agent ```
入口层负责理解人的意图,专业层负责完成业务任务,治理层负责约束、记录和评估。
Agent 组织如何影响人的组织¶
当 agent 网络成熟后,组织结构会从“人找人”逐步转向“人找任务入口,agent 找能力节点”。
这会带来几类变化:
- 管理者从派活转向设计目标和规则。
- 业务骨干从重复答疑转向沉淀工具和模板。
- 一线员工从等待协调转向直接发起任务。
- 职能部门从人工处理请求转向维护服务型 agent。
- IT 和研发从建系统转向建设可复用能力网络。
关键风险¶
Agent-to-Agent 网络不能失控扩张。需要从第一天设计约束:
- 每个 agent 的职责边界清晰。
- 每条消息都有来源、权限和 trace。
- 高风险命令需要 policy gate。
- agent 不能绕过 tool plane 直接访问数据。
- 失败、冲突和循环调用必须可检测。
第一阶段落地方式¶
先不要做复杂分布式网络。建议先实现一个逻辑上的 agent bus:
text
agent_bus
- publish(event)
- request(command)
- query(topic)
- subscribe(pattern)
- trace(message_id)
初期可以由单体后端或队列实现,等业务复杂度上来后再评估是否引入 Zenoh、NATS、Kafka、Redis Streams 或其他消息基础设施。