发现 AI 代理的未来

JoyCode Agent

收录于 2026年2月22日
智能体与应用工具
开源
Python工作流自动化大语言模型多智能体系统AI代理智能体框架智能体与应用工具模型与推理框架开发者工具/代码自动化/工作流/RPA

京东开源的基于大语言模型(LLM)的端到端仓库级代码修复流水线,针对SWE-bench基准实现智能Patch生成与测试协同验证,在SWE-bench Verified数据集上达到74.6%解决率,资源消耗相比顶级竞争对手降低30-50%。

JoyCode Agent#

项目概述#

JoyCode Agent(全称 JoyCode SWE-bench Agent Pipeline)是由京东开源社区(JD OpenSource)推出的自动化代码修复系统。其核心目标是将软件缺陷修复流程自动化——从理解 Issue 描述、定位代码问题、生成修复补丁,到创建验证测试用例并执行闭环验证,形成完整的"问题→修复→验证"自动化链路。

核心能力#

高性能与成本效益#

  • 在 SWE-bench Verified 数据集上达到 74.6% 解决率(373/500)
  • 相比顶级竞争对手资源消耗降低 30-50%

Patch-Test 协同生成#

  • 智能测试生成:自动创建 Fail2Pass 和 Pass2Pass 测试,含预验证
  • 协作验证:Patch与测试协同生成,实现全面验证
  • 闭环迭代:"Generate → Validate → Refine" 循环,替代单次生成模式

智能失败归因#

  • 根因分析:精确区分 Patch 问题 vs 测试问题
  • 针对性重试:基于失败分析的经验驱动重试策略
  • CSR 驱动学习:历史成功模式检索优化

多智能体架构#

  • 专用代理:Testing Agent、Patch Agent、CSR Agent、Decision Agent
  • 基于 React 的 "Observe-Think-Act" 循环
  • LLM 驱动的 Patch 投票选择机制

工程化特性#

  • 容器化执行:基于 SWE-bench Docker 镜像的隔离环境
  • 仓库级理解:多文件协调与跨模块推理
  • 完整日志记录:全轨迹记录,可选压缩
  • 多 LLM 支持:支持不同流水线阶段的灵活模型配置

功能特性#

代码修复能力#

能力项描述技术特点
仓库级 Patch 生成理解 Issue 描述并生成多文件协调的修复补丁支持跨模块推理、多文件编辑
智能定位自动识别需要修改的代码位置LLM 驱动的代码理解
Patch 投票系统多候选 Patch 竞争选择最优解LLM 评估 + 代码质量指标
上下文感知理解代码库结构、依赖关系、编码风格仓库级语义建模

测试生成能力#

能力项描述输出类型
Fail2Pass 测试在原始代码上失败、修复后通过的验证测试回归测试用例
Pass2Pass 测试修复前后都应通过的功能保持测试行为一致性验证
测试预验证生成的测试用例经过有效性检查确保测试可执行且有意义
协作验证Patch 与测试协同生成,互相验证双向质量保障

智能体系统#

Agent 角色职责工作模式
Testing Agent测试用例生成与验证ReAct 循环:Observe-Think-Act
Patch Agent代码补丁生成与优化LLM 驱动 + 代码分析
CSR AgentCase-Specific Retrieval,历史成功模式检索经验驱动学习
Decision Agent失败归因与策略决策根因分析 + 智能重试

架构设计#

流水线阶段#

  1. 容器设置:拉取并启动 SWE-bench Docker 镜像
  2. 测试生成(可选):在原始代码上创建并验证测试
  3. Agent 执行:通过 cli.py 使用 LLM Agent 生成 Patch
  4. 验证:运行测试并评估 Patch 质量
  5. 后处理(可选):轨迹压缩、相似性匹配、智能重试

仓库结构#

joycode/
├── run_patch_pipeline.py           # 主入口
├── cli.py                         # 核心 Agent CLI
├── test_case_generator/           # 测试生成逻辑
├── test/                          # 测试执行与验证
├── utils/docker_utils.py          # 容器管理
├── llm_server/                    # LLM 集成层
├── princeton-nlp___swe-bench_verified/ # 本地 SWE-bench 数据集
└── vote.py                        # Patch 投票系统

输出结构#

output_files/
├── <instance_id>/
│   ├── predictions.json              # 生成的 Patch 与元数据
│   ├── agent_logs.txt               # 主要 Agent 执行日志
│   ├── test_generation_result.json  # 测试生成结果
│   └── compressed_trajectory.txt    # 压缩执行轨迹
├── successful_cases.txt             # 成功实例汇总
├── failed_cases.txt                 # 失败实例汇总
└── similar_case_matches_summary.json # 相似案例分析

安装与快速开始#

系统要求#

  • Python 3.11+
  • Docker(需可访问 docker.1ms.run
  • LLM API 密钥(OpenAI、Anthropic 等)

安装步骤#

git clone https://github.com/jd-opensource/joycode-agent.git
cd joycode
conda create -n joycode python=3.11
conda activate joycode
pip install -r requirements.txt

快速启动#

# 使用默认配置运行
python run_patch_pipeline.py --num-processes 1 --enable-post-processing

# 单实例处理
python run_patch_pipeline.py --problem-id django__django-11099 --num-processes 1

# 批量处理
python run_patch_pipeline.py --num-examples 10 --num-processes 4

性能表现#

在 SWE-bench Verified 数据集上的表现:

仓库解决率
pytest-dev/pytest17/19 (89.47%)
scikit-learn/scikit-learn28/32 (87.5%)
pydata/xarray19/22 (86.36%)
django/django178/231 (77.06%)
sympy/sympy57/75 (76.0%)
sphinx-doc/sphinx29/44 (65.91%)
matplotlib/matplotlib25/34 (73.53%)
astropy/astropy13/22 (59.09%)
总计373/500 (74.6%)

应用场景#

  • 自动修复开源项目 Issue
  • 生成验证测试用例
  • 仓库级代码补丁生成与验证
  • 代码修复自动化流水线构建
  • 企业内部 Bug 修复流水线集成到 CI/CD
  • AI 编程研究与 SWE-bench 基线对比

保持更新

获取最新的 AI 工具和趋势,直接发送到您的收件箱。没有垃圾邮件,只有智能。