Skip to content
FunCoding

Search

Search docs, Skills and MCP

架构与包结构

区分终端界面、核心代理循环和 npm 发布包,理解上下文、工具与回退服务。

This page has not been translated into English yet. The original Chinese version is shown below.

官方仓库主要将用户界面与核心能力分为 packages/cli 和 packages/core。理解这个边界有助于定位问题:终端输入显示与 API/工具调度不是同一层。

包职责与发布形式

包主要职责发布形式与核对依据
@google/gemini-cli用户界面、命令解析及用户可见功能发布页与固定提交配置为 dist/index.js 入口及独立依赖;GitHub 另有 bundle
@google/gemini-cli-coreAPI 请求、认证、缓存及核心执行逻辑普通 Node.js 包,保留自身依赖和 dist 中的转译代码,可供其他项目使用

官方 Package overview 将 npm CLI 描述为单文件 bundle,但发布页明确区分 npm 普通包与 GitHub bundle。核对固定提交的 packages/cli/package.json,其 bin/main 为 dist/index.js、files 为 dist,并列有 core 和其他依赖,支持发布页描述。本页据此区分两种产物;具体发布版本仍以实际包内容为准,也不能由打包形式推断离线能力。

一轮任务中的核心工作

core 根据会话历史、工具定义与 GEMINI.md 等上下文构造请求,向 Gemini API 发出调用,并解析模型提出的工具调用。工具注册与执行机制取得结果后,再把结果交回模型,继续处理任务。

core 同时管理会话状态、模型选择和工具设置。文件发现服务为 @ 引用及相关工具寻找文件;记忆发现服务负责分层加载 GEMINI.md。具体目录与按需加载规则以上下文说明为准。

压缩与可用性回退

长对话可能触发自动历史压缩,用户也可通过 /compress 将当前上下文替换成摘要。core 概览将压缩描述为尽量保留传达的信息;不能因此保证摘要不会遗漏任何细节。需要保存完整会话时,使用会话管理的相应功能。

core 概览还把主模型回退简述为 Pro 限流后切到 Flash。更具体的路由参考说明,是否询问、是否静默及持续范围取决于失败类型和策略;实际流程见路由与回退。

npm Workspaces

仓库根 package.json 用 packages/* 定义 workspaces。在源码根运行 npm install 会安装各工作区依赖并链接内部包;不必把每个包当成完全独立仓库分别安装。

可以从根目录指定工作区脚本,例如:

npm run build --workspace @google/gemini-cli

构建整个源码与调试入口见本地开发。

输出引用

core 文档说明引用默认显示,可由 ui.showCitations 控制。编辑建议的引用会在接受选项之前展示,模型轮次结束时也会显示,重复项会去重并按字母顺序排列。引用展示是输出信息,不代替对模型结论和文件修改的验证。