使用 Kimi Code CLI 执行复杂代码任务。当用户需要: 1. 大型代码生成(完整功能模块、多文件项目) 2. 复杂代码重构(legacy 代码现代化、架构调整) 3. 深度 Bug 诊断(多文件关联错误、难以定位的问题) 4. 技术调研实现(新技术栈完整集成、PoC 开发) 5. 长时间运行的开发任务(需要持续交互) 适用场景:任务复杂度超出单次回复范围,需要多步骤自主执行或长时间运行时。 技术方案:基于 OpenClaw exec 的 PTY 模式,支持伪终端交互和后台会话。
版本: 1.2.4 | 最后更新: 2026-02-04
使用 Kimi Code CLI 作为“编码执行器”,配合会话模型做规划/验收,完成复杂代码任务。
目标:不是让会话模型(例如 GLM)直接写复杂代码,而是让它指挥,由 Kimi Code CLI 真正产出/修改代码文件。
🧠 会话模型(规划/拆解/验收)
↓ 调用
📋 kimi-cli skill(exec + pty + workdir + process 控制)
↓ 运行
💻 Kimi Code CLI(生成/修改文件、输出步骤)
适用场景:明确的单次任务,执行完即返回
推荐执行方式(one-shot):
bash pty:true workdir:~/project timeout:300 command:"kimi --print -p '你的任务描述'"
参数说明:
pty:true - 必需! 分配伪终端,让 CLI 输出/交互稳定workdir - 工作目录(强烈建议使用独立目录)timeout - 超时时间(秒)command - 要执行的 Kimi 命令示例:
# 创建一个完整项目
bash pty:true workdir:~/projects timeout:600 command:"kimi --print -p '创建一个 React + TypeScript 的待办事项应用'"
# 重构现有代码
bash pty:true workdir:~/my-project timeout:300 command:"kimi --print -p '重构 src/utils.py 使用现代 Python 最佳实践'"
注意:不要用
kimi '...'作为 one-shot 标准写法(容易进入交互/输出不一致)。
适用场景:复杂任务需要多轮交互,或 Kimi 可能会提问确认
启动方式:
bash pty:true workdir:~/project background:true command:"kimi"
后续控制(使用 process 工具):
| 操作 | 命令 |
|---|---|
| 查看输出 | process action:log sessionId:xxx |
| 发送输入 | process action:submit sessionId:xxx data:"你的回答" |
| 原始输入 | process action:write sessionId:xxx data:"内容" |
| 检查状态 | process action:poll sessionId:xxx |
| 结束会话 | process action:kill sessionId:xxx |
完整示例:
# 1. 启动后台会话
bash pty:true workdir:~/project background:true command:"kimi"
# 返回: sessionId: abc123
# 2. 查看初始输出
process action:log sessionId:abc123
# 3. Kimi 提问时,发送回答
process action:submit sessionId:abc123 data:"使用 TypeScript"
# 4. 持续监控
process action:log sessionId:abc123 limit:50
# 5. 完成或出错时结束
process action:kill sessionId:abc123
基于测试任务总结的最佳实践:
许多系统同时安装了 python 和 python3,但 python 可能不存在:
# ✅ 明确指定 python3
kimi --print -p "使用 python3 运行..."
# ❌ 不指定可能失败
kimi --print -p "使用 python 运行..." # 可能找不到命令
kimi --print -p "创建一个模块,要求:1) 功能实现 2) 包含单元测试文件 3) 给出如何运行 pytest 的命令"
kimi --print -p "创建一个脚本,要求:1) 支持参数 X 2) 验证输入 3) 错误处理 4) 文档"
Kimi CLI 是交互式应用,必须使用 pty:true:
# ✅ 正确
bash pty:true command:"kimi --print -p '...'"
# ❌ 错误 - 可能挂起或输出异常
bash command:"kimi --print -p '...'"
避免 Kimi 访问不相关文件:
bash pty:true workdir:/tmp/new-project command:"kimi --print -p '创建新项目'"
注意(OpenClaw exec 的 workdir 约束):
exec 的 workdir 必须在调用前就存在,否则 OpenClaw 会回退到默认目录(并打印类似 “workdir ... is unavailable”)。示例:
# 1) 先创建目录(普通 exec 即可)
mkdir -p /tmp/kimi-eval/t01
# 2) 再用该 workdir 调用 Kimi(PTY 必开)
bash pty:true workdir:/tmp/kimi-eval/t01 timeout:600 command:"kimi --print -p '...任务...'"
# 小任务: 5 分钟
bash pty:true timeout:300 command:"kimi --print -p '...'"
# 大任务: 10 分钟或更长
bash pty:true timeout:600 command:"kimi --print -p '...'"
process action:log sessionId:xxx limit:30
process action:submit sessionId:xxx data:"y"
当 Kimi 配额耗尽时,可能出现:
429 ... rate_limit_errorSOP:
429 或 rate_limit_errorblocked_by_rate_limit,避免误判为失败可选降级:如果必须立刻继续推进,可由会话模型临时代写/生成草案,但要标注为“非 Kimi 产物”,配额恢复后再用 Kimi 复跑对比。
pip install kimi-clikimi /login改进点:
payload.acp(acpVersion=2.0, signature, data),scripts/acp_check.py 验证通过(VALID)改进点:
summary.json + summary.txt,数据一致(metric=42, status=SUCCESS),JSON 通过 python3 -m json.tool 校验改进点:
pip3 + --break-system-packages 解决办法pip install 可能因 PEP 668/externally-managed 限制失败,需使用 pip3 或系统包 + --break-system-packages 作为备选改进点:
exec.workdir 需要“目录预先存在”的注意事项与推荐流程(避免 silently fallback)改进点:
kimi --print -p "..."(移除 kimi '...' 误导写法)改进点:
kimi --print -p "prompt"python3 的最佳实践(避免环境问题)初始版本:
目标:50 道测试任务,迭代优化 Skill
| 阶段 | 任务数 | 状态 |
|---|---|---|
| L1 基础 | 10 | ✅ 完成 (10/10) |
| L2 中等 | 15 | 待开始 |
| L3 复杂 | 15 | 待开始 |
| L4 交互 | 5 | 待开始 |
| L5 调试 | 5 | 待开始 |
当前进度:20% (10/50)