AI 编程教程中文版
从原理到实战

Gemini CLI 怎么完成一个任务

理解 Gemini CLI 的任务循环:上下文装载、计划、工具调用、观察、迭代和人工确认。

Gemini CLI 完成任务不是"一次回答结束"。更准确的模型是:它在一个 agent loop(代理循环:边推理边调用工具的循环)里不断读取上下文、选择工具、观察结果,再决定下一步。

读懂 agent loop 之后,你就能判断什么时候该让 Gemini CLI 只读、什么时候该让它规划、什么时候才允许它写文件或跑命令。

任务循环

flowchart LR
    A["用户目标"] --> B["读取上下文"]
    B --> C["形成计划"]
    C --> D["选择工具"]
    D --> E["执行或请求确认"]
    E --> F["观察结果"]
    F --> G{"目标完成?"}
    G -- "否" --> C
    G -- "是" --> H["总结和交付"]

这个循环里,模型不是唯一变量。工具权限、上下文质量、项目配置和你的确认策略同样重要。

上下文来自哪里

Gemini CLI 可以从这些地方理解任务:

  • 当前对话。
  • 当前工作目录。
  • GEMINI.md
  • settings.json
  • memory。
  • 文件系统工具读取到的文件。
  • MCP、extensions 或 web 工具返回的外部信息。

上下文越杂,越需要明确“以哪个文件为准”。否则 agent 容易把临时讨论、旧文档和真实源码混在一起。

工具调用意味着什么

工具调用是 Gemini CLI 和普通聊天的核心差异。模型可以不只是“建议你运行命令”,而是请求执行读文件、写文件、shell、web fetch、MCP 等工具。

这带来两个结果:

  • 它可以完成真实工作。
  • 它也可能造成真实副作用。

所以要先区分只读工具、写入工具和外部副作用工具。

三类任务模式

模式Gemini CLI 应该怎么做适合场景
只读解释读取文件、梳理结构、指出风险,不写入新仓库、报错定位前、并发协作
计划优先先给文件范围、步骤、验证和停止条件多文件改动、迁移、发布、安全任务
执行验证小批量修改、看 diff、跑检查、总结影响边界清楚、可回退、能验证的任务

这三种模式不要混用。你说“先分析”,它就不应该改文件;你说“直接执行”,也要先确认任务边界已经足够清楚。

什么时候让它规划

复杂任务先规划,尤其是:

  • 要改多个文件。
  • 要跑迁移或发布。
  • 涉及密钥、账号、账单、远程服务器。
  • 当前仓库有并发编辑。
  • 你还不确定目录职责。

规划阶段的输出应该包括文件范围、验证方式、风险边界和回滚点。

什么时候让它执行

执行适合边界清楚、可验证、失败可恢复的任务:

  • 补一页文档。
  • 改一个小 bug。
  • 运行只读检查。
  • 生成测试草案。
  • 根据官方文档更新配置。

如果一个任务无法说明验收标准,就不应该直接执行。

观察结果为什么重要

Agent loop 的关键不只是“会调用工具”,而是每次调用后会根据结果调整下一步。比如测试失败时,它不应该继续大改,而应该读失败信息、缩小范围、修最小问题,再重新验证。

一个健康的循环通常长这样:

提出假设 -> 读取证据 -> 最小改动 -> 验证 -> 根据结果继续或停止

如果它开始在没有证据的情况下连续改文件,说明任务边界或权限策略需要收紧。

判断循环是否健康

健康的 agent loop 会先拿证据,再做小动作,再验证。异常循环通常有三个信号:不读文件就下结论,测试失败后连续大改,没有说明下一步风险。遇到这三种情况,应该收回写权限,回到只读分析或 Plan mode。

理解这点后,你就能把“模型回答不好”拆成具体问题:上下文不足、工具权限过宽、计划不清、验证缺失,还是模型能力不够。

观察结果怎么用

每次工具调用后,都应该把输出变成下一步依据。read_file 的结果决定是否需要继续读上下文;shell 的 exit code 决定是否继续修改;web fetch 的来源决定事实是否可引用;MCP resource 的内容决定是否允许后续写工具。

如果 agent 忽略工具输出,继续按原计划执行,说明循环已经失真。此时应要求它重新总结证据,再决定下一步,而不是继续追加新需求。

这也是商业级教程必须写验证的原因:没有观察和验证,agent loop 只是更长的聊天。

官方资料

最小可控提示

可以用一句话把循环拉回可控状态:

先说明你已经读取了哪些证据,再给下一步计划,不要在没有证据时修改文件。

这句话能逼 agent 把“观察结果”显式说出来。它答不上来,就说明还没到执行阶段。

如果它只能给结论,不能列出文件路径、命令输出或官方来源,就先让它回到只读证据采集。真实项目里,证据链比回答速度更重要。

下一篇

本页目录