Agent 架构

走向开放世界:Agent 基础设施的下一阶段

Agent 基础设施必须超越软件工程(IDE、git)进入更广泛的知识工作领域:法律、医疗、工程

07 - 走向开放世界

回望

在前六章中,我们构建了一个认知框架。

对话循环中,我们看到了控制权移交的基本节拍——User 与 Assistant 之间的边界,构成了 Agent 系统最原子的检查点。

行动循环中,我们看到了 Assistant 如何获得手——通过工具调用与环境交互,在单次 Turn 内完成多步骤任务。Step 成为 Agent 与世界的实际接触点。

会话循环中,我们看到了 Agent 寿命的延展——从一轮对话到完整任务,从有限游戏到无限游戏。Session 成为状态沉淀的容器。

控制机制中,我们看到了约束的价值——没有离心调速器的蒸汽机无法持续运转,没有控制机制的 Agent 无法托付重要任务。

状态总线中,我们看到了感知的前提——控制机制需要传感器,而传感器需要状态被物理化地暴露。

这个框架的价值不在于它的复杂性,而在于它的稳定性。无论模型如何迭代,无论工具如何丰富,这三层循环和两个支撑机制始终存在。它们构成了 Agent 运行时的不变结构。

但直到现在,我们始终在讨论一个隐含前提:Agent 工作在软件工程的"净室"中。

净室的幻觉

净室有明确的完成定义、标准化的工具链、开箱即用的反馈机制。pre-commit 知道该拦截什么,CI/CD 知道该验证什么,Git 的历史记录就是天然的审计日志。

Harness Engineering 的繁荣,很大程度上是这种净室特殊性的产物。当我们把 Agent 塞进 IDE 的 on-save 钩子、Git 的 pre-commit、CI 的合并检查,我们实际上是在借用人类的基础设施。

这种"借壳上市"在蜜月期运行良好,但它有三个致命假设:

假设一:Agent 运行在人类的桌面上,因此依赖 VSCode、JetBrains 等 GUI 工具作为 Runtime 是合理的。

假设二:"完成"的定义是通用的,因此 pre-commit 足以捕捉所有质量门需求。然而对更高可靠性的要求需要进行 micro-managment。

假设三:所有领域都有软件工程级别的标准化工具链,因此复用现有基础设施是可持续的。

当 Agent 走出净室,这些假设逐一崩塌。

走出净室

想象 Agent 进入法律合同审查领域。没有 Jira Ticket 来追踪进度,没有单元测试来验证正确性,没有 SonarQube 来评估质量。"条款遗漏"不像"测试失败"那样可以自动化检测,"法律风险"不像"代码复杂度"那样可以量化评分。

想象 Agent 进入医疗诊断辅助领域。没有 Git 历史可以回溯,没有 CI 管道可以阻断。每一个建议都涉及生命安全,但"正确性"的标准分散在临床指南、医院规章、监管要求之间,没有单一的钩子可以拦截所有错误。

想象 Agent 进入供应链谈判领域。没有统一的 API 接口,没有标准化的数据格式。每个供应商有自己的系统,每个行业有自己的惯例。Agent 需要在 email、PDF、Excel、电话记录之间穿梭,而这些工具从未被设计为机器可消费。

这些领域缺乏软件工程的"数字化就绪度",但它们恰恰是 Agent 价值最大的地方——知识工作密集、流程复杂、人力成本高昂。

问题在于:我们的基础设施是为净室设计的。

从借用到原生

当 Harness Engineering 借用 IDE 的 on-save 钩子时,它继承了所有为人类优化的冗余——GUI 渲染、光标位置、撤销历史。云端 Agent 不需要这些,却为了触发一个校验而背负整个编辑器。

当 Harness Engineering 借用 Git 的 pre-commit 时,它被迫接受"提交"作为唯一的质量门节点。但合同审查可能需要"初稿完成"、"合规检查通过"、"客户确认"三个节点,Git 的线性提交历史无法表达这种分支语义。

借用是捷径,但天花板清晰可见。

原生基础设施的目标不是复用现有工具链,而是回答一个更基础的问题:如果 Agent 从一开始就是为机器设计的,它的运行时会是什么样子?

呼应:开放世界中的三层循环

回到我们的框架,现在以开放世界的视角重新审视。

对话循环在净室中是一问一答的 Chat 界面,在开放世界中是控制权的多极化。User 不再是唯一的人类参与者——可能有审批者、评估者、监督者。Turn 的结束不再只是"回复生成完毕",而是"所有必要的确认已收集"。

行动循环在净室中是调用文件读写、运行测试,在开放世界中是与异构环境的脆弱交互。工具可能失败、可能返回非结构化数据、可能需要人工介入才能完成。Step 不再是可靠的构建块,而是需要重试、降级、熔断的冒险。

会话循环在净室中是本地目录中的代码修改,在开放世界中是跨系统的状态持久化。Session 可能跨越数天,期间人类参与者来来去去,外部事件不断涌入。状态总线不再只是为了控制机制的可观测性,而是为了共识的达成——让分散在不同系统、不同时间的人类和 Agent 对"当前状态"有共同的理解。

这就是开放世界的核心挑战:不是技术的复杂性,而是共识的稀缺性

呼应:控制与状态的再定义

在净室中,控制机制的目标是防范已知错误——阻断未读取文件的写入、限制循环步数、拦截危险命令。这些规则是领域无关的,可以在所有代码库中通用。

在开放世界中,控制的目标升级为定义可能性。没有现成的规则可以复用,控制机制必须与领域专家协作,将组织的知识编码为可执行的策略:"合同必须经过法务审查才能发送"、"高风险诊断必须有人类医生二次确认"。

控制机制从"安全网"进化为"治理基础设施"。

在净室中,状态总线的目标是让框架披露信息,让使用者能够构建自定义控制器。它是单向的:从框架到使用者。

在开放世界中,状态总线的目标是建立共享现实。人类审批者需要知道 Agent 做了什么,Agent 需要知道人类审批者的决定,下游系统需要知道当前事务的阶段。状态总线成为跨组织、跨角色、跨系统的共识层

状态总线从"传感器"进化为"协议"。

Agent Hooks 与 Agent Flag 共同构成了一套开放的控制平面协议,前者定义控制逻辑的挂载标准,后者定义状态通信的物理格式。详见:docs/agent-hooks.mddocs/agent-flag.md

新的工程伦理

走出净室,我们面对一组新的权衡。

确定性 vs 适应性:在净室中,我们追求给定输入的确定性输出。在开放世界中,同样的输入可能需要不同的响应——因为监管环境变了,因为客户偏好变了,因为风险评估变了。Agent 需要适应能力,但适应不能等同于失控。

自动化 vs 问责制:在净室中,我们可以让 Agent 自动合并代码,因为测试失败可以回滚。在开放世界中,一次错误的合同条款可能带来法律责任,无法简单"回滚"。自动化必须与清晰的问责边界共存。

效率 vs 可解释性:在净室中,我们优化 Token 消耗和响应延迟。在开放世界中,我们可能需要牺牲效率来换取可审计性——每一个决策都需要可追溯的轨迹,即使这会减慢速度。

这些权衡没有通用答案。每个领域、每个组织都需要找到自己的平衡点。Agent 基础设施的价值,在于提供做出这些权衡的能力,而不是替使用者做出选择。

结语:从 Harness 到 Infrastructure

Harness Engineering 是一场必要的过渡。它证明了控制平面的价值,验证了 Agent 在生产环境中的可行性,建立了最初的工程实践。

但它只是一个开始。

当 Agent 走出软件工程的净室,进入法律、医疗、金融、制造的开放世界,我们需要的不只是更好的"马具",而是一套原生的基础设施——

为机器设计的运行时,而非为人类设计的编辑器; 为语义设计的状态总线,而非为物理动作设计的钩子; 为共识设计的协议,而非为单机设计的存储。

这套基础设施的核心使命,是让 Agent 在缺乏标准化工具链的领域,依然能够建立可靠的控制循环、维持跨系统的状态一致性、与人类协作者达成清晰的共识。

这不是对 Harness Engineering 的否定,而是它的完成。

Agent Engineering 的终局,不是打造更好的 Agent,而是打造让 Agent 能够在任何领域可靠运行的基础。

让我们开始建造。