来源:抖音 @AIJason
“循环工程师”是当前人工智能领域最热门的话题之一,它标志着我们与大语言模型(LLM)交互方式的巨大转变。过去,我们可能仅仅通过简单的提示来使用LLM完成文本补全等任务,但现在,随着模型变得更智能、上下文窗口更大,我们开始构建能够自主发现问题并完成工作的智能体循环。
智能体工程的演变
传统的LLM应用场景普遍依赖“提示工程师”通过精心设计的提示词引导模型输出。然而,随着LLM能力的提升和上下文窗口的扩展,出现了更复杂的角色。
提示工程师 (Prompt Engineer)
在2023年GPT-3.5/4 API刚发布时,LLM主要用于简单的文本补全任务。提示工程师关注如何通过系统提示词(如“始终使用大写字母返回文本”)来约束模型行为,确保输出符合特定格式或风格。这本质上是关于如何在调用LLM时注入正确的上下文以引导其行为。
上下文工程师 (Context Engineer)
到了2024年中期,LLM变得更智能,上下文窗口也显著增大(从4K tokens到128K甚至1M tokens)。这使得LLM能够处理更长的对话和更复杂的任务。此时,“上下文工程师”应运而生,他们专注于如何有效地利用这巨大的上下文窗口:
- 系统提示词优化: 如何在系统提示词中添加信息以更好地触发缓存。
- 长对话处理: 通过压缩策略(Compaction strategy)管理和处理长对话。
- 工具与技能加载: 决定加载哪些工具和技能,以扩展智能体能力。
- 工具调用信息管理: 如何截断(truncate)和存储工具调用信息。
上下文工程师的目标是在不超出上下文窗口的情况下,提供最相关的信息,从而直接影响智能体的性能。
智能体与马具(Agent Harness)
到2025年底,AI已经能够处理更长、更庞大的任务。我们不再满足于让单个智能体完成整个任务,而是开始将任务分解,让多个不同的智能体并行处理不同的子任务,并持续迭代直到完成。这被称为“跨会话工作”(Cross-session work)。
为了协调这些智能体的工作,并跟踪它们之间的状态或文件系统,引入了“智能体马具”(Agent Harness)的概念。最初由LangChain的Viv提出,马具指的是模型本身之外的所有代码、配置和执行逻辑。它赋予了原始模型状态管理、工具执行、反馈循环和可强制约束等能力,使其成为一个真正的智能体。
然而,马具的概念过于宽泛,涵盖了从系统提示词、工具、基础设施到编排逻辑和执行钩子等诸多方面。因此,需要一个更具指导性的框架来优化和构建这些系统,这正是“循环工程师”的核心职责。
循环工程师的核心机制
循环工程师关注如何构建一个外部环境,使其能够触发智能体的运行,跟踪状态和日志,并通过持续改进实现目标。其核心机制包括:
-
触发器 (Trigger): 这是唤醒智能体的机制,让它在适当的时间和情境下开始工作。常见的触发器包括:
- Cron Job (定时任务): 定时唤醒智能体。
- Webhook (网络钩子): 外部事件触发。
- Daemon (守护进程): 持续运行并在特定条件下激活。
-
调查与行动 (Investigate & Act): 被触发后,智能体将进行调查,分析现状并采取行动。这包括生成一系列待办事项或想法。
-
待办事项生成与任务分配 (Backlog gen & Assign task): 智能体根据调查和行动的结果,生成待办事项并确定优先级,必要时将任务分配给其他智能体。
-
回顾与学习 (Review & Learn): 任务完成后,智能体将回顾整个过程,从经验中学习,从而优化下一次的行动。这一环节是实现复利效应的关键。
案例:AI支持循环
以一个处理客户支持请求的智能体循环为例:
-
简化版: 每30分钟,智能体被唤醒,查看所有支持工单,回复尚未自动处理的工单,并记录遇到的摩擦点和想法。这些记录可作为未来产品改进的参考。
-
增强版: 在简化版的基础上,如果智能体记录到某个摩擦点或想法,并且该问题被多次报告,它将触发一个编程智能体(coding agent)来直接实现其中一些改进,并监控其性能。这样一来,支持团队不仅能及时响应客户,还能通过AI驱动的自动化流程不断改善产品,实现强大的复利效应。
四大核心要素
要为你的业务构建高效的智能体循环,需要关注以下四个核心组件或要素:
-
触发器 (Trigger): 定义多种触发器,如Cron Job、Webhook或Daemon,以确保智能体能在相关时间和场景下被唤醒。通过设置正确的触发器,智能体可以变得更加自主,在无人干预的情况下交付有意义的工作。
-
文件结构 (File structure) & 日志 (Logs): 这是确保循环高效运行的关键。我们需要一个结构化的文件系统作为知识库和长期记忆,包括:
- 交付物 (Artifacts): 文档、信号、任务和内容等,由智能体生成或发现。这些是跨循环共享的知识载体。
- 循环契约 (Loop Contract): 为每个循环定义其目标、工作流、任务列表和时间线,明确其职责和运行方式。
- 日志 (LOG.md): 一个全局的工作日志,记录每个智能体的工作进展。智能体在工作前会读取最新的记录,完成后则写入更新,确保持续的上下文和协作。
-
工具 (Tools) 与技能 (Skills): 为智能体提供执行有意义工作所需的工具集和连接器。这包括:
- 定制化技能: 根据业务需求开发特定技能,如Intercom技能用于获取工单、Stripe CLI用于检查支付信息、渲染(Render)技能用于获取后端日志,以及分流支持工单的技能等。这些技能通过明确定义的工作流程和规则,使智能体能够处理复杂任务。
- 工作流: 可重用的工作流,用于标准化特定任务的执行过程。
- MCPs: 允许模型拥有更高的自主决策能力,决定何时以及如何使用其工具和技能。
-
验证 (Verify): 这是最容易被忽略但至关重要的一点。需要确保你的代码库和环境设置能支持并行和自主工作,并允许每个智能体验证自身工作。
- 可读性/约束 (Legible/Constraints): 代码库应清晰易读,智能体能轻松理解在哪里修改什么。通过自定义lints(代码检查工具),可以对智能体生成或修改的代码施加约束,确保其符合规范。例如,禁止导入旧模块或强制使用特定API版本。
- 可执行性 (Executable): 智能体应能在本地开发服务器上启动并运行,不消耗过多的tokens或认知负荷。通过dev-local脚本可以一键启动整个开发环境。
- 工作树友好 (Worktree friendly): 当多个智能体并行工作时,每个智能体都在独立的工作树上操作,确保互不干扰,便于测试和验证。
- 可验证性 (Verifiable): 智能体需要合适的工具来测试和记录结果,例如使用Playwright CLI进行端到端测试,并录制视频片段作为验证证据,上传到Pull Request中。同时,要避免智能体自我验证,因为它通常不可靠。
实践:构建你的代码库马具
为了加速这一过程,作者创建了一个名为 loop-engineer-setup 的GitHub仓库模板,其中封装了构建高效智能体循环的所有最佳实践和设置。你可以直接复制该仓库,并根据其Quickstart指南进行配置,快速启动你的第一个智能体循环。
通过遵循这些原则和工具,能够让AI agents更好地理解、执行和验证任务,从而实现更大规模的自动化和业务增长。循环工程师的角色,正是为了构建和优化这些强大的AI驱动系统,将AI从简单的任务执行者提升为能够跨领域协作、自我演进的生产力引擎。