Anthropic 那篇著名的《Building effective agents》作者之一 Barry Zhang 在 2 月底的演讲,讲了三个核心思想,仍然是值得一听。(Anthropic 这个系列的更多内容见:http://t.cn/A61UrEvY)
🌈 核心主题: 构建有效的 AI 智能体需要仔细考虑何时使用它们、保持实施的简洁性,并理解智能体的视角。
🌈 关键概念与演进过程:
LLM 应用的演进:
- 始于单一LLM功能(如摘要、分类)—— 简单,现已成为基础能力。
- 发展到工作流(Workflows):编排多个、预先定义好的 LLM 调用。适用于在定义好的任务上,通过权衡成本/延迟来换取更好性能的场景。
- 当前阶段智能体(Agents):LLM 自主决定其行动轨迹,通过工具与环境交互,并根据反馈更独立地运作。智能体提供更强能力,但也带来了更高的成本、延迟和潜在的错误后果。
🌈 构建有效智能体的三个核心观点:
1.不要为所有事情都构建智能体:
- 智能体擅长处理复杂、模糊且价值高的任务。
- 它们并非适用于所有场景的简单升级替代方案。更简单、定义明确的任务通常更适合用更可控、更具成本效益的工作流来处理。
- 构建智能体前的检查清单: 考虑任务是否足够复杂、价值是否足够高(智能体消耗大量 token)、技术上是否可行(模型能否完成核心部分?)、以及错误的成本/可发现性是否低到足以允许其自主运行。
例子: 编程是一个好的智能体应用场景,因为它复杂、有价值、模型有能力处理,并且错误通常能被测试/CI 捕获。
2. 保持简单(Keep It Simple):
- Anthropic 将智能体视为**“在循环中使用工具的模型”**。
- 核心组成部分是:智能体所处的环境(Environment)、用于交互和获取反馈的工具(Tools)、以及定义目标、约束和行为的系统提示(System Prompt)。
- 重点迭代这三个核心组件。避免前期过度设计,因为复杂性会严重拖慢迭代速度。
- 不同的智能体用例(编码、计算机使用、搜索)共享这种简单的底层结构,只是具体环境、工具和提示不同。
3. 像你的智能体一样思考(Think Like Your Agents):
- 理解智能体的视角至关重要,其视角受限于上下文窗口(Context Window)。
- 智能体在每一步只能“看到”其上下文中明确提供的信息(指令、工具、历史记录)。
- 进行换位思考:尝试自己仅凭智能体能获取的有限信息来完成任务(例如,对于计算机使用智能体,看着静态截图,并在执行期间闭上眼睛,然后睁开眼睛,再看到静态页面)。
- 这有助于识别必要的上下文(如屏幕分辨率、特定限制)和不清晰的指令。
- 利用 LLM 本身(“让 Claude 理解 Claude”):将提示、工具描述或执行轨迹反馈给模型,检查是否存在歧义以及模型是否理解。
🌈 个人思考 / 开放性问题:
- 预算意识: 智能体如何理解并遵守时间、成本或 token 预算?
- 自我演进的工具: 模型能否改进自身的工具描述和人机工程学设计?
- 多智能体通信: 我们如何超越简单的同步“用户/助手”轮次,实现多个智能体之间更丰富、可能异步的通信? http://t.cn/A6BDQd6E
发布于 北京
