LangChain 的开源软件工厂

@BraceSproul
英语2天前 · 2026年7月18日
154K
263
46
10
671

TL;DR

LangChain 发布了一套开源工具,包括 dcode、OpenSWE 和 OpenWiki,旨在为软件工程工作流打造一个全面的 AI Agent 工厂。

在 LangChain,我们通过终端、Slack、Linear、GitHub 和 CI 与软件工程 Agent 交互。

不同的工作流需要不同的 Agent。本地编码应该感觉交互式。云端编码应该在后台运行并创建 PR。代码审查应该细致入微并与 GitHub 紧密集成。仓库文档应该贴近代码,并为 Agent 提供有用的上下文。

我们已经将这套系统构建为一组开源工具:

它们共同构成了我们的软件工程 Agent 工厂。这就是我们在内部使用的形态:本地 Agent、云端 Agent、审查 Agent、仓库记忆、开放模型,以及贯穿整个系统的 LangSmith 追踪。

为什么开源很重要

软件工程 Agent 读取代码、编辑代码、审查 PR,并参与工程工作流。团队需要理解并控制这些 Agent 的行为方式。

如果 Agent 是一个封闭系统,那就很难做到这一点。你只能受限于提供商支持的模型、审查行为、集成方式和可观测性。

我们希望 Agent 能够被团队检查、修改并适应他们自己的工作流,包括他们自己的审查标准、仓库惯例、模型选择和内部工具。这就是为什么这些项目都是开源的。

各个组件

dcode

dcode 是我们从终端使用的本地编码 Agent。

Brace - inline image

CLI 和 Agent 运行环境在本地机器上运行,而模型仍然可以托管。这让开发者可以直接在本地仓库上工作,同时使用可能无法在笔记本电脑上运行的大型编码模型。

我们使用 dcode 进行交互式编码工作:探索仓库、进行编辑、从终端执行实现任务。

OpenSWE

OpenSWE 是我们在工作需要在后台进行时使用的云端编码 Agent。

很多工程工作并不从终端开始。Slack 里出现了一个 Bug。Linear 中存在一个功能请求。仓库维护任务需要按计划运行。

OpenSWE 可以从 Slack、Linear、GitHub 或 Web UI 触发。它在云端运行,处理代码,完成后可以打开一个拉取请求。

在内部,这已成为我们使用最频繁的 Agent 工作流之一。就在上周,我们仅从 Slack 就触发了 OpenSWE 近 1,000 次,这还不包括 Linear 或 UI 的使用。

由于 OpenSWE 在云端的沙箱中运行,我们可以并行运行多个编码 Agent,而不会占用任何人的本地环境。

OpenSWE 还包含一个 UI,用于检查 Agent 的工作、与云端编码 Agent 聊天、配置模型和提示词、查看分析数据以及设置定时自动化任务。

Brace - inline image

OpenSWE Review

OpenSWE Review 连接到 GitHub 并自动审查拉取请求。它在代码合并之前识别 Bug 和回归问题。

Brace - inline image

它在外部基准测试中也表现出色。在 离线代码审查基准测试 中,OpenSWE Review 在使用 GPT-5.5 中等推理能力 时得分 47%。这使其位列 总排名第 6,并且在 开源代码审查 Agent 中排名第 1

代码审查具有很强的组织特异性。不同的团队在关注什么问题、如何措辞评论、以及何时希望 Agent 阻止、建议或保持沉默方面存在差异。

OpenSWE Review 为我们提供了一个强大的默认设置,我们可以通过更改提示词、工作流、模型选择和特定于仓库的行为来对其进行调整。

OpenWiki

OpenWiki 使用 Google 的 开放知识格式 生成并维护代码库文档。

文档与代码共存,并通过 GitHub 操作自动保持最新。这为人类和 Agent 提供了一个维护良好的仓库知识层,而无需担心文档的维护工作(OpenWiki 会为你代劳!)。

Brace - inline image

如果一个 Agent 每次运行时都必须重新发现仓库的架构,那就会浪费 tokens 并遗漏重要的约定。OpenWiki 为编码和审查 Agent 提供了一个更好的起点,同时支持自动更新流程,这样你就再也不用操心维护你的 Agent 文档了。

技术栈

Deep Agents

dcode、OpenSWE、OpenSWE Review 和 OpenWiki 都建立在 Deep Agents 之上。

这些工作流各不相同,但它们共享相同的底层 Agent 基础。这为我们提供了一种一致的方式来构建、定制和改进跨本地编码、云端编码、审查和文档的 Agent。当它们都使用相同的框架构建时,共享代码、资源和工程知识变得更加容易。

开放模型

我们已经针对开放模型优化了技术栈。

SWE Agent 在组织中运行时,费用会迅速增加。本地编码、云端编码、代码审查、文档、定时维护和重复的仓库分析都会消耗 tokens。

开放模型让我们对成本(这是主要原因)、延迟和部署选择有了更多控制权。它们还允许团队将不同的任务路由到不同的模型,尝试开放的编码模型,甚至针对自己的仓库和工作流对模型进行微调。

LangSmith

我们使用 LangSmith 追踪这些 Agent。

当一个 Agent 打开一个 PR、留下审查评论或未能完成某项任务时,追踪记录会显示它检查过的文件、加载的上下文、调用的工具以及卡住的位置。

这些追踪帮助我们调试单个运行并逐步改进系统。我们利用它们来识别故障模式、改进提示词、比较模型,并将更高质量的示例输入到通过 LangSmith Engine 进行的持续改进工作流中。

用于编码 Agent 的 Engine 是我们一直在尝试的新工作流。我们让 Engine 对编码 Agent 的运行进行追踪分析,识别不足并提出优化建议。由于 LangChain 每位员工的每一次编码 Agent 运行都会被追踪,Engine 能够从全局视角识别并执行这些优化,而不是逐个针对特定工程师的追踪。

构建你自己的软件工程 Agent 工厂

这个技术栈反映了我们在 LangChain 使用软件工程 Agent 的方式,但这些组件都是开源的,因此其他团队可以进行改编,并完全控制自己的软件工厂。

你可以从小处着手:

  1. 使用 dcode 进行本地编码。
  2. 添加 OpenSWE,从 Slack、Linear、GitHub 或 Web UI 运行编码 Agent。
  3. 启用 OpenSWE Review 进行自动化 PR 审查。
  4. 使用 OpenWiki 为人类和 Agent 维护仓库知识。
  5. 如果你需要跨系统的可观测性和改进循环,将追踪连接到 LangSmith。

目标不是将每个工程工作流都塞进一个 Agent 界面,而是将合适的 Agent 放置在工程工作已经发生的地方,并给予足够的控制权,使它们适应你的仓库、模型和团队惯例。

一键保存

使用 YouMind AI 深度阅读爆款文章

保存原文、追问细节、总结观点,并在一个 AI 工作空间里把爆款文章沉淀成可复用笔记。

了解 YouMind
写给创作者

把你的 Markdown 变成干净的 𝕏 文章

图片上传、表格、代码块,往 𝕏 上手动重排太痛苦。YouMind 把整篇 Markdown 一键转成干净、可直接发布的 𝕏 文章草稿。

试试 Markdown 转 𝕏

更多可拆解样本

近期爆款文章

探索更多爆款文章