教 OpenClaw 在自动化脚本、后台任务、CI/CD、无 TTY 环境等非交互场景中, 正确使用 Kimi Code CLI 的 `-p/--prompt`、`--print`、`--quiet`、`--wire` 等参数完成无头执行。 涵盖命令构造、自动审批控制、输出格式选择、会话管理、错误处理与安全护栏。
Kimi Code CLI 默认以交互式 Shell/TUI 模式启动,但在自动化场景中需要无头执行(不进入交互界面,传入提示词后直接输出结果并退出)。本 Skill 指导 Agent 在需要调用 kimi 命令完成后台任务时,如何构造正确的无头执行命令,确保输出可控、错误可处理、操作安全。
执行本 Skill 时,最终必须做到:
kimi 无头命令--quiet 快速文本 / --print 完整过程 / --wire 服务化)--yolo)并告知用户风险在以下情况下必须触发本 Skill:
kimi 命令行工具调用 Kimi 模型能力,而不是通过 API 直接请求以下情况不应套用本 Skill 的完整执行流程:
kimi)kimi 命令,且用户未要求安装(应先提示安装或换用 API)在构造命令前,必须先确认:
which kimi 或 kimi --version,确认 Kimi CLI 已安装kimi login 登录,需提示用户先完成认证--work-dir PATH--yolo(并告知风险)| 参数 | 简写 | 说明 |
|---|---|---|
--prompt TEXT | -p | 传入用户提示,不进入交互模式 |
--command TEXT | -c | --prompt 的别名 |
--print | 以 Print 模式运行(非交互式),隐式启用 --yolo | |
--quiet | 等价于 --print --output-format text --final-message-only | |
--yolo | -y | 自动批准所有文件修改和 Shell 命令执行 |
--work-dir PATH | -w | 指定工作目录 |
--model NAME | -m | 指定模型,覆盖配置文件 |
--continue | -C | 继续当前工作目录的上一个会话 |
--session ID / --resume ID | -S / -r | 恢复指定会话 |
--output-format FORMAT | 仅在 --print 下有效:text(默认)或 stream-json | |
--final-message-only | 仅在 --print 下有效:只输出最终 assistant 消息 | |
--wire | 以 Wire 服务器模式运行(实验性),适合程序集成 |
快速单次问答(推荐默认):kimi -p "任务描述" --quiet
需要观察完整过程:kimi -p "任务描述" --print
需要结构化/流式输出:kimi -p "任务描述" --print --output-format stream-json
长任务/多轮迭代:kimi -p "任务描述" --print --max-ralph-iterations N
服务化/后台常驻:kimi --wire
执行时必须按以下顺序构造命令:
根据用户需求选择输出模式:
--quiet--print--print --output-format stream-json若任务涉及读写文件、执行 Shell 命令、安装依赖等需要审批的操作:
--yolo(或依赖 --print 隐式启用 --yolo)若任务与当前目录无关,或需要操作特定项目:
--work-dir "目标路径"--continue--session <ID>按照以下优先级拼接命令(注意参数顺序):
kimi \
[--work-dir PATH] \
[--model NAME] \
[--continue | --session ID] \
-p "具体任务提示词" \
[--quiet | --print [--output-format stream-json] [--final-message-only]] \
[--yolo]
典型命令示例:
# 示例1:快速无头分析当前目录代码
kimi -p "分析当前项目的主要架构和潜在问题" --quiet
# 示例2:让 Kimi 自动修复指定文件的 bug(自动审批)
kimi -w ./src -p "修复 main.py 中的空指针异常" --quiet --yolo
# 示例3:完整过程输出,用于观察 Kimi 的思考链
kimi -p "为这个项目添加单元测试" --print
# 示例4:结构化流式输出,供程序解析
kimi -p "生成 CHANGELOG" --print --output-format stream-json
# 示例5:恢复之前会话继续工作
kimi -w ./my-project -p "继续完成刚才的优化" --continue --quiet --yolo
--quiet 模式输出直接返回纯文本字符串,可直接作为答案呈现给用户,无需额外解析。
--print + text 模式输出通常包含:
Agent 应该:
$?)是否为 0--print + stream-json 模式输出每行是一个 JSONL 对象,常见 type 字段包括:
start:开始thinking:思考内容tool_call / tool_result:工具调用及结果content:模型生成的内容片段done:结束标记Agent 应该:
type == "content" 的片段拼接成完整回复type == "tool_result" 获取工具执行结果kimi --wire 启动后,需要配合 Wire 客户端进行通信。此模式下:
--yolo
$HOME 根目录、/etc、/usr 等全局目录自动执行命令--yolo 的风险
--quiet 避免信息过载
--quiet-p 的两种含义
kimi 主命令中 -p 是 --promptkimi web 子命令中 -p 是 --port,注意上下文--quiet/--print 中混用交互式参数
表现:command not found: kimi
处理:提示用户通过 pip install kimi-cli 或官方推荐方式安装,或换用 Moonshot API 直接调用。
表现:报错信息包含 Unauthorized、请登录 或 API key not found
处理:提示用户运行 kimi login 或在 ~/.kimi/config.toml 中配置 API key。
--yolo 但用户不想自动执行表现:用户反馈 "Kimi 直接改了我文件但我没同意"
处理:道歉并解释 --yolo 的作用,今后在涉及文件修改前必须显式征得同意。
--print --output-format stream-json 输出为空或解析失败表现:没有任何 stdout 或 JSON 解析报错
处理:先降级到 --quiet 或 --print --output-format text 重新执行,确认是基础命令问题还是格式问题。
表现:--continue 或 --session ID 提示会话不存在
处理:不加会话参数以新建会话执行,或提示用户通过 kimi info 查看可用会话。
input_schema:
type: object
required:
- task_description
properties:
task_description:
type: string
description: 要交给 Kimi CLI 执行的具体任务描述
work_dir:
type: string
description: 工作目录路径,默认为当前目录
output_mode:
type: string
enum: [quiet, print, stream-json, wire]
description: 输出模式选择
auto_approve:
type: boolean
description: 是否启用 --yolo 自动审批
model:
type: string
description: 指定使用的模型名称
session_strategy:
type: string
enum: [new, continue, resume]
description: 会话策略
session_id:
type: string
description: 当 session_strategy 为 resume 时必填
output_schema:
type: object
properties:
constructed_command:
type: string
description: 最终构造并执行的 kimi 命令
execution_result:
type: string
description: 命令输出内容或结果摘要
exit_code:
type: integer
description: 命令退出码
warnings:
type: array
items:
type: string
description: 执行过程中的警告或风险提示
next_steps:
type: array
items:
type: string
description: 建议的后续操作
### 构造的命令
\`\`\`bash
{constructed_command}
\`\`\`
### 执行结果
{execution_result_summary}
### 风险提示
{yolo_warning_if_applicable}
### 后续建议
{next_steps}
本 Skill 的终极要求只有一句话:
在无头场景下调用 Kimi CLI 时,必须让命令“一次成型、自动跑完、输出干净、风险可知”。