Google 开源 Gemini CLI:用自然语言操作命令行

大家好, 这里是 CodeAgent, 今天来简单了解下 Gemini Cli


📌 Gemini Cli 是什么

想象一下,你可以对终端说:"帮我找到所有 JavaScript 文件并按大小排序",然后系统自动执行:

find . -name "*.js" -exec ls -lh {} + | sort -k5 -h

Gemini Cli 就是这样一个工具, 终端操作,并且展示步骤的命令行工具.

安装步骤直接根据:

https://github.com/google-gemini/gemini-cli

安装完成后, 询问下 "weather about Beijing, China"

同时可以看到, cli 也支持 mcp

📌 架构设计

原文:
https://github.com/google-gemini/gemini-cli/blob/main/docs/architecture.md

gemini-cli 做了三层设计

  • Cli :用户界面和交互
  • Core:AI通信和工具调度
  • Tools:具体功能执行

为什么这么设计?

  • 模块职责分明:Cli 前端 专注交互体验,Core 专注逻辑处理,工具模块 拓展能力。
  • 确保安全性:对写操作和执行命令进行确认,避免误操作。
  • 易于扩展:新增工具只需在 Core 注册即可,无需改动前端或模型调用逻辑。

📌 工具链

工具(Tools)API 是Gemini Cli 中一种插件机制,模型通过 FunctionCall 请求工具执行具体任务,Core 接收并触发对应 handler,然后将结果再反馈回模型,实现推理 + 工具执行。

Tools 执行流程如下:

User Prompt
   ↓
1. Model Request
   - 模型根据用户 prompt 和 tool schemas,决定使用某个工具
   - 返回一个 FunctionCall,包含 tool 名和参数
   ↓
2. Core Receives Request
   - 核心接收并解析这个 FunctionCall
   ↓
3. Tool Retrieval
   - 在 ToolRegistry 中查找目标工具
   ↓
4. Parameter Validation
   - 调用工具的 validateToolParams() 方法进行参数校验
   ↓
5. Confirmation (if needed)
   - 调用 shouldConfirmExecute() 判断是否需要用户确认
   - 如果需要确认:
     - Core 把确认详情发回 CLI → CLI 提示用户确认
     - 用户选择(如继续、取消)反馈回 Core
   ↓
6. Execution
   - 若参数合法且已确认(或无需确认)
   - 调用工具的 execute() 方法,附带 AbortSignal(支持取消)
   ↓
7. Result Processing
   - Core 接收到工具执行返回的 ToolResult
   ↓
8. Response to Model
   - 将 ToolResult 中的 llmContent 打包为 FunctionResponse
   - 返回给模型用于后续生成
   ↓
9. Display to User
   - 将 ToolResult 中的 returnDisplay 返回给 CLI
   - 呈现给用户查看工具执行的实际效果


同时在 packages/core/src/tools 下也提供了内置的几类 tools

  • File System Tools
  • Execution Tools
  • Web Tools
  • Memory Tools

这些工具都继承自 BaseTool,并实现了其特定功能所需的方法。


更多Tools 的可以直达

https://github.com/google-gemini/gemini-cli/blob/HEAD/docs/core/tools-api.md

📌 文档

Gemini Cli 的文档都在仓库下,以及 G 家的博客还有codelabs:

https://github.com/google-gemini/gemini-cli/tree/main/docs

https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/

https://codelabs.developers.google.com/codelabs/codelabs


💬 好了,今天就到这里,周末愉快.

欢迎关注我的公众号 CodeAgent

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值