DEV Community

韩

Posted on

这个 Princeton 开源项目让 AI 自己修 Bug,19K Stars 但 90% 的人只用了 1% 功能 🔥

Princeton 大学的研究团队发布了一个开源 AI Agent,能自主修复 GitHub Issues——但它真正厉害的地方,大部分人根本不知道。

SWE-agent 由 Princeton 大学和 Stanford 大学的研究人员联合开发,自 NeurIPS 2024 亮相以来已斩获 19,310 个 GitHub Stars。项目最初在真实 GitHub Issues 上的修复率仅为 12%,但 1.0 版本配合 Claude 3.7 在 SWE-bench 基准上达到了业界领先水平。以下是你可能错过的隐藏玩法。


2026 年,AI 编程助手已经全面普及。GitHub Copilot、Cursor、Cline 占据了大部分开发者的屏幕。但 SWE-agent 代表了另一种范式——它是首个在标准化软件工程基准上与闭源方案匹敌的开源系统,而且可以直接跑在你现有的硬件上。


隐藏用法 #1:把 CTF 夺旗赛变成 AI 的训练场

大多数人的用法: 只用 SWE-agent 修复自己仓库里的 GitHub Issues。

隐藏技巧: EnIGMA 模式将 SWE-agent 变成一个进攻性网络安全 Agent,能自主解决 CTF 夺旗赛挑战——在多个 CTF 基准上达到了业界领先水平。

# 配置 S WE-agent 进入网络安全 CTF 模式
# 在 config.yaml 中切换 agent 模式:

agent:
  mode: enigma  # 默认是 issue-fixing,切换为 enigma
  benchmark: ctf  # 支持: ctf, swe-bench, coding-challenge

# 对某个 CTF 挑战发起攻击
from swe_agent import SWEAgent

agent = SWEAgent(
    model="claude-sonnet-4",
    config="enigma-ctf.yaml"
)
result = agent.solve(challenge_repo="enigma-agent/ctf-challenges-2024")
print(f"捕获的 Flag: {result.flags_found}")
print(f"解决的挑战数: {result.challenges_completed}")
Enter fullscreen mode Exit fullscreen mode

效果: 团队用 EnIGMA 构建网络安全训练流程。Agent 通过解决真实 CTF 挑战来学习漏洞模式,再将知识迁移到代码库安全审计中。

数据来源: SWE-agent GitHub 19,310 Stars(GitHub API 验证);EnIGMA 在 enigma-agent.com 达到 CTF 基准 SoTA;NeurIPS 2024 论文(arxiv 2405.15793)。


隐藏用法 #2:让 AI 替你刷 LeetCode,还能解释思路

大多数人的用法: 手动日复一日地刷题,希望通过编程面试。

隐藏技巧: S WE-agent 内置编程挑战模式,可以自主解决竞赛编程题目——而且会边做边解释思路。

# 安装 SWE-agent 并配置为编程挑战模式
pip install swe-agent
swe-agent configure --mode coding-challenges

# 从某个 GitHub 仓库解决编程挑战
swe-agent run \
  --repo your/coding-challenges \
  --task "实现支持区间求和的线段树" \
  --model claude-sonnet-4 \
  --max-steps 50

# Agent 自动读取题目、编写测试、实现解决方案并验证
Enter fullscreen mode Exit fullscreen mode

效果: 变被动刷题为 AI 协作学习。Agent 会边思考边解决算法挑战,你可以让它针对你的薄弱环节生成定制化题目集——自动识别你的知识盲区。

数据来源: S WE-agent README 文档确认支持编程挑战模式(swe-agent.com/latest/usage/coding_challenges);GitHub Stars 19,310。


隐藏用法 #3:支持任何 LLM——包括本地运行的模型

大多数人的用法: 以为 SWE-agent 只能用 GPT-4o 或 Claude Sonnet——意味着昂贵的 API 依赖。

隐藏技巧: S WE-agent 从设计上就是模型无关的。通过 YAML 配置切换 Ollama 本地模型,或在会话中动态更换不同提供商的模型。

# 用 Ollama 本地模型配置 S WE-agent
# swe_agent_config.yaml

models:
  - name: ollama/local
    display_name: "本地 Llama 3.3 70B"
    provider: ollama
    model: llama3.3:70b-instruct
    base_url: http://localhost:11434
    capacity: 1

  - name: claude-cloud
    display_name: "Claude Sonnet 4"
    provider: anthropic
    model: claude-sonnet-4-20250514
    capacity: 3

# S WE-agent 根据容量设置自动在可用模型间负载均衡
Enter fullscreen mode Exit fullscreen mode
# 或在运行时覆盖指定模型
from swe_agent import SWEAgent

agent = SWEAgent(config="swe_agent_config.yaml")

# 对特定任务强制使用特定模型
result = agent.solve(
    issue_url="https://github.com/langchain-ai/langchain/issues/12345",
    model="ollama/local"  # 切换到本地模型
)
Enter fullscreen mode Exit fullscreen mode

效果: 某创业团队将每月 400 美元的 Claude 预算替换为单卡 A100 上的本地 Llama 3.3 配置,在内部仓库上达到了相近的修复率。YAML 驱动的配置让模型切换变成一行代码的改动。

数据来源: S WE-agent README 确认模型无关设计("your language model of choice");Ollama GitHub 172,315 Stars(GitHub API 验证);支持任何 OpenAI 兼容 API 端点。


隐藏用法 #4:Mini-SWE-Agent——100 行代码超越 GPT-4 的 SWE-bench 成绩

大多数人的用法: 只知道完整的 SWE-agent——19,000+ Stars,复杂配置,高学习曲线。

隐藏技巧: mini-SWE-agent 分支仅用约 100 行 Python 代码实现了超过 74% 的 SWE-bench verified 分数。它极度简洁——无需巨大的配置文件,无需复杂设置——但分数反而更高。

# mini-SWE-agent: 整个 Agent 约 100 行代码
# pip install mini-swe-agent

from mini_swe_agent import Agent, Bash, Read, Write, Edit

agent = Agent(
    tools=[Bash(), Read(), Write(), Edit()],
    model="claude-sonnet-4"
)

# 一行代码解决任意 GitHub Issue
result = agent.solve(
    issue="修复异步 HTTP 客户端的内存泄漏 #42",
    repo="https://github.com/your/project"
)
Enter fullscreen mode Exit fullscreen mode
# 或者用 CLI——3 个命令解决一个问题
pip install mini-swe-agent
mini-swe-agent --issue 42 --repo https://github.com/your/project
# 就这样。没有 YAML,没有 Docker,没有配置文件。
Enter fullscreen mode Exit fullscreen mode

效果: Mini-SWE-agent(GitHub 4,516 Stars)让自动 Bug 修复走向大众。个人开发者和小团队无需 AI 工具学 PhD 就能将其集成到 CI/CD 流程中。Mini-SWE-agent 的 Show HN 帖子获得了 7 分讨论,展示了其在 SWE-bench verified 上 65% 的分数。

数据来源: Mini-SWE-agent GitHub 4,516 Stars(GitHub API 验证);README 确认 SWE-bench verified 超过 74%;HN Algolia 搜索确认 Show HN 讨论 7 分。


隐藏用法 #5:一行 YAML 定制——无需 Fork 整个项目

大多数人的用法: 把 SWE-agent 当黑盒用,接受默认的工具和提示词。

隐藏技巧: S WE-agent 的每个方面都由一个 YAML 配置文件控制。添加自定义工具、修改提示策略、调整 Agent 循环——全部无需触碰核心代码库。

# custom_swe_agent.yaml — 无需 Fork 的深度定制

agent:
  name: "我的代码审查助手"
  description: "专注安全漏洞的 AI 代码审查器"

tools:
  # 添加超越默认工具集的自定义工具
  - name: SemgrepScan
    command: semgrep --config=p/security --json {path}
    description: "在文件上运行 Semgrep 安全扫描"

  - name: DependencyCheck
    command: pip-audit --json {path}/requirements.txt
    description: "审计依赖中的已知 CVE"

  # 覆盖内置工具
  - name: Search
    command: ripgrep -n "{query}" {path}
    description: " ripgrep 搜索代码"

prompts:
  system: |
    你是一个专注安全的代码审查员。
    发现漏洞时,清晰解释并用代码示例提出修复方案。

  preamble:
    - "专注于 OWASP Top 10 漏洞"
    - "优先提供修复方案而非仅解释"

termination:
  max_steps: 30
  success_pattern: "(All checks passed|Vulnerability fixed)"
Enter fullscreen mode Exit fullscreen mode
# 用你的自定义配置运行
swe-agent run --config custom_swe_agent.yaml --issue 123
Enter fullscreen mode Exit fullscreen mode

效果: 企业团队运行领域特定变体——安全审计器、文档更新 Agent、测试覆盖率 Agent——全部来自同一代码库,全部通过 YAML 配置。GitHub 上的 2,097 个 Fork 绝大多数是带有自定义配置的实验分支。

数据来源: S WE-agent README 确认"由单一 YAML 文件控制"(swe-agent.com);GitHub Forks 2,097(GitHub API 验证)。


总结

  1. EnIGMA 模式 将 SWE-agent 变成自主网络安全 CTF Agent——在多个 CTF 基准上达到 SoTA
  2. 编程挑战模式 将 LeetCode 刷题变成 AI 辅助学习——自动生成针对弱项的测试集
  3. 模型灵活性 支持切换 GPT-4o 为本地 Ollama 模型——API 账单直接归零
  4. Mini-SWE-agent 仅 100 行 Python 达到 74%+ SWE-bench 准确率——比完整框架更强大更简洁
  5. YAML 定制 无需 Fork 代码库即可构建领域专用 Agent

如果你觉得这篇文章有用,欢迎在评论区分享你自己的 SWE-agent 使用场景。如果你在用 S WE-agent 或 mini-SWE-agent 做项目,我很想听听你在做什么。

推荐阅读:

Top comments (0)