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 CodeAnthropic 的 AI 编码 CLI跨文件协调、大型重构
Codex CLIOpenAI 的 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所有会话都使用沙箱