swe-agent
LangGraph驱动的AI多智能体软件工程师,Architect+Developer双Agent协
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
LangGraph驱动的AI多智能体软件工程师,Architect+Developer双Agent协
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
背景:2024 年底,OpenAI 推出 SWE-agent 项目证明了 AI 可以像软件工程师一样自主完成代码任务。langtalks/swe-agent 则在此基础上引入 LangGraph 工作流框架,让 AI 软件工程师的推理过程更加可视化、可控化。
langtalks/swe-agent 是一个基于 LangGraph 的多智能体软件工程自动化框架,由两个核心 Agent 组成:**Architect Agent(架构师)**负责理解需求、研究代码库、制定实施计划;**Developer Agent(开发者)**负责按计划执行代码修改。两个 Agent 通过状态图(StateGraph)串联,形成「规划→执行」的闭环工作流。
该项目由 langtalks 团队开发,采用 MIT 许可证,Python 3.12+ 要求,当前为 Alpha 阶段。

图1:SWE-Agent 整体架构 —— Architect Agent 与 Developer Agent 协同工作流
整个系统围绕 LangGraph 的 StateGraph 构建,主图包含三个节点:
Architect Agent 内部采用递归研究循环:
研究假设生成 → 研究有效性评估 → 条件路由
当评估结果为「研究有效」时,继续深入研究;评估为「研究无效」时,跳转到实施计划生成阶段。这种自我反思机制避免了无意义的重复搜索,显著提升了研究效率。
Developer Agent 采用 diff-match-patch 算法进行精确的代码修改:
解析实施计划 → 提取 Diff 任务 → 原子化执行 → 验证反馈
每个修改任务(DiffTask)包含 original_code_snippet(原始代码片段)和 task_description(修改描述),Developer Agent 依据这两项信息精确执行替换,而非依赖模糊的自然语言指令。这种设计大幅提升了代码修改的准确率和可复现性。
SWE-Agent 内置了三大类工具,均通过 LangChain @tool 装饰器注册为可调用工具:
| 工具 | 功能 | 技术实现 |
|---|---|---|
get_code_definitions | 提取函数/类定义及签名 | Tree-sitter 语义解析 |
search_in_file / search_directory | 全文关键词搜索 | 正则表达式 |
create_file / write_to_file | 文件创建与覆写 | 标准文件 I/O |
get_files_structure | 目录结构分析 | gitingest 库 |
特别值得注意 get_code_definitions 的实现:使用 Tree-sitter 对源码进行 AST 级别的语义解析,可以识别 Python/JavaScript/TypeScript 的函数定义、类定义、方法签名,并返回精确的行号。这比简单的 grep 搜索强大得多,能够理解代码结构而非仅匹配文本。 |
| 组件 | 技术选型 | 版本 |
|---|---|---|
| LLM 驱动 | Claude API (Anthropic) | claude-sonnet-4-20250514 |
| 多智能体框架 | LangGraph | >=0.2.69 |
| LLM 应用框架 | LangChain | langchain-anthropic >=0.3.5 |
| 状态管理 | Pydantic | BaseModel |
| 代码解析 | tree-sitter | >=1.10.2 |
| 差异计算 | diff-match-patch | >=20241021 |
| 模糊匹配 | thefuzz / fuzzysearch | >=0.22.1 |
| 包管理 | uv | - |
纯 Python 实现,依赖管理通过 pyproject.toml + uv 完成,锁定了 uv.lock,确保环境可复现。 |
git clone https://github.com/langtalks/swe-agent.git
cd swe-agent
uv sync --dev
cp .env.example .env
# 编辑 .env 填入 ANTHROPIC_API_KEY
source .venv/bin/activate
uv run pytest # 验证安装
uv run langgraph dev # 启动开发服务器
运行后,LangGraph CLI 会启动一个本地开发服务器,可通过浏览器访问可视化工作流图,观察 Architect 和 Developer Agent 的执行状态。
仓库内置了 langgraph_debug.py,支持独立运行 swe_architect 和 swe_developer 进行单独调试。这是 Alpha 阶段开发的重要工具,方便贡献者针对单一 Agent 进行单元测试和 Prompt 优化。
langtalks/swe-agent 代表了 AI 软件工程的一个新方向:将多智能体协作引入代码自动化。在此之前,大多数 AI 编程工具(如 GitHub Copilot)都是单一 Agent 模式——用户提问,AI 回答。SWE-Agent 则让多个 AI Agent 扮演不同角色,形成分工协作的智能体网络。 这种架构的灵感来自真实软件工程团队:架构师负责思考,开发者负责实现。LangGraph 的状态图机制使得这种分工不仅体现在 Prompt 设计层面,更落实到了代码层面的状态管理和路由控制。这为未来更复杂的 AI 工程团队奠定了基础。