news 2026/10/16 13:25:22

向SWE-AF贡献代码:从开发、测试到发布的完整路径

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
向SWE-AF贡献代码:从开发、测试到发布的完整路径

【免费下载链接】SWE-AF

Autonomous software engineering fleet of AI agents for production-grade PRs on AgentField: plan, code, test, and ship.

项目地址:https://gitcode.com/gh_mirrors/sw/SWE-AF
点击查看免费下载

SWE-AF 是一个基于 AgentField 的自主 AI 软件工程舰队(autonomous engineering fleet):一次 API 调用即可拉起一支 AI 智能体团队,自动完成软件的规划、编码、测试与交付,产出生产级 PR。本文带你走通向 SWE-AF 贡献代码的完整路径:搭建本地开发环境、理解多智能体架构、跑通测试与 CI、规范提交 PR,直到参与版本发布。

🧭 项目速览:SWE-AF 是什么

SWE-AF 不是单智能体包装器,而是一套协同的「工程工厂」:

  • 规划层:Product Manager、Architect、Tech Lead、Sprint Planner 协作产出 PRD 与 Issue 分解
  • 执行层:Coder、QA、Reviewer 在相互隔离的 git worktree 中并行工作
  • 治理层:Issue Advisor 与 Replanner 在失败时重试、拆分或重构剩余任务

理解这套分层控制架构,是你开始贡献代码前最重要的背景知识。

📋 开发前准备:环境要求清单

根据 docs/CONTRIBUTING.md,开发 SWE-AF 需要三项前置条件:

要求说明
Python 3.12+项目通过 pyproject.toml 声明requires-python = ">=3.12"
AgentField 控制平面(af)智能体节点需注册到控制平面
AI 运行时claude_code、open_code或codex三者之一

💡 如果你只是跑测试、改纯逻辑代码,没有 AI 密钥也能进行大部分本地开发;只有触发完整 build 时才需要配置 LLM provider key。

🚀 克隆仓库并搭建本地开发环境(5 分钟上手)

按官方推荐流程,4 步完成环境搭建:

# 1. 克隆仓库 git clone https://gitcode.com/gh_mirrors/sw/SWE-AF cd SWE-AF # 2. 创建并激活虚拟环境 python3 -m venv .venv source .venv/bin/activate # 3. 安装项目 + 开发依赖(pytest、pytest-asyncio、ruff) python -m pip install --upgrade pip python -m pip install -e ".[dev]"

pip install -e ".[dev]"以可编辑模式安装项目,并额外装上开发依赖。依赖声明集中在 pyproject.toml,其中agentfield>=0.1.113、pydantic、claude-agent-sdk等核心依赖的版本约束值得先读一遍——很多「跑不起来」的问题都源于版本不匹配。

🧩 代码结构导览:先读哪些模块

SWE-AF 同时包含 Python 主实现与 Go 移植版,首次贡献建议按此顺序阅读:

路径内容
swe_af/app.py节点入口,swe-planner节点注册与路由
swe_af/prompts/各智能体角色的提示词(architect、coder、qa 等)
swe_af/execution/DAG 执行器、编码循环、CI 门控等核心管线
go/internal/Go 语言移植版(orch、dag、prompts 等包)
tests/pytest 测试套件,含 tests/fast/ 快速模式集成测试
docs/架构、部署与贡献文档

下图展示了 SWE-AF 多智能体管线的完整架构,贡献代码前强烈建议对照理解各角色职责:

▶️ 运行项目:双终端开发工作流

本地运行 SWE-AF 需要两个终端配合(详见 docs/SKILL.md):

# 终端 1:启动 AgentField 控制平面(:8080) af # 终端 2:注册 swe-planner 节点 python3 -m swe_af

然后就能触发一次构建来验证你的改动:

curl -X POST http://localhost:8080/api/v1/execute/async/swe-planner.build \ -H "Content-Type: application/json" \ -d '{"input": {"goal": "Add JWT auth", "repo_path": "/path/to/your/repo"}}'

下图是一条真实构建的时间线,展示了各阶段(planning → coder → reviewer → qa → merger → verify)如何交错并行执行——改动手上逻辑时,先弄清自己处于流水线的哪一段:

✅ 测试规范:如何跑通 SWE-AF 的 CI

提交前,本地必须先跑通 Makefile 中的两个目标:

make test # 运行 pytest tests/ -x -q make check # 测试 + 全量编译检查(compileall)

等价的手动命令:

python3 -m pytest tests/ -x -q python3 -m unittest discover -s tests -v

CI 定义在 .github/workflows/ci.yml,包含两个独立 Job,本地需分别对应:

  1. test(Python Job):Python 3.12 环境下安装-e ".[dev]"依赖后执行make check,与本地命令完全一致
  2. go(Go Job):如果你改动了 go/ 目录,需额外跑通格式、构建与竞态测试:
cd go gofmt -l . # 必须无输出 go build ./... go vet ./... go test -race -count=1 ./...

新增测试的建议:参考 tests/ 中现有用例的命名与 conftest 组织方式,纯逻辑改动优先补单元测试,涉及管线编排再补集成测试——PR 中会要求附上测试证据。

📝 提交 PR:仓库卫生与必备信息

PR 描述需遵循 pull_request_template.md 的四个板块:

  • Summary:改了什么、为什么改
  • Validation:make check结果 + 手动验证记录
  • Behavior Impact:无行为变更 / 向后兼容 / 破坏性变更(三选一)
  • Notes:上线注意事项或后续跟进项

根据 docs/CONTRIBUTING.md 的仓库卫生要求,请特别注意:

✅ 应该❌ 避免
保留记录完整示例运行的产物提交 Python__pycache__缓存
每个 PR 附测试证据(单测/命令输出)提交 Rusttarget/构建输出
变更范围聚焦单一问题夹带无关的格式化改动

💡 明确说明「是否改变了智能体编排行为」是本项目 PR 的硬性要求,因为编排逻辑(如重试、门控)直接影响生产构建结果。

📦 发布路径:版本号、CHANGELOG 与镜像

SWE-AF 遵循语义化版本(Semantic Versioning),发布涉及三个环节:

  1. 版本号:更新 pyproject.toml 中的version字段(当前为0.1.0)
  2. 变更记录:在 CHANGELOG.md 的[Unreleased]区段按 Keep a Changelog 格式登记 Added / Changed / Removed,版本发布时再落到具体版本号下
  3. Docker 镜像:容器化构建基于 Dockerfile 与 docker-compose.yml,修改入口点、依赖或环境变量后需重新构建验证:
docker compose up -d curl http://localhost:8003/health # swe-planner 节点健康检查

部署与镜像的详细验证步骤(含环境变量、已知问题与扩容方法)见 docs/deployment.md。

💡 新手常见坑速查

症状处理方式
依赖安装报版本冲突对照 pyproject.toml 的约束升级agentfieldSDK
节点连不上控制平面确认终端 1 的af已启动,AGENTFIELD_SERVER可达
健康检查失败查看容器日志:docker compose logs swe-agent
Go 代码 CI 挂掉本地先跑gofmt、go vet、go test -race再推

🎯 小结:你的第一份贡献路线图

  1. 环境:Python 3.12+ → 克隆仓库 →pip install -e ".[dev]"
  2. 理解:读 docs/ARCHITECTURE.md,对照架构图认清你要改的模块
  3. 开发:双终端跑通本地节点,用真实 build 验证行为
  4. 测试:make check全绿;改 Go 代码则加跑go test -race
  5. PR:按模板写清变更原因与测试证据,遵守仓库卫生规则
  6. 发布:版本 bump + CHANGELOG 记录 + 镜像重建验证

按这条路径走完,你就完成了从开发到发布的全流程——欢迎加入 SWE-AF 的构建。

【免费下载链接】SWE-AF

Autonomous software engineering fleet of AI agents for production-grade PRs on AgentField: plan, code, test, and ship.

项目地址:https://gitcode.com/gh_mirrors/sw/SWE-AF
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/16 13:25:09

Java+AI全栈开发工程师:核心能力、技术选型与RAG实操链路

1. 这个岗位到底在招什么人 “JavaAI 全栈开发工程师”这个岗位名称,最近两年在招聘市场上出现的频率越来越高。我翻了不少岗位描述,也跟几个正在招这类人的团队负责人聊过,发现大家对它的理解差异其实挺大的。有的团队想要的是一个 Java 后端…

作者头像 李华
网站建设 2026/10/16 13:24:43

大型国企业务中台建设:从规划到落地的实践指南

这几年陆续参与了几家大型国企的数字化转型项目,有个现象一直绕不开:大家在聊业务中台,但真正把中台讲清楚、把价值打出来、让业务部门愿意持续用的,并不多。尤其是站在“十五五”规划周期这个时间窗口,很多集团都在重…

作者头像 李华
网站建设 2026/10/16 13:23:18

中缀表达式转后缀表达式:栈、调度场算法与逆波兰求值解析

还没谈到“怎么算”,我先说一个判断标准:如果你把一个四则运算式子交给计算机处理,中缀写法的处理难度远高于后缀写法。原因后面展开。 1. 三种表达式的基本形态与命名逻辑 1.1 同一道算式,三种写法长什么样 先看一个最基础的式…

作者头像 李华
网站建设 2026/10/16 13:21:12

vLLM 本地高并发推理部署与调优:从显存优化到性能压测

在本地跑大模型的同学,很多都经历过这种尴尬:一张顶配显卡,代码写得很漂亮,但推理速度就是上不去。尤其当出现并发请求时,排队、超时、显存溢出轮着来,恨不得把服务器扔出窗外。我自己也踩过这个坑&#xf…

作者头像 李华
网站建设 2026/10/16 13:20:57

Linux 下 Python 调用 SAP RFC:NW RFC SDK 与 pyRFC 安装实战

简介:面向需要在 Linux 环境下用 Python 调用 SAP RFC 接口的开发人员,这是一份配套的 nwrfcsdk 资源包,对应 nwrfc750P_5-70002752 版本,解决 pyrfc 依赖的 C 库缺失、版本不匹配等安装与连接问题。压缩包共 27 个文件&#xff0…

作者头像 李华
网站建设 2026/10/16 13:20:34

Java SSM智慧养老云服务平台:管理系统与预约功能实战解析

1. 项目概述与核心需求解析 1.1 这个项目到底解决什么问题 做Java Web方向课程设计或毕业设计的同学,大概率都绕不开“管理系统”这类题目。但要说选哪道题最划算、最容易出成果,我个人的看法是,像“智慧养老云服务平台”这种带明确业务场景…

作者头像 李华