swe-agent

GitHub
623 123 简单 1 次阅读 5天前MIT语言模型Agent
AI 解读 由 AI 自动生成,仅供参考

swe-agent 是一款基于 LangGraph 构建的 AI 驱动软件工程多智能体系统,旨在通过智能化的规划与执行自动化完成代码实现任务。它主要解决了传统 AI 编程工具在复杂任务中缺乏整体规划、容易出错或难以理解大型代码库结构的问题。

该系统采用独特的双阶段工作流:首先由“架构师智能体”深入研究代码库结构,分析需求并制定包含原子任务的详细实施计划;随后由“开发者智能体”严格按计划执行,精准地进行文件修改或新建,确保每一步变更都安全可靠。这种将“思考规划”与“动手执行”分离的机制,显著提升了代码生成的准确性和可维护性。

技术亮点方面,swe-agent 结合了 tree-sitter 进行高级代码分析,并利用语义搜索深入理解项目上下文,同时通过 Pydantic 模型实现了严格的层级状态管理,保障了多智能体协作时的数据一致性与类型安全。

这款工具特别适合希望提升开发效率的软件工程师、需要处理复杂重构任务的技术团队,以及对 AI 辅助编程工作流感兴趣的研究人员。目前项目处于 Alpha 阶段,非常适合愿意尝试前沿技术并参与共建的早期采用者。

使用场景

某电商初创团队的后端工程师急需在现有的 Python 订单系统中集成“超时自动取消”功能,但面对数万行缺乏文档的遗留代码,他担心手动修改会引发未知的连锁故障。

没有 swe-agent 时

  • 理解成本极高:工程师需花费数天人工梳理复杂的调用链和数据库事务逻辑,才能确定修改位置。
  • 实施风险巨大:手动编辑核心文件时,极易因遗漏边缘情况导致订单状态不一致或数据丢失。
  • 测试覆盖不足:由于害怕破坏现有功能,往往只能进行简单的局部测试,难以验证全局影响。
  • 迭代效率低下:从需求分析到最终上线,整个流程耗时漫长,严重拖慢产品迭代节奏。

使用 swe-agent 后

  • 智能规划先行:Architect Agent 自动扫描代码库,利用语义搜索快速定位关键模块,并生成包含原子任务的详细实施计划。
  • 精准原子执行:Developer Agent 严格按照计划逐步执行,对文件进行细粒度的精确修改,避免了对无关代码的误触。
  • 闭环验证保障:系统在每次修改后自动对照原始需求进行逻辑校验,确保新功能与旧逻辑完美兼容。
  • 交付速度倍增:将原本需要数天的分析与编码工作压缩至小时级,让工程师能专注于更高阶的架构优化。

swe-agent 通过“先规划后执行”的双代理协作模式,将高风险的遗留系统改造转化为安全、可控且高效的自动化流程。

运行环境要求

操作系统
  • 未说明
GPU

未说明

内存

未说明

依赖
notes需要使用 uv 作为 Python 包管理器;必须配置 Anthropic API Key(使用 Claude Sonnet 4 模型);可选配置 LangSmith 用于追踪;运行前需克隆一个目标代码库到 ./workspace_repo 目录。
python3.12+
uv
langgraph
pydantic
tree-sitter
pytest
swe-agent hero image

快速开始

使用 LangGraph 的软件工程代理 - 由 LangTalks 提供

封面

Alpha Python License

一款基于人工智能的先进软件工程代理,通过智能规划与执行自动化代码实现。采用 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:用于验证研究假设质量的标志位

工作流:

  1. 生成研究假设 → 验证假设 → 进行研究 → 提取实施方案

开发者代理状态 (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:正在修改的文件内容

工作流:

  1. 遍历任务列表 → 针对具体实施进行研究 → 生成差异 → 应用更改

共享实体

这些 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)

⚡ 快速入门

  1. 克隆仓库
git clone https://github.com/langtalks/swe-agent-langgraph.git
cd swe-agent-langgraph
  1. 设置环境
# 使用 uv 安装依赖
uv sync

# 创建环境文件
cp .env.example .env.local
# 在 .env 中添加你的 Anthropic API 密钥和 langsmith 信息
  1. 克隆一个仓库到 ./workspace_repo
git clone https://github.com/browser-use/browser-use ./workspace_repo
  1. 运行代理
# 激活环境
source .venv/bin/activate

# 启动 LangGraph 服务器
langgraph dev
  1. 示例用法 输入: Input

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

输出:(浏览工作区仓库的 git) Output

🛠️ 开发

项目结构

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 驱动软件开发的边界。我们需要帮助的领域包括:

优先领域

  • 代理改进:更好的推理和规划策略
  • 工具开发:新的代码分析和修改工具
  • 测试:全面的测试覆盖和验证框架
  • 文档:示例、教程和使用案例
  • 性能:优化和基准测试

如何贡献

  1. Fork 仓库
  2. 创建功能分支git checkout -b feature/amazing-feature
  3. 按照现有代码风格进行修改
  4. 为新功能添加测试
  5. 确保测试通过uv run pytest
  6. 如有需要,更新文档
  7. 提交更改git commit -m '添加超赞功能'
  8. 推送到分支git push origin feature/amazing-feature
  9. 打开带有清晰描述的 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 文件。

🙏 致谢

📞 支持与社区


准备好用 AI 彻底革新软件开发了吗?欢迎加入 LangTalks,共同构建自动化编码的未来! ⚡🤖

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|今天
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|昨天
开发框架图像Agent

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 真正成长为懂上

141.5k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.9k|★★☆☆☆|今天
开发框架图像Agent

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|今天
语言模型图像Agent

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|今天
开发框架图像Agent