64 lines
4.5 KiB
Markdown
64 lines
4.5 KiB
Markdown
# Gemini CLI 工具映射
|
||
|
||
Skills 说的是动作("分派一个子智能体"、"建一条待办"、"读一个文件")。在 Gemini CLI 上,这些动作对应下面这些工具。
|
||
|
||
| Skill 请求的动作 | Gemini CLI 等价工具 |
|
||
|----------------|-------------------|
|
||
| 读取一个文件 | `read_file` |
|
||
| 一次读取多个文件 | `read_many_files` |
|
||
| 创建新文件 | `write_file` |
|
||
| 编辑文件 | `replace` |
|
||
| 执行 shell 命令 | `run_shell_command` |
|
||
| 搜索文件内容 | `grep_search` |
|
||
| 按名称查找文件 | `glob` |
|
||
| 列出文件和子目录 | `list_directory` |
|
||
| 抓取 URL | `web_fetch` |
|
||
| 搜索网页 | `google_web_search` |
|
||
| 调用一个 skill | `activate_skill` |
|
||
| 分派子智能体(`Subagent (general-purpose):` 模板) | `invoke_agent`,`agent_name: "generalist"`(也可用 `@generalist` 聊天语法调用——见[子智能体支持](#子智能体支持)) |
|
||
| 多个并行分派 | 同一条响应里发多个 `invoke_agent` 调用 |
|
||
| 任务跟踪("建一条待办"、"标记完成") | `write_todos`(状态:pending、in_progress、completed、cancelled、blocked) |
|
||
|
||
## 指令文件
|
||
|
||
当某个 skill 提到"你的指令文件"时,在 Gemini CLI 上指的是 **`GEMINI.md`**。Gemini CLI 按层级加载 `GEMINI.md`:全局的在 `~/.gemini/GEMINI.md`,项目级的在工作区目录及其各级父目录里,另外当某个工具访问子目录中的文件时,该子目录下的 `GEMINI.md` 也会被加载。
|
||
|
||
## 个人 skills 目录
|
||
|
||
用户级 skills 放在 **`~/.gemini/skills/`**,**`~/.agents/skills/`** 是跨运行时的别名目录(与 Codex、Copilot CLI 共用)。当同一层级下两个目录都存在时,`.agents/skills/` 优先。每个 skill 是一个子目录,里面有一份带 `name` 和 `description` frontmatter 的 `SKILL.md`。
|
||
|
||
## 子智能体支持
|
||
|
||
Gemini CLI 通过 `invoke_agent` 工具分派子智能体,该工具接收 `agent_name` 和 `prompt` 两个参数。同一个分派动作也有聊天语法快捷方式:输入 `@generalist <prompt>` 等价于以 `agent_name: "generalist"` 调用 `invoke_agent`。内置的 agent 名包括 `generalist`、`cli_help`、`codebase_investigator`,以及(启用浏览器工具后的)`browser_agent`。
|
||
|
||
Skills 用 `Subagent (general-purpose):` 来分派,并且要么引用一个提示词模板文件(例如 `subagent-driven-development` 的 `./implementer-prompt.md`),要么直接给出内联提示词。在 Gemini CLI 上:
|
||
|
||
| Skill 里的分派形式 | Gemini CLI 等价做法 |
|
||
|------------------|-------------------|
|
||
| 引用某个 `*-prompt.md` 模板(implementer、task-reviewer、code-reviewer 等) | 把模板填好,然后以 `agent_name: "generalist"` 和填好的提示词调用 `invoke_agent` |
|
||
| 引用 `requesting-code-review` 的 `./code-reviewer.md` | 以 `agent_name: "generalist"` 和填好的审查模板调用 `invoke_agent` |
|
||
| 内联提示词(没有引用模板) | 以 `agent_name: "generalist"` 和你的内联提示词调用 `invoke_agent` |
|
||
|
||
### 填写提示词
|
||
|
||
Skills 提供的提示词模板里有 `{WHAT_WAS_IMPLEMENTED}` 或 `[FULL TEXT of task]` 这类占位符。把所有占位符都填好,再把完整提示词交给 `invoke_agent`。模板本身就包含了该 agent 的角色、审查标准和期望的输出格式——子智能体会照着它执行。
|
||
|
||
### 并行分派
|
||
|
||
Gemini CLI 支持并行分派子智能体。在同一条响应里发出多个 `invoke_agent` 调用(或在一个提示词里写多个 `@generalist` 调用),即可让相互独立的子智能体工作并行跑。有依赖关系的任务保持串行,但**不要**为了让历史记录简单一点就把相互独立的子智能体任务串起来。
|
||
|
||
## Gemini CLI 额外工具
|
||
|
||
以下工具是 Gemini CLI 独有的:
|
||
|
||
| 工具 | 用途 |
|
||
|------|------|
|
||
| `save_memory`(旧版) | 当 `experimental.memoryV2 = false` 时,跨会话持久化事实 |
|
||
| `get_internal_docs` | 查阅 Gemini CLI 自带的文档 |
|
||
| `ask_user` | 向用户提出结构化问题(文本 / 单选 / 多选) |
|
||
| `enter_plan_mode` / `exit_plan_mode` | 进入和退出只读的计划模式 |
|
||
| `update_topic` | 更新当前会话的主题 / 战略意图元数据 |
|
||
| `complete_task` | 表示某个 Gemini 子智能体已完成,并把结果返回给父 agent |
|
||
| `tracker_create_task`、`tracker_update_task`、`tracker_get_task`、`tracker_list_tasks`、`tracker_add_dependency`、`tracker_visualize` | 功能完整的任务跟踪器,支持依赖关系与可视化 |
|
||
| `read_mcp_resource`、`list_mcp_resources` | 访问 MCP 资源 |
|