swe-agent
swe-agent 是一款基于 LangGraph 构建的 AI 驱动软件工程多智能体系统,旨在通过智能化的规划与执行自动化完成代码实现任务。它主要解决了传统 AI 编程工具在复杂任务中缺乏整体规划、容易出错或难以理解大型代码库结构的问题。
该系统采用独特的双阶段工作流:首先由“架构师智能体”深入研究代码库结构,分析需求并制定包含原子任务的详细实施计划;随后由“开发者智能体”严格按计划执行,精准地进行文件修改或新建,确保每一步变更都安全可靠。这种将“思考规划”与“动手执行”分离的机制,显著提升了代码生成的准确性和可维护性。
技术亮点方面,swe-agent 结合了 tree-sitter 进行高级代码分析,并利用语义搜索深入理解项目上下文,同时通过 Pydantic 模型实现了严格的层级状态管理,保障了多智能体协作时的数据一致性与类型安全。
这款工具特别适合希望提升开发效率的软件工程师、需要处理复杂重构任务的技术团队,以及对 AI 辅助编程工作流感兴趣的研究人员。目前项目处于 Alpha 阶段,非常适合愿意尝试前沿技术并参与共建的早期采用者。
使用场景
某电商初创团队的后端工程师急需在现有的 Python 订单系统中集成“超时自动取消”功能,但面对数万行缺乏文档的遗留代码,他担心手动修改会引发未知的连锁故障。
没有 swe-agent 时
- 理解成本极高:工程师需花费数天人工梳理复杂的调用链和数据库事务逻辑,才能确定修改位置。
- 实施风险巨大:手动编辑核心文件时,极易因遗漏边缘情况导致订单状态不一致或数据丢失。
- 测试覆盖不足:由于害怕破坏现有功能,往往只能进行简单的局部测试,难以验证全局影响。
- 迭代效率低下:从需求分析到最终上线,整个流程耗时漫长,严重拖慢产品迭代节奏。
使用 swe-agent 后
- 智能规划先行:Architect Agent 自动扫描代码库,利用语义搜索快速定位关键模块,并生成包含原子任务的详细实施计划。
- 精准原子执行:Developer Agent 严格按照计划逐步执行,对文件进行细粒度的精确修改,避免了对无关代码的误触。
- 闭环验证保障:系统在每次修改后自动对照原始需求进行逻辑校验,确保新功能与旧逻辑完美兼容。
- 交付速度倍增:将原本需要数天的分析与编码工作压缩至小时级,让工程师能专注于更高阶的架构优化。
swe-agent 通过“先规划后执行”的双代理协作模式,将高风险的遗留系统改造转化为安全、可控且高效的自动化流程。
运行环境要求
- 未说明
未说明
未说明

快速开始
使用 LangGraph 的软件工程代理 - 由 LangTalks 提供
一款基于人工智能的先进软件工程代理,通过智能规划与执行自动化代码实现。采用 LangGraph 构建,确保多代理工作流的可靠性。
⚠️ Alpha 状态:本项目正处于积极开发中。功能可能会发生变化,部分功能仍处于实验阶段。非常适合希望参与塑造 AI 驱动开发未来的早期采用者和贡献者。

🚀 功能特性
- 智能代码规划:AI 架构师分析需求并创建详细的实施方案
- 自动化代码生成:开发者代理根据计划精确地进行文件修改
- 多代理工作流:分离规划与实施阶段,提升可靠性
- 代码库理解:利用 tree-sitter 和语义搜索进行高级代码分析
- 增量式开发:将任务分解为原子级,使更改更安全、更易管理
🏗️ 架构设计
系统采用两阶段的 LangGraph 工作流:
1. 架构师代理 - 研究与规划

架构师代理负责:
- 研究代码库结构与模式
- 分析需求并提出假设
- 生成包含原子任务的详细实施方案
- 利用工具进行代码搜索和语义理解
2. 开发者代理 - 实施

开发者代理负责:
- 按步骤执行实施方案
- 精确地进行原子级别的代码修改
- 创建新文件或修改现有文件
- 根据原始需求验证更改结果
工作流概述
用户请求 → 架构师(研究与规划)→ 开发者(实施)→ 结果
关键组件:
- 状态管理:使用 Pydantic 模型在各代理间实现结构化的数据流转
- 工具集成:文件系统操作、代码搜索及结构分析
- 研究流程:基于假设驱动的代码库探索
- 原子级执行:细粒度任务确保可靠的实施过程
🔄 代理状态管理
系统采用分层的状态管理方法,借助 Pydantic 模型实现类型安全与验证。每个代理维护自己的状态,同时共享公共实体以实现无缝的数据流动。
主代理状态 (AgentState)
顶层协调器状态,用于管理整个工作流:
class AgentState(BaseModel):
implementation_research_scratchpad: Annotated[list[AnyMessage], add_messages]
implementation_plan: Optional[ImplementationPlan] = None
字段:
implementation_research_scratchpad:研究与规划阶段的消息记录implementation_plan:由架构师代理创建的待开发者执行的结构化方案
架构师代理状态 (SoftwareArchitectState)
管理基于假设驱动的研究与规划阶段:
class SoftwareArchitectState(BaseModel):
research_next_step: Optional[str] = None
implementation_plan: Optional[ImplementationPlan] = 0
implementation_research_scratchpad: Annotated[list[AnyMessage], add_messages] = []
is_valid_research_step: Optional[bool] = None
字段:
research_next_step:当前正在探索的假设或研究方向implementation_plan:生成的包含原子任务的结构化方案implementation_research_scratchpad:研究对话历史及工具输出is_valid_research_step:用于验证研究假设质量的标志位
工作流:
- 生成研究假设 → 验证假设 → 进行研究 → 提取实施方案
开发者代理状态 (SoftwareDeveloperState)
负责逐步执行架构师的方案:
class SoftwareDeveloperState(BaseModel):
implementation_plan: Optional[ImplementationPlan] = None
current_task_idx: Optional[int] = 0
current_atomic_task_idx: Optional[int] = 0
diffs: Optional[Diffs] = None
atomic_implementation_research: Annotated[list[AnyMessage], add_messages_with_clear]
codebase_structure: Optional[str] = None
current_file_content: Optional[str] = None
字段:
implementation_plan:从架构师代理接收到的方案current_task_idx:当前正在实施的文件级任务索引current_atomic_task_idx:该任务中的原子级变更索引diffs:用于精确文件修改的代码差异atomic_implementation_research:针对当前实施步骤的研究记录codebase_structure:目标代码库的当前结构快照current_file_content:正在修改的文件内容
工作流:
- 遍历任务列表 → 针对具体实施进行研究 → 生成差异 → 应用更改
共享实体
这些 Pydantic 模型定义了各代理之间的数据契约:
ImplementationPlan
class ImplementationPlan(BaseModel):
tasks: List[ImplementationTask]
顶层方案,包含所有文件级的实施任务。
ImplementationTask
class ImplementationTask(BaseModel):
file_path: str # 待修改的目标文件
logical_task: str # 更改的高层次描述
atomic_tasks: List[AtomicTask] # 细粒度的修改步骤
表示针对特定文件所需的更改。
AtomicTask
class AtomicTask(BaseModel):
atomic_task: str # 具体的代码修改指令
additional_context: str # 此次更改的研究背景
最小的实施单元——单个代码变更。
DiffTask(开发者专用)
class DiffTask(BaseModel):
original_code_snippet: str # 被替换的确切代码片段
task_description: str # 详细的变更说明
用于代码修改的精确差异指令。
状态流转示例
用户请求
↓
AgentState {research_scratchpad: [HumanMessage("添加认证功能")]}
↓
SoftwareArchitectState {
research_next_step: "查找现有的认证模式",
implementation_research_scratchpad: [research_messages...]
}
↓ (研究完成后)
SoftwareArchitectState {
implementation_plan: ImplementationPlan([
ImplementationTask(
file_path: "auth.py",
atomic_tasks: [AtomicTask("添加User模型")]
)
])
}
↓
SoftwareDeveloperState {
implementation_plan: <接收到的计划>,
current_task_idx: 0,
current_atomic_task_idx: 0,
current_file_content: "# auth.py 的内容"
}
↓ (实现完成后)
最终结果:修改后的代码库
状态管理的优势
- 类型安全:通过 Pydantic 验证防止状态被破坏
- 可追溯性:完整的消息历史便于调试
- 可恢复性:状态可以持久化并恢复
- 模块化:每个代理管理自己的职责范围
- 原子性:细粒度的任务分解实现精确控制
📋 前置条件
- Python 3.12+
- uv(Python 包管理器)
- Anthropic API 密钥(Claude Sonnet 4)
⚡ 快速入门
- 克隆仓库
git clone https://github.com/langtalks/swe-agent-langgraph.git
cd swe-agent-langgraph
- 设置环境
# 使用 uv 安装依赖
uv sync
# 创建环境文件
cp .env.example .env.local
# 在 .env 中添加你的 Anthropic API 密钥和 langsmith 信息
- 克隆一个仓库到 ./workspace_repo
git clone https://github.com/browser-use/browser-use ./workspace_repo
- 运行代理
# 激活环境
source .venv/bin/activate
# 启动 LangGraph 服务器
langgraph dev
- 示例用法
输入:

使 browser-use 代理能够接受多模态指令,支持图像输入(如 step1.png、step2.png)与文本一起使用。这将提高代理对模糊或不明确文本命令的理解和执行能力。
输出:(浏览工作区仓库的 git)

🛠️ 开发
项目结构
agent/
├── architect/ # 规划与研究代理
│ ├── graph.py # 主架构师工作流
│ ├── state.py # 状态定义
│ └── prompts/ # 提示模板
├── developer/ # 实现代理
│ ├── graph.py # 主开发者工作流
│ ├── state.py # 状态定义
│ └── prompts/ # 提示模板
├── common/ # 共享实体和状态
│ └── entities.py # Pydantic 模型
└── tools/ # 文件操作和搜索工具
├── search.py # 代码搜索工具
├── codemap.py # 代码分析工具
└── write.py # 文件操作工具
workspace_repo/ # 目标代码库
scripts/ # 工具脚本
helpers/ # 提示模板和实用工具
static/ # 文档图片
核心组件
实体与状态管理:
ImplementationPlan:结构化的任务分解AtomicTask:单个代码修改单元ImplementationTask:文件级别的实现步骤
代理工作流:
- 基于研究的规划,并验证假设
- 使用工具辅助进行代码探索和分析
- 逐步实施并进行验证
运行测试
# 运行所有测试
uv run pytest
# 带覆盖率运行
uv run pytest --cov=agent
# 运行特定测试模块
uv run pytest tests/test_architect.py
📁 主目录文件
| 文件 | 描述 |
|---|---|
README.md |
项目文档(本文档) |
pyproject.toml |
Python 项目配置及依赖 |
langgraph.json |
LangGraph 应用程序配置及图定义 |
langgraph_debug.py |
用于开发和测试的调试配置 |
uv.lock |
锁定的依赖版本,确保构建可重复性 |
.env |
环境变量(根据 .env.example 创建) |
.env.example |
环境配置模板 |
.gitignore |
Git 忽略规则,用于 Python 和 IDE 文件 |
.python-version |
pyenv 的 Python 版本规范 |
🎯 使用场景
- 功能开发:根据高层次需求实现新功能
- Bug 修复:分析并修复问题,自动完成代码更改
- 代码重构:在保持功能不变的情况下重组代码
- 文档编写:生成和更新代码文档
- 测试:创建测试用例并修复失败的测试
🗺️ 路线图 - LangTalks 社区项目!
我们正在共同构建 AI 驱动软件开发的未来!以下是接下来的主要功能,期待社区贡献:
🔄 核心代理增强
- 多步研究与开发循环:通过反馈循环迭代优化实施计划
- 测试代理:专门用于单元测试、功能测试和测试用例生成的代理
- 错误修复代理:专门用于检测、分析和修复代码错误的代理
- 产品经理代理:负责高层次规划和需求分析的代理
🔧 开发工具与质量
- 添加 linter 工具:将代码质量工具(ESLint、Black、Pylint)集成到工作流中
- 组件评估基准测试:性能指标和质量评估框架
- 代码语义索引:高级代码理解和相似度检测
🌐 集成与连接
- GitHub MCP 集成:直接与 GitHub 仓库和工作流集成
- Context7 MCP 集成:增强上下文管理和代码理解能力
- 多语言支持:从 Python 扩展到 JavaScript、TypeScript、Java、Go 等
📈 高级功能(未来)
- 交互式规划 UI:用于查看和修改计划的 Web 界面
- 协作工作流:多开发者协调与冲突解决
- 性能优化:加快研究和实施周期
- 插件系统:可扩展的工具和代理架构
想参与贡献吗? 选择上述任意功能加入我们的 LangTalks 社区吧!每个功能都适合个人贡献者或小型团队完成。
🤝 贡献方式
我们欢迎任何形式的贡献!该项目旨在推动 AI 驱动软件开发的边界。我们需要帮助的领域包括:
优先领域
- 代理改进:更好的推理和规划策略
- 工具开发:新的代码分析和修改工具
- 测试:全面的测试覆盖和验证框架
- 文档:示例、教程和使用案例
- 性能:优化和基准测试
如何贡献
- Fork 仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 按照现有代码风格进行修改
- 为新功能添加测试
- 确保测试通过(
uv run pytest) - 如有需要,更新文档
- 提交更改(
git commit -m '添加超赞功能') - 推送到分支(
git push origin feature/amazing-feature) - 打开带有清晰描述的 Pull Request
开发环境搭建
# 克隆你的 Fork
git clone https://github.com/langtalks/swe-agent-langgraph.git
cd swe-agent-langgraph
# 设置开发环境
uv sync --dev
# 安装 pre-commit 钩子(可选但推荐)
pre-commit install
# 运行测试以确保一切正常
uv run pytest
📊 技术细节
依赖项
- LangGraph: 多智能体工作流编排
- LangChain: AI 集成与工具管理
- Anthropic: Claude Sonnet 4 提供智能推理能力
- Tree-sitter: 强大的代码解析与分析工具
- Pydantic: 类型安全的数据验证与序列化
性能考量
- 原子化任务执行以保证可靠性
- 使用 tree-sitter 进行高效代码分析
- 结构化状态管理以提升可扩展性
- 基于工具的架构设计以增强可扩展性
🔧 配置
关键配置文件:
langgraph.json: 定义智能体图及依赖关系.env: API 密钥及其他环境变量pyproject.toml: Python 依赖与项目元数据
📄 许可证
本项目采用 MIT 许可证授权——详情请参阅 LICENSE 文件。
🙏 致谢
- 基于 LangGraph 构建,提供可靠的任务流支持
- 由 Anthropic Claude 提供智能推理能力
- 使用 tree-sitter 实现稳健的代码解析
- 更多信息请参阅我们的 deepwiki
📞 支持与社区
- LangTalks 主页: 访问 www.langtalks.ai 获取社区资源与支持
- 问题: 通过 GitHub Issues 报告 bug 或请求功能
- 讨论: 加入 GitHub Discussions 参与交流
- 文档: 完整文档见本 README
准备好用 AI 彻底革新软件开发了吗?欢迎加入 LangTalks,共同构建自动化编码的未来! ⚡🤖
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
Deep-Live-Cam
Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。