我们用遥测取代了消息总线,以实现 AI 代理协同

发布: (2025年12月22日 GMT+8 23:02)
3 min read
原文: Dev.to

Source: Dev.to

传统消息总线的挑战

  • 协调开销 – 显式消息传递需要精心设计协议。
  • 调试噩梦 – 故障只能从分散在各代理之间的消息中拼凑出来。
  • 扩展问题 – 代理越多 → 路由逻辑呈指数增长。
  • 状态管理 – 保持代理同步需要复杂的状态机。

这些问题在我们的 AI 驱动开发工作流中成为瓶颈。

将遥测作为协调机制

与其发送显式消息,每个代理向共享的可观测性后端(例如 SigNoz/ClickHouse)发出结构化遥测。随后代理查询这些遥测,了解其他代理的行为并决定自己的下一步动作。

Push 模型 → Stigmergic 模型:代理响应环境中留下的痕迹,而不是直接消息。

otel‑ops‑pack 核心循环

1. 每个代理操作都转化为遥测 Span

with tracer.start_as_current_span("agent_task") as span:
    span.set_attribute("agent.id", "cursor-agent-1")
    span.set_attribute("task.type", "code_generation")
    span.set_attribute("task.status", "complete")
    span.set_attribute("quality.score", 0.95)
    # Do work...

2. 代理查询自己的遥测

def check_prerequisites(task_id):
    """Check if prerequisite tasks are complete by querying telemetry"""
    query = f"""
    SELECT status, quality_score
    FROM spans
    WHERE task_parent_id = '{task_id}'
      AND status = 'complete'
    """
    results = telemetry_client.query(query)
    return len(results) > 0

3. 自组织协调

因为共享同一个真相源,代理会自然协同。无需显式消息,审计轨迹会自动生成。

基于证据的治理

在遥测驱动的协调之上,我们构建了 BossCat,一个以证据为先的治理框架。门(gate)充当检查点,只有提供具体遥测证据才能继续前进。

证据规则 – 代理不能仅仅声称“安全检查通过”。它必须提供安全工具写入输出的 Span ID,以防止凭空的合规声明。

gate_requirements:
  - name: "security_scan"
    evidence_type: "telemetry_span"
    span_name: "security_scan_complete"
    required_attributes:
      - "vulnerabilities.critical: 0"

成果

  • 96 % 的门在第一次尝试即通过。
  • 复杂工作流的调试时间从数小时降至数秒。
  • 协调逻辑减少了 ≈ 85 %

为什么这很重要

随着自主群体成为常态,脆弱的消息总线无法满足所需的可靠性。遥测驱动的架构天生具备自文档化、自审计和自纠正的特性,为未来的 AI 基础设施提供了坚实的基石。

开源

我们正在开源 otel‑ops‑pack,帮助其他人将遥测优先的协调方式应用到他们的代理系统中。

Back to Blog

相关文章

阅读更多 »