open-swe
开源的 AI 编程 Agent 框架,基于 LangGraph 在隔离云沙箱中自动完成代码编写、PR
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
开源的 AI 编程 Agent 框架,基于 LangGraph 在隔离云沙箱中自动完成代码编写、PR
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Stripe、Ramp、Coinbase——这三家顶级工程公司的共同点不只是技术实力,还有一套内部编程 Agent 系统:Slack 机器人或 CLI 工具,接入内部代码库和工具链,让工程师用自然语言驱动代码任务。它们背后的架构惊人相似:隔离云沙箱、精选工具集、中间件编排、Slack/Linear 作为主交互入口。
问题在于:这套能力过去只属于顶级团队。LangChain 团队将自己在实际客户中验证过的这套架构开源为 Open SWE,让任何组织都能基于它构建自己的内部编程 Agent。
如果把传统 IDE 插件比作"给厨师一把更好的刀",那 Open SWE 就是"给厨师配备一套智能厨房系统"——它不只帮你做一道菜,而是接管整个后厨的流程:从接单(接收任务)→ 备料(克隆代码库)→ 烹饪(编写代码)→ 摆盘(创建 PR)→ 送客(通知结果)。
Open SWE 的架构设计体现了互联网头部公司的共识:
| 层次 | Stripe | Ramp | Coinbase | Open SWE |
|---|---|---|---|---|
| Agent Harness | Fork Goose | Compose OpenCode | 从零构建 | Compose Deep Agents |
| 隔离环境 | AWS EC2 | Modal | 自研 | Modal/Daytona/Runloop |
| 工具策略 | ~500个精选 | OpenCode SDK | MCP+自定义 | ~15个精选 |
| 上下文 | 规则文件+预填充 | OpenCode内置 | Linear优先 | AGENTS.md+Issue上下文 |
| 编排 | Blueprints | 主从会话 | 三模式 | Subagent+Middleware |
| 入口 | Slack+按钮 | Slack+Web | Slack原生 | Slack/Linear/GitHub |
Open SWE 不从头构建 Agent,而是在 Deep Agents 框架上组合而成,类似 Ramp 基于 OpenCode 构建的思路。这样做的好处是:既能获取上游更新,又能自定义编排层、工具和中间件。
create_deep_agent(
model="openai:gpt-5.5",
system_prompt=construct_system_prompt(...),
tools=[http_request, fetch_url, linear_comment, slack_thread_reply],
backend=sandbox_backend,
middleware=[ToolErrorMiddleware(), check_message_queue_before_model, ...],
)
每个任务运行在独立云沙箱中——克隆代码库后,Agent 拥有完整权限但不影响生产环境。这是 Stripe/Ramp/Coinbase 三家公司共同采用的核心安全原则:先隔离,再放权。
内置支持 Modal、Daytona、Runloop、LangSmith 四种沙箱,并留有自定义接口。
Stripe 的关键洞察:工具质量比数量更重要。Open SWE 只内置约 15 个精选工具:
execute:沙箱内执行 shell 命令fetch_url:将网页内容转为 Markdownhttp_request:API 调用(GET/POST 等)linear_comment/slack_thread_reply:在 Linear 和 Slack 中回复read_file、write_file、grep、task(子 Agent)等AGENTS.md 是 Open SWE 的"团队规范文件"——放在代码库根目录后,Agent 自动读取并注入到系统提示词中。相当于 Stripe 的规则文件:编码规范、测试要求、架构决策。
Linear Issue 或 Slack 线程的完整上下文(标题、描述、评论)也会在任务启动时预填充,Agent 无需通过工具调用逐步探索。
中间件是 Open SWE 编排层的精髓——在 Agent 循环的关键节点插入确定性逻辑:
check_message_queue_before_model:运行时注入新消息,Agent 工作期间也能"插队"输入ToolErrorMiddleware:捕获工具错误并优雅处理notify_step_limit_reached:达到调用限制后主动通知三种触发方式覆盖工程团队的全场景:
repo:owner/name,Agent 在线程内回复状态和 PR 链接除了主任务 Agent,项目还包含一个独立的审查图(reviewer graph):对 PR 做只读代码审查,以及一个 review-style analyzer:从历史 PR 中学习团队审查风格并应用到新 PR。
项目包含一个完整的 React + Vite + Bun Web UI,提供:
UI 可独立部署,通过 FastAPI 后端(agent/server.py)与核心 Agent 通信。
| 层级 | 技术选型 |
|---|---|
| 核心 Agent | Deep Agents + LangGraph SDK |
| 后端 | Python 3.11+ / FastAPI / Uvicorn |
| 编排 | LangGraph(状态机驱动的 Agent 循环) |
| 包管理 | uv(Astral 系高性能工具) |
| 前端 UI | React 18 + TypeScript + Vite + Bun |
| LLM 调用 | OpenAI / Anthropic / Google GenAI(多后端支持) |
| 搜索增强 | Exa(网页搜索) |
| 监控追踪 | LangSmith |
| 代码质量 | Ruff(lint)+ pytest(测试) |
适合的场景:
需要注意的门槛:
Open SWE 的价值不只是"又一个 AI 编程工具",而是在于它将头部公司的内部实践提炼为可复用的开源框架。它证明了编程 Agent 的工程化路径是:隔离沙箱 + 精选工具 + 中间件编排 + 现有工具链集成。
从数据看,LangChain 团队将其闭源验证方案开源本身就是一个信号:行业正在从"实验性 AI 编程"走向"企业级 AI 工程基础设施"。