很多人谈 Autonomous Agent,容易把重点放在“全自动”上。好像理想状态是人类给一句话,系统自己拆解、搜索、调用工具、写代码、上线,最后把结果端回来。
我现在不太相信这种叙事。至少在工程场景里,Agent 的价值不是“没有人”,而是“人不用一直盯着它做低价值操作”。
有用的自主性,是在明确边界内持续推进:知道目标,知道当前状态,知道可用工具,能判断下一步,也知道什么时候该停下来问人。
自主性从边界开始
一个可靠的 Agent 不应该像一个拥有无限权限的脚本。它需要任务边界、资源边界、权限边界和风险边界。
任务边界回答“这次要做到什么程度”:只写方案,还是可以改代码?可以跑测试,还是可以部署?资源边界回答“能访问什么”:文件系统、浏览器、数据库、外部 API。权限边界回答“能不能产生副作用”:读取日志和删除数据显然不是一个级别。
所以 Autonomous Agent 的设计重点,不是让模型更大胆,而是让它在正确的地方大胆,在危险的地方克制。
计划不是仪式,是刹车
Agent 需要规划,不是因为计划本身神圣,而是因为计划能把隐含推理变成可检查对象。
一个工程任务通常不是单步动作,而是“理解需求、探索现状、提出假设、执行修改、验证结果”的链条。没有计划时,Agent 很容易在局部上下文里做看似合理的动作,却偏离最初目标。计划的价值在于把任务拆成阶段,并在阶段之间留下检查点。
好的计划不一定复杂。小任务可能只是三步:读相关代码、修改目标文件、运行验证。大任务才需要范围、依赖、风险、回滚方式和人工确认点。
计划不是为了制造流程感,而是为了让 Agent 的自主推进可预测、可中断、可审计。
状态让 Agent 不至于失忆
Agent 和普通函数最大的不同之一,是它需要在多轮行动里维护状态。
这里的状态不只是聊天记录,还包括:用户这次到底想解决什么、已经读过哪些文件、哪些假设被证伪、哪些工具调用成功或失败、当前工作区是否有未提交修改、验证结果是否可信。
没有状态,Agent 就会重复探索、忘记约束,甚至覆盖用户的工作。一个“能说会道但不知道自己刚才干了什么”的 Agent,比普通脚本还危险。
更重要的是,状态要分层。短期状态用于当前任务推进,长期状态用于偏好、项目约定和历史经验。工程上不能把所有东西都塞进 prompt;应该有明确的记忆结构、摘要机制和状态刷新策略。
工具治理比工具数量重要
工具让 Agent 从“会说”变成“会做”,但工具也是风险来源。
一个工具调用可能读取敏感文件、修改代码、创建 PR、发送消息,甚至影响生产环境。因此工具治理是 Agent 系统的核心部分。
至少要回答几个问题:这个工具能做什么?调用前需要什么参数?是否有副作用?失败时如何恢复?哪些操作需要用户确认?调用结果如何被验证?
理想的工具系统应该有最小权限原则。能只读就不要写,能限定目录就不要全盘访问,能 dry-run 就不要直接执行。
对高风险操作,比如删除数据、迁移数据库、强推分支、部署生产环境,Agent 应该默认停下来,把意图、影响范围和回滚方案讲清楚,再让人确认。
自主推进依赖反馈
Agent 不是一次性生成答案,而是在反馈循环中工作。
它先观察环境,再形成下一步动作,然后调用工具,读取结果,更新判断。这个循环越短,系统越可靠。
比如写代码后立刻跑相关测试,比最后一次性跑全量测试更容易定位问题。浏览器操作后立即查看页面状态,比连续点击五次更不容易走偏。
反馈循环还包括失败处理。工具失败不是异常情况,而是常态。网络会超时,依赖会缺失,测试会 flaky,页面结构会变化。好的 Agent 不应该只会重试,而应该根据反馈调整策略:缩小范围、换验证方式、提出假设、请求人工输入。
人应该在关键处出现
“人在回路中”不等于每一步都打断人。频繁确认会让 Agent 失去价值。更好的方式是设计控制点。
低风险、高确定性的步骤可以自动执行,比如搜索代码、读取文档、运行只读诊断。中风险步骤可以先说明计划再执行,比如局部改代码、更新测试。高风险步骤必须等待确认,比如影响数据、权限、账单、生产环境、对外发送内容的操作。
人的角色不是手动替 Agent 做事,而是提供判断:目标是否正确、风险是否可接受、取舍是否符合业务现实。Agent 负责把信息组织好,把选项讲清楚,把可执行路径准备好。
最后
Autonomous Agent 的核心不是替代人类,而是把一部分工程推进能力封装成可控系统。
它应该能计划、能记忆、能使用工具、能从反馈中调整,也能在边界前停下。
最值得警惕的是“看起来完成了”。Agent 很擅长生成完成感:写了代码、给了总结、语气自信。但工程上重要的是证据。测试是否运行?输出是什么?有没有覆盖核心路径?如果没验证,就应该明确说没验证。
有用的自主性,是有方向的、受约束的、可验证的自主性。它不是“放手不管”,而是让人从低价值操作中退出,同时保留对目标、风险和最终判断的控制权。