AI 技术 约 7 分钟

Agent Design 仍然很难:真正难的是边界设计

Agent 设计难,不是因为我们不会写 Prompt,而是因为我们总想让一个系统承担太多不该承担的责任。

Agent Design 仍然很难真正难的是边界设计
Agent Design 仍然很难:真正难的是边界设计

Agent 设计难,不是因为我们不会写 Prompt,而是因为我们总想让一个系统承担太多不该承担的责任。

Agent 设计到今天仍然很难。

这句话今天听起来依然成立。

不是因为框架不够多,也不是因为模型不够强,而是因为很多 Agent 从一开始就没有设计清楚边界。

它到底负责什么?
它不负责什么?
它能自主到什么程度?
什么时候必须停下来问人?

这些问题不清楚,Agent 越能干,风险越大。

Agent 不是“会调用工具的聊天框”

很多失败的 Agent 设计,起点就是错的。

它们把 Agent 当成一个聊天框,再给它加一堆工具。

但真实 Agent 更像一个受约束的执行系统。

它需要目标、状态、工具、权限、反馈和停止条件。

少了任何一层,系统都会变得不可控。

A2A 的 Agent Card 设计也从侧面说明了这一点:当 Agent 要和其他 Agent 协作时,它需要公开的是机器可读的能力、端点、认证方式和交互模式,而不是一句“我很智能”。能力能被发现,边界才能被治理。

最难的是定义停止条件

很多 Agent 设计只定义了开始,没有定义停止。

什么时候算完成?
什么时候算失败?
什么时候应该重试?
什么时候应该交给人?

如果没有停止条件,Agent 会倾向继续行动。

而生产系统最怕的,就是“错了还继续做”。

好的 Agent 设计从反例开始

设计 Agent 时,不要先问“它能做什么”。

应该先问“它不能做什么”。

比如:

这些反例会逼你把边界写清楚。

Agent 应该被拆成可验证的子系统

一个大而全 Agent 很难评估。

更好的方式是拆层:

每一层职责越小,系统越容易验证。

flowchart LR
    A["用户目标"] --> P["Planner"]
    P --> E["Executor"]
    E --> G["Tool Gateway"]
    G --> T["受控工具"]
    E --> C["Critic"]
    C --> H["人工接管"]
    C --> R["结果交付"]

先给结论

Agent 设计难,不是难在会不会写一个复杂 Prompt。

真正难的是把目标、边界、工具、状态、验证和接管机制设计清楚。

如果没有这些,Agent 看起来越聪明,越容易把不确定性带进真实系统。

所以 Agent 设计的第一性原理不是“让模型多做一点”,而是“让系统知道什么时候该做,什么时候不该做”。

参考资料:

边界设计应该从权限开始

Agent 的能力边界,最终会落到权限边界。

一个只读 Agent 和一个能写数据库的 Agent,不是同一种产品。

一个能创建 PR 的 Agent 和一个能直接合并发布的 Agent,也不是同一种风险。

所以设计 Agent 时,应该先把操作分级:

不同等级需要不同审批。

这比讨论“Agent 自主性”更具体。

上下文边界同样重要

Agent 不应该默认看到所有信息。

它应该看到完成任务所需的最小上下文。

这不是为了限制能力,而是为了降低误判和泄漏风险。

比如一个财务 Agent 处理报销,不一定需要读取员工所有聊天记录;一个代码 Agent 修测试,也不一定需要访问生产密钥。

上下文越多,模型越容易被无关信息干扰,也越容易带来合规问题。

评价一个 Agent 设计,可以看五个问题

第一,它的任务是否足够具体。

第二,它是否有明确停止条件。

第三,它能调用哪些工具,权限如何分级。

第四,它失败时能否恢复或交给人。

第五,它的过程能否被审计和复盘。

如果这五个问题答不上来,Agent 设计就还停留在 Demo 阶段。

四类边界要分开设计

Agent 设计里最容易混淆的是边界。

很多团队只讨论“让它自主一点还是保守一点”,这太粗。

更好的做法是把边界拆成四类。

第一是目标边界:它到底负责哪个任务结果,不负责哪些外部目标。

第二是权限边界:它可以读什么、写什么、触发什么。

第三是上下文边界:它能看到哪些信息,哪些信息默认不可见。

第四是停止边界:遇到什么情况必须停、问人、回滚或只输出建议。

这四类边界不要混在一个 Prompt 里含糊描述,而应该落实到系统配置、工具权限、工作流状态和评测用例里。

一个客服 Agent 的例子

假设要做一个客服 Agent。

坏设计是:让它“自动回答客户所有问题”。

好一点的设计是:

这样设计后,Agent 的能力看起来变窄了,但产品变得可控。

生产系统宁可要一个窄而稳定的 Agent,也不要一个看似强大但责任不清的 Agent。

最后:Agent 设计要先限制,再放权

Agent 设计最重要的,不是让它更自主,而是让它知道不能自主到哪里。

先限制边界,再根据真实评估逐步放权,这比一开始追求全自动更稳。

越是强模型,越要有清晰系统设计承接它的行动能力。

文档信息

京ICP备2021015985号-1