把 AI 编码助手变成“多线程”工作流:Async Code Agent 完整实践指南

用一杯咖啡的时间,把原本需要排队等待的代码任务,变成批量并行处理。


为什么要让 AI 同时做很多事?

过去,我们让 Claude Code 这样的 AI 助手一次只改一个文件、跑一次测试、提一条 PR。
现在,Async Code Agent 把每次「等待」变成「并行」:

  • 同时让 3 个不同模型的 agent 给同一段代码做审查;
  • 在同一仓库里并行跑 5 条重构任务,互不干扰;
  • 最终把通过测试的任务一键生成 PR,失败的直接回滚。

一句话:把时间花在「决策」而不是「排队」上。


Async Code Agent 是什么?

它是一个开源的 任务管理系统,把「AI 驱动的编码任务」封装成可并行的容器任务,并通过一个类 Codex 的网页界面管理。

主界面
图 1:任务列表页,每个卡片即一次并行任务

结果对比
图 2:不同 agent 产出的 diff 可以并排查看


核心能力速查表

能力 用日常语言解释 实际场景举例
多 Agent 并行 同时跑多个 AI 模型 让 Claude Code 与 GPT-4 一起重构同一函数,看谁更简洁
容器级隔离 每条任务都在独立容器里,互不干扰 一条任务把依赖升级崩了,其他任务继续跑
Git 全流程 自动克隆、提交、推送、开 PR 任务跑完直接发 PR,省去手工操作
结果对比 网页端并排查看 diff、测试报告 一眼就能看出哪份代码通过了 CI
一键自托管 Docker Compose 一条命令即可本地或服务器部署 公司内网也能用,数据不离开本地

入门:十分钟跑起来

1. 准备环境

  • 已安装 Docker 与 Docker Compose
  • 一个 Anthropic API Key(Claude 用)
  • (可选)一个 Supabase 项目,用来持久化数据

2. 一键启动

# 克隆代码
git clone <repo-url>
cd async-code

# 复制环境模板
cp server/.env.example server/.env

# 编辑 server/.env,把 ANTHROPIC_API_KEY 填进去
# 如果用 Supabase,再把 SUPABASE_URL、SUPABASE_ANON_KEY、SUPABASE_SERVICE_ROLE_KEY 填进去

# 构建并启动
docker-compose up --build -d

启动成功后:

  • 前端:http://localhost:3000
  • 后端 API:http://localhost:5000

3. 可选:Supabase 建表

进入 Supabase 的 SQL Editor,粘贴并执行 db/init_supabase.sql 即可。


使用流程(Step by Step)

Step 1 设置 GitHub Token

首次打开网页,会提示输入 GitHub Personal Access Token,权限只要 repo 即可。

Step 2 指定仓库

在「Repository」输入框里填:

owner/repo-name
branch: main

Step 3 选择 Agent

下拉框里默认有 claude-code,后续你可以自己扩展别的模型。

Step 4 提交任务

在「Task」文本框里用自然语言描述需求,例如:

把 utils.py 里所有 print 语句改成 logging,并补全单元测试。

点击「Run」,系统会:

  1. 克隆仓库到独立容器;
  2. 启动 agent 执行指令;
  3. 跑测试;
  4. 把结果回传到前端。

Step 5 对比 & 合并

  • 左侧树形目录浏览文件 diff;
  • 点击「Create PR」即可把通过测试的变更推送到 GitHub 并打开 PR。

FAQ:你可能会问的问题

Q1:没有 GPU 能跑吗?
A:可以。Agent 调用的是云端模型(如 Claude),本地只负责调度和容器,资源消耗极低。

Q2:公司内网无法访问 GitHub 怎么办?
A:把仓库先镜像到内网 GitLab,再把 origin 改成内网地址即可。

Q3:怎样增加新模型?
A:在 server/agents/ 新建 Python 文件,实现 run(task_context) 接口,然后在 agents.yaml 注册即可。

Q4:任务失败了如何调试?
A:网页上直接点开任务卡片底部「Logs」即可查看容器 stdout/stderr,和在本地 docker logs 看到的内容完全一致。


开发模式:如何改前端或后端

步骤 前端(Next.js) 后端(Flask)
1 cd async-code-web && npm install cd server && pip install -r requirements.txt
2 npm run dev 监听 3000 端口 python main.py 监听 5000 端口
3 热更新自动刷新浏览器 修改代码后 Flask 自动 reload

生产部署:最小可用清单

  1. server/.envFLASK_ENV=productionFLASK_DEBUG=False
  2. 导出环境变量:

    export NODE_ENV=production
    
  3. 构建并启动:

    docker-compose up --build -d
    
  4. 日志监控:

    docker-compose logs -f
    

架构速描(面向技术决策者)

  • 前端:Next.js + TypeScript + TailwindCSS,CSR 为主,接口走 REST。
  • 后端:Python Flask,负责把任务翻译成 Docker API 调用。
  • 任务隔离:每任务一个容器,镜像内预装语言运行时与依赖。
  • 数据持久化:可选 Supabase Postgres 表 tasks, runs, outputs
  • 扩展点

    • 新模型 → 新增 agent 模块;
    • 新仓库类型 → 新增 GitProvider 类;
    • 新通知渠道 → 新增 Notifier 类。

一句话总结

Async Code Agent 把「AI 帮我写代码」这件事,从单线程脚本升级成可扩展、可对比、可回滚的流水线。
把重复劳动留给机器,把决策权留给你。