我们如何构建 LangSmith Engine:用于改进代理的代理
LangSmith Engine 是一个位于代理追踪之上的智能代理,能够发现重复出现的问题并提出改进建议。本文详细介绍了其技术架构,包括如何大规模筛选追踪、识别问题、生成评估器和数据集示例,并持续更新代理概览以优化后续运行。
文章情报
要点
- Engine 自动发现追踪中的失败模式并转化为可操作的问题。
- 采用两阶段处理:先通过轨迹摘要快速筛选,再深入调查可疑追踪。
- 可连接代码库,提出修复建议并生成评估器和回归测试用例。
- 通过代理概览维持长期记忆,不断改进代理行为。
为什么重要
这条新闻值得关注,因为Engine 自动发现追踪中的失败模式并转化为可操作的问题。
技术影响
可能影响模型选型、推理成本、产品能力和评测基准。
上周,我们发布了 LangSmith Engine,这是一个位于 LangSmith 追踪项目之上的智能代理,旨在自动发现并解决代理运行中的重复问题。Engine 的核心任务包括:识别追踪中的失败模式、将其转化为可处理的问题、以及生成评估器、数据集示例和修复方案,从而将生产中的失败转化为团队的长期资产。
为什么构建 Engine
随着部署的代理数量增长,生成的追踪数据也急剧增加。基本的工具错误容易发现,但许多问题——如代理循环调用同一工具、使用错误参数、遗漏必要工具等——需要深入检查每条追踪才能察觉。为了解决这一内部痛点,我们开发了 Engine。
Engine 的输出:问题(Issues)
每个问题包含名称、描述、类别、严重等级、相关追踪证据和建议行动。建议行动包括:在线评估器(可标记未来类似失败)、数据集示例(用于离线回归测试)、以及代码或提示的修复建议。Engine 不仅指出错误,更致力于将失败转化为可测试、可行动的改进点。
Engine 的输入
Engine 接收四种主要输入:
- **指令**:通过“代理概览”(Agent Overview)描述代理的行为、预期追踪结构和已知失败模式。首次运行时从引导答案和项目上下文创建,后续手动或自动更新。
- **追踪**:通过 LangSmith CLI 拉取,优先使用压缩的轨迹摘要进行筛选,仅在需要时加载完整内容。
- **现有问题**:读取当前问题看板,避免重复,追加证据。
- **代码库(可选)**:连接 GitHub 仓库后,Engine 能更精确诊断问题并自动提出代码修改。
高层架构
Engine 基于 Deep Agents 构建,运行在沙盒环境中,通过 LangSmith CLI 与 LangSmith 交互。其处理流程分为五个步骤:
- **准备上下文**:设置沙盒、初始化代理概览、配置 CLI。
- **大规模筛选**:使用专用的筛选子代理(基于 Haiku 模型)并行处理约 20 条追踪的压缩轨迹,快速标记可疑项。
- **深入调查**:主代理调度调查子代理,加载完整追踪内容,寻找失败模式。
- **创建问题与资产**:生成问题、评估器、数据集示例,并可选地自动提交修复。
- **更新记忆**:将新发现写入代理概览,供后续运行参考。
筛选阶段是 Engine 扩展性的关键。通过轨迹格式(每轮角色、延迟、内容大小)和优先处理带有反馈的追踪,Engine 有效降低了需要详细分析的追踪数量。实践证明,这种两阶段方法使 Engine 能够处理数千条生产追踪而不会过载。
未来展望
Engine 目前仍处于早期阶段,但已显著提升了代理调试和迭代的效率。未来,我们计划增强其对复杂多步骤问题的识别能力,并进一步优化代码库的集成体验。