Files
Claude-Code-Workflow/docs/zh/features/cli.md
catlog22 c3ddf7e322 docs: add VitePress documentation site
- Add docs directory with VitePress configuration
- Add GitHub Actions workflow for docs build and deploy
- Support bilingual (English/Chinese) documentation
- Include search, custom theme, and responsive design
2026-02-28 16:14:09 +08:00

309 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CLI 调用系统
## 一句话定位
**CLI 调用系统是统一的多模型 AI 执行框架** — 一个命令调用多个 AI 工具 (Gemini、Qwen、Codex、Claude),支持 analysis/write/review 模式,自动处理流式输出和错误恢复。
## 解决的痛点
| 痛点 | 现状 | CLI 调用系统方案 |
| --- | --- | --- |
| **多工具分散** | 不同 AI 工具命令格式不一致 | 统一 `ccw cli` 入口 |
| **模型切换困难** | 换模型要查文档记参数 | `--tool` + `--model` 简化切换 |
| **输出格式混乱** | 各工具输出格式不统一 | 统一 JSON Lines 流式输出 |
| **错误恢复缺失** | 工具失败只能手动重试 | 自动 fallback 到备用模型 |
| **上下文管理弱** | 多轮对话上下文不连贯 | Native Resume 自动管理 |
## 核心概念速览
| 概念 | 说明 | 示例 |
| --- | --- | --- |
| **Tool (工具)** | AI 执行端点 | `gemini`, `qwen`, `codex`, `claude`, `opencode` |
| **Mode (模式)** | 执行权限级别 | `analysis` (只读), `write` (读写), `review` (代码审查) |
| **Model (模型)** | 工具使用的具体模型 | `gemini-2.5-flash`, `gpt-5.2`, `coder-model` |
| **Fallback (备用)** | 主模型失败时的自动切换 | secondaryModel 配置 |
| **Resume (恢复)** | 多轮对话上下文管理 | `--resume` 参数 |
| **Session (会话)** | 命令执行的对话上下文 | Native UUID / 消息历史 |
## 使用场景
| 场景 | 推荐工具 | 推荐模式 |
| --- | --- | --- |
| **代码分析** | `gemini` / `qwen` | `analysis` |
| **代码生成** | `codex` / `gemini` | `write` |
| **代码审查** | `codex` | `review` |
| **架构设计** | `gemini` + `codex` 并行 | `analysis` |
| **Bug 调试** | `gemini` (分析) -> `codex` (修复) | `analysis` -> `write` |
| **文档生成** | `qwen` / `gemini` | `write` |
## 操作步骤
### 基础用法
```bash
# 分析代码(默认 analysis 模式)
ccw cli -p "分析 auth 模块的代码结构" --tool gemini
# 生成代码write 模式)
ccw cli -p "创建一个 JWT 认证中间件" --tool codex --mode write
# 代码审查review 模式,仅 codex
ccw cli -p "审查本次提交的代码变更" --tool codex --mode review
# 指定模型
ccw cli -p "分析性能瓶颈" --tool gemini --model "gemini-2.5-pro" --mode analysis
```
### 从文件读取 Prompt
```bash
# 使用 -p @file 语法
ccw cli -p @prompt.txt --tool gemini
# 使用 -f 参数
ccw cli -f prompt.md --tool qwen --mode write
```
### 工作目录控制
```bash
# 在特定目录执行
ccw cli -p "分析当前项目" --tool gemini --cd /path/to/project
# 包含额外目录(用于跨项目分析)
ccw cli -p "分析 shared 和 current 项目的关系" \
--tool gemini \
--cd /path/to/current \
--includeDirs /path/to/shared
```
### 多轮对话 (Resume)
```bash
# 启动新会话
ccw cli -p "设计一个用户认证系统" --tool gemini
# 继续上一轮对话
ccw cli -p "现在实现登录接口" --tool gemini --resume
# 继续指定会话
ccw cli -p "修改登录接口返回 JWT" --tool gemini --resume abc123-def456
# 合并多个会话上下文
ccw cli -p "整合之前的讨论" --tool gemini --resume abc123,def456
```
### 代码审查模式 (Codex 专用)
```bash
# 审查未提交的变更
ccw cli --tool codex --mode review
# 审查与指定分支的差异
ccw cli --tool codex --mode review --base main
# 审查指定提交
ccw cli --tool codex --mode review --commit abc123
# 带标题的审查
ccw cli -p "关注安全性问题" --tool codex --mode review --uncommitted
```
### 使用规则模板
```bash
# 加载预定义模板
ccw cli -p "分析代码安全性" \
--tool gemini \
--mode analysis \
--rule analysis-assess-security-risks
# 查看可用模板
ccw cli --help
```
## 配置说明
### 配置文件结构
**全局配置**: `~/.claude/cli-tools.json`
```json
{
"version": "3.3.0",
"tools": {
"gemini": {
"enabled": true,
"primaryModel": "gemini-2.5-flash",
"secondaryModel": "gemini-2.5-flash",
"availableModels": [
"gemini-3-pro-preview",
"gemini-2.5-pro",
"gemini-2.5-flash",
"gemini-2.0-flash"
],
"tags": ["分析", "Debug"],
"type": "builtin"
},
"codex": {
"enabled": true,
"primaryModel": "gpt-5.2",
"secondaryModel": "gpt-5.2",
"tags": [],
"type": "builtin"
}
}
}
```
**设置文件**: `.cw/cli-settings.json`
```json
{
"$schema": "../cli-tools-schema.json",
"version": "1.0.0",
"defaultTool": "gemini",
"promptFormat": "plain",
"smartContext": {
"enabled": false,
"maxFiles": 10
},
"nativeResume": true,
"recursiveQuery": true,
"cache": {
"injectionMode": "auto",
"defaultPrefix": "",
"defaultSuffix": ""
},
"codeIndexMcp": "ace"
}
```
### 工具类型 (Type)
| 类型 | 说明 | 可用模型 | 支持 |
| --- | --- | --- | --- |
| `builtin` | 内置 CLI 工具 | 完整模型列表 | 分析 + 写入 |
| `cli-wrapper` | Claude CLI 包装 | settings.json 中的模型 | 分析 + 写入 |
| `api-endpoint` | LiteLLM 端点 | 端点配置的模型 | **仅分析** |
### 标签 (Tags) 路由
标签用于工具选择和路由:
| 标签 | 说明 | 适用工具 |
| --- | --- | --- |
| `分析` | 代码分析、架构审查 | gemini, qwen |
| `Debug` | 调试、错误诊断 | gemini, qwen |
| `实现` | 代码生成、功能实现 | codex, gemini |
## 输出格式
### JSON Lines 流式输出
所有工具统一使用 JSON Lines 输出:
```json
{"type": "status", "message": "Connecting to API..."}
{"type": "delta", "content": "基于代码分析"}
{"type": "delta", "content": "auth 模块包含以下组件"}
{"type": "usage", "prompt_tokens": 1000, "completion_tokens": 500}
{"type": "error", "message": "API timeout, retrying..."}
{"type": "done", "finish_reason": "stop"}
```
### 输出类型
| 类型 | 说明 |
| --- | --- |
| `status` | 状态更新 |
| `delta` | 内容增量 |
| `usage` | Token 使用量 |
| `error` | 错误信息 |
| `done` | 完成标记 |
## Dashboard 中的 CLI 终端
### 终端面板功能
```
┌─────────────────────────────────────────────────────────────┐
│ CLI 终端面板 │
├─────────────────────────────────────────────────────────────┤
│ ┌───────────────────────────────────────────────────────┐ │
│ │ 工具选择: [gemini ▼] 模式: [analysis ▼] 模型: [...] │ │
│ │ 目录: /path/to/project 包含: [shared] │ │
│ └───────────────────────────────────────────────────────┘ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ Prompt 输入区 (支持多行) │ │
│ │ [执行] [规则模板] [恢复会话] │ │
│ └───────────────────────────────────────────────────────┘ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ 输出区 (流式显示,支持 Markdown 渲染) │ │
│ │ - 代码高亮 │ │
│ │ - 错误高亮 │ │
│ │ - Token 统计 │ │
│ └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
```
### 功能按钮
- **工具选择**: 下拉选择可用工具
- **模式选择**: analysis / write / review
- **模型选择**: 工具可用模型列表
- **规则模板**: 快速加载预定义模板
- **恢复会话**: 选择历史会话继续
## 常见问题
### Q1: analysis 和 write 模式的区别?
A:
- **analysis**: 只读模式AI 只能读取文件,不能创建/修改/删除
- **write**: 读写模式AI 可以完整操作文件系统
- **review**: 仅 Codex 支持Git 感知的代码审查模式
### Q2: 如何选择合适的工具?
A: 基于场景推荐:
- **代码分析/架构设计**: `gemini` (速度快,上下文大)
- **代码生成/Bug 修复**: `codex` (代码能力强)
- **中文任务**: `qwen` (中文优化)
- **长上下文**: `claude` (200K+ tokens)
### Q3: Fallback 机制如何工作?
A: 当主工具失败时:
1. 尝试 `secondaryModel` (同工具)
2. 尝试下一个启用的工具
3. 回退到默认工具
### Q4: 如何调试 CLI 调用?
A: 使用 `-d, --debug` 参数:
```bash
ccw cli -p "分析代码" --tool gemini -d
```
输出详细诊断信息,包括:
- 工具可用性检查
- 命令构建过程
- API 调用详情
- 错误堆栈
## 相关功能
- [Spec 规范系统](./spec.md) — 规范自动注入到 Prompt
- [Memory 记忆系统](./memory.md) — Resume 上下文管理
- [API 设置](./api-settings.md) — API Keys 配置
- [系统设置](./system-settings.md) — cli-tools.json 配置
## 进阶阅读
- CLI 执行核心: `ccw/src/tools/cli-executor-core.ts`
- CLI 工具管理: `ccw/src/tools/claude-cli-tools.ts`
- 命令路由: `ccw/src/commands/cli.ts`
- 前端终端: `ccw/frontend/src/components/terminal-dashboard/`