AI 编码工作流
AI 员工如何实际编写代码——从环境检测到沙箱执行的完整流程。
概述
OpenVort 的 AI 员工可以实际编写代码,不仅仅是在聊天中贴代码片段。编码能力通过两种方式实现:工作电脑(Docker 容器)直接编码,以及编码沙箱隔离执行。
两种编码模式
模式一:工作电脑编码
AI 员工绑定工作电脑后,直接在 Docker 容器中操作:
node_file_read → 阅读代码
node_file_write → 修改文件
node_shell → 运行测试、编译、git 操作
代码持久化在 /workspace 中,跨会话保留。这是主要推荐模式。
模式二:编码沙箱
为没有工作电脑的 AI 员工提供临时隔离环境:
用户消息 → AI 决定使用 git_code_task 工具
→ 检测编码环境 (Docker 是否可用)
→ 创建临时沙箱容器
→ 克隆代码、编码、测试
→ 提交并推送
→ 销毁沙箱
编码环境检测
系统启动时自动检测可用的编码环境:
| 检测项 | 说明 |
|---|---|
| Docker 可用性 | docker info 是否成功 |
| 沙箱镜像 | openvort/coding-sandbox 镜像是否存在 |
| 本地 CLI 工具 | claude-code / aider / codex 是否安装 |
根据检测结果,系统自动选择最佳执行模式:
| 环境 | 执行方式 |
|---|---|
| Docker + 沙箱镜像可用 | Docker 沙箱隔离执行 |
| Docker 可用但无镜像 | 提示构建镜像 |
| Docker 不可用 + 有本地 CLI | 本地执行(仅非 main session) |
| 都不可用 | 告知用户需要配置 |
编码 CLI 工具
AI 员工可以在工作电脑上安装和使用编程 CLI 工具来处理复杂编码任务:
| 工具 | 说明 | 优势 |
|---|---|---|
| Claude Code | Anthropic 的 AI 编码 CLI | 跨文件协调、大型重构 |
| Codex CLI | OpenAI 的 AI 编码 CLI | 快速迭代 |
| Aider | 开源 AI 编码助手 | 灵活配置 |
AI 员工使用 CLI 工具的方式:
张小明: 这个功能改动比较大,我用 Claude Code 来处理。
[在工作电脑上操作中...]
$ claude -p "为用户模块添加手机号登录支持" --output-format stream-json
......
张小明: 改好了,涉及 4 个文件。我跑一下测试。
$ python -m pytest tests/test_auth.py -x
全部通过。
沙箱安全
编码沙箱有以下安全措施:
| 措施 | 说明 |
|---|---|
| 资源限制 | 内存 2GB、CPU 2 核、超时 300 秒 |
| 网络隔离 | 沙箱容器使用独立网络 |
| 生命周期 | 任务结束后自动销毁 |
| 文件隔离 | 代码在容器内操作,不影响宿主机 |
完整编码流程
以 AI 员工修复 Bug 为例:
1. 用户: "登录页验证码不刷新,帮我修一下"
2. AI 理解意图 → 决定需要编码
3. 在工作电脑上操作:
$ cd /workspace/project && git pull
$ node_file_read: web/src/views/login/Index.vue
4. AI 分析代码 → 定位问题
5. 创建分支:
$ git checkout -b fix/captcha-refresh
6. 修改文件:
node_file_write: web/src/views/login/Index.vue
7. 验证修改:
$ cd web && npm run build
8. 提交推送:
git_commit_push: "fix: 修复验证码不刷新问题"
9. 创建 PR:
git_create_pr: fix/captcha-refresh → main
整个过程 AI 员工边做边向用户汇报进度。
配置编码环境
CLI 命令
openvort coding setup # 配置编码环境(构建沙箱镜像等)
openvort coding status # 查看编码环境状态
Docker 沙箱模式
通过环境变量控制沙箱的使用策略:
| 模式 | 说明 |
|---|---|
off | 禁用沙箱 |
non-main | 仅非主会话使用沙箱(默认) |
all | 所有会话都使用沙箱 |