学习如何构建高效 AI Agent

Anthropic 的工程师 Barry Zhang 在最近的 AI Engineering 大会上分享了《How We Build Effective Agents》的演讲,非常受用,学习之余结合自己的工作实践做了一些总结。以下是我对他演讲的内容的总结和思考。
1. 不要为任何事情都构建 Agent(Don’t build agents for everything)
Barry 提到,Agent 可以扩展复杂和有价值的任务,但并不是简单一对一的升级所有类型的任务。他提到一个是否需要构建 Agent 的简单的检查列表:
非常简单的一个检查表。可以看到 Agent 更适合不差钱,足够复杂,同时可以完全自动化的任务。另外如果你发现如果 Agent 执行的任务真的发生了错误,是否能够接受。如果这些回答都是“是”的话,那么就可以考虑构建 Agent 了。否则,老老实实构建自动化 workflow。
Tips 用上面的检查表来看一个实际的例子:为什么说写代码的场景最适合用 Agent?
任务足够复杂吗?是的,代码可以写的非常复杂。
任务有足够有价值?是的,好的代码可以节省大量的时间和金钱。当然也可以换回来很多钱。
任务的所有部分都可以执行吗?是的,例如 Claude 就可以执行代码。
错误和发现错误的代价是什么?可以控制很低。通过 Unit-Tests 和持续集成来将错误控制在一个可接受的范围内。
2. 保持简单(Keep it simple)
Agent 定义: Agent 是模型在循环里面使用工具。

Env: 代表了 Agent 运行的上下文环境。可能是一个网页,一台电脑,或者是一个软件系统。
Tools: 代表了 Agent 可以使用的工具。可能是一个 API,也可能是基于 STDIO 的本地一个应用。
System_Prompt:指导模型在一定的环境上下文中,使用工具来完成任务,从而达到目的。
基于上面的三个因素来构建 Agent,并且持续优化这三个因素,可以让构建 Agent 更高效。
Tips 当你给系统提示词增加 2 个以上任务描述要求的时候,你会发现 Agent 会出现更大几率无法遵循你的指令来工作。因为系统提示词的复杂度增加了。你可以考虑将复杂的任务拆分成多个简单的任务,并使用多个单一任务的 Agent 来完成任务,这样更高效,同时单个 Agent 调试也更可控。
3. 像你的 Agent 一样思考(Think like your agent)
看下图,一个 Agent 的工作循环。可以想象一下,如果你是 Agent 本身是如何思考并执行的。类似于你闭上眼睛,一片漆黑,你可以获得上下文信息只有 128K token,多一些的也就只有 1~2M,这里面包含了可以使用的 Tool 的描述。之后你要在有限的信息中开始尝试执行任务。睁开眼睛看到且仅能看到一个结果的后,再决定做下一个动作。

你的信息永远都是有限的。这时候你要考虑你作为 Agent,如何才能高效的工作?
Tips 当你用上面的方式转变你的视角,你会发现简洁高效的系统提示词是多么的重要。只在必要的时候进行推理,毕竟上下文信息有限。这样你可以最大限度的提高 Agent 的执行准确率和效果。
总结与思考
Agent 的构建是一个复杂的过程,并且不是所有场景都适合构建 Agent。当你需要考虑到如何让 Agent 在有限的信息中做出正确的决策的时候。保持简单,关注最重要的因素,才能让 Agent 更高效的工作。
视频链接
版权声明: 本文为 InfoQ 作者【Bruce Talk】的原创文章。
原文链接:【http://xie.infoq.cn/article/e1ff36df1d5aac0b8213d4435】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论