1. 为什么我要把 Gemini-CLI 的模型换成 DeepSeekGemini-CLI 是 Google 开源的一个命令行 Agent 工具能在终端里读代码、改文件、跑命令、做多步任务体验和 Claude Code 类似。它默认走 Google 的模型通道对国内开发者来说网络和账号两道门槛就把很多人挡在外面了。我真正想要的是保留 Gemini-CLI 那套顺手的交互和工具调用能力但把背后的模型换成能稳定调用的 DeepSeek。DeepSeek 在代码理解、长上下文、工具调用格式上表现不错价格也比很多海外模型友好。问题在于 Gemini-CLI 的模型接入是写死在配置和代码里的直接改源码维护成本高每次升级都要重新 patch。更省事的做法是走一层统一 API 通道把 Gemini-CLI 的请求指向兼容 OpenAI 协议的中转地址再用settings.json把模型名、baseURL、鉴权方式固定下来。这篇就聚焦这个改造场景给你一份可复制的settings.json骨架配合 TaoToken 的统一 Key 和 API 通道让 Gemini-CLI 用 DeepSeek 跑起来。适合已经在用命令行 Agent、想换模型但不想动源码的开发者。整个流程分四步拿 Key、改配置、启动验证、排错。我实测下来一次跑通的关键在于 baseURL 和模型名这两处别写错。2. TaoToken 前置准备统一 Key 与 API 通道TaoToken 在这里的角色是一个兼容 OpenAI 接口规范的统一通道。Gemini-CLI 改造后发出的请求本质上是 OpenAI 格式的 chat/completions 调用TaoToken 负责把它转发到 DeepSeek 并返回结果。你只需要一个 Key、一个 baseURL不用分别去对接每家模型的原生 SDK。先注册并登录控制台地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。登录后在控制台里创建 API Key建议单独建一个给 CLI 用的 Key方便后续按项目排查用量。创建 Key 的入口在控制台的 API Keys 页面https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。点新建复制出来的字符串形如sk-xxxxxxxx只显示一次先存到安全的地方。API 的基础地址是 https://taotoken.net/api 注意这个地址不带任何查询参数配置里直接填它后面由客户端自己拼/v1/chat/completions这类路径。如果你用的是 OpenAI 兼容 SDKbaseURL 通常填到/api这一层就够了。注意Key 不要写进会提交到 Git 的文件里。下面配置里我用环境变量占位实际运行时由 shell 注入。想先确认模型通道是否正常可以打开模型对话页面手动发一条消息测试https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。能正常返回说明 Key 和通道都没问题再去改 CLI 配置。3. 可复制的 settings.json 配置骨架Gemini-CLI 的配置读取逻辑是先看项目目录下的.gemini/settings.json再看用户目录的~/.gemini/settings.json。我建议把模型相关的改动放在用户级配置里项目级只放和仓库相关的覆盖项这样多个项目能共用同一套模型设置。先建目录mkdir -p ~/.gemini然后写入~/.gemini/settings.json骨架如下{ model: { name: deepseek-chat, apiKey: ${TAOTOKEN_API_KEY}, baseUrl: https://taotoken.net/api }, generationConfig: { temperature: 0.2, maxOutputTokens: 8192, topP: 0.95 }, tools: { autoApprove: false, sandbox: false }, context: { maxFiles: 200, respectGitIgnore: true } }几个字段说明一下。model.name填deepseek-chat这是 DeepSeek 的对话模型标识走 OpenAI 兼容协议。model.apiKey用${TAOTOKEN_API_KEY}占位Gemini-CLI 启动时会做环境变量替换。model.baseUrl就是上一步的 API 地址末尾不要带斜杠否则拼接路径时可能出现双斜杠导致 404。generationConfig里temperature给 0.2命令行 Agent 场景要的是稳定和可复现温度太高会让工具调用格式飘。maxOutputTokens给 8192够大多数代码生成和文件分析用。tools.autoApprove默认 false也就是每次改文件、跑命令都要你确认安全等你熟悉了再考虑开自动批准。环境变量在 shell 里注入写进~/.bashrc或~/.zshrcexport TAOTOKEN_API_KEYsk-你的Key改完执行source ~/.zshrc或重开终端。验证变量是否生效echo $TAOTOKEN_API_KEY能打印出 Key 就对了。如果打印为空说明没加载到检查你改的是不是当前 shell 对应的配置文件。提示如果你的 Gemini-CLI 版本用的是GEMINI_API_KEY这类环境变量名可以在配置里把apiKey直接写成${GEMINI_API_KEY}然后 export 同名变量避免改多处。4. 启动验证与成功结果配置写好后进入一个测试目录比如随便建个空文件夹mkdir -p ~/cli-test cd ~/cli-test启动 Gemini-CLIgemini如果启动时报模型相关错误先别急着改配置用非交互模式发一条最简单的请求把问题范围缩小gemini --prompt 用一句话说明这个目录里有什么 --yolo--yolo表示自动批准工具调用测试阶段用它避免频繁确认。正常的话你会看到 CLI 先列出目录内容然后返回一句描述。这说明请求已经通过 TaoToken 通道打到了 DeepSeek并且工具调用链路是通的。再做一个能验证代码能力的测试。在当前目录建一个hello.jsecho console.log(hi) hello.js然后让 CLI 改它gemini --prompt 把 hello.js 改成打印当前时间 --yolo成功的表现是CLI 读取文件、生成修改、写入文件最后你cat hello.js能看到类似console.log(new Date().toISOString())的内容。整个过程不需要你手动干预说明模型能正确理解工具调用格式。我实测下来第一次跑通时最直观的成功信号是 CLI 顶部不再提示模型不可用而是直接进入交互提示符输入问题后能流式返回内容。如果卡在“正在连接”很久多半是 baseUrl 或网络层的问题看下一节。5. 本篇常见报错排查改造过程中最容易踩的坑集中在鉴权、地址、模型名三类。下面按报错现象给排查动作。401 Unauthorized / invalid api keyKey 没注入或写错。先echo $TAOTOKEN_API_KEY确认变量有值再确认配置里占位符拼写和变量名完全一致。如果 Key 是从控制台复制的注意别把首尾空格带进去。重新在 API Keys 页面生成一个再试。404 Not Found / model not foundbaseUrl 或模型名不对。baseUrl 必须是https://taotoken.net/api末尾不带斜杠。模型名确认是deepseek-chat不要写成deepseek或带版本号的后缀。可以用 curl 单独验证通道curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d {model:deepseek-chat,messages:[{role:user,content:ping}]}返回带choices的 JSON 就说明通道和模型名都对问题在 CLI 配置侧。工具调用格式错误 / undefined_tool_name模型返回的 function call 结构没被正确解析。这类问题多出现在温度过高或模型版本不匹配时。把temperature降到 0.1 到 0.2确认模型是deepseek-chat。如果仍偶发属于模型输出稳定性问题重试一次通常能过。配置不生效Gemini-CLI 有项目级和用户级两层配置项目级会覆盖用户级。检查当前目录下有没有.gemini/settings.json里面如果写了旧的 model 字段会盖掉你的用户级配置。删掉或同步修改它。环境变量在 GUI 终端里读不到如果你从 IDE 内置终端启动它可能不加载~/.zshrc。改成在启动命令前临时注入TAOTOKEN_API_KEYsk-xxx gemini或者把 export 写进 IDE 终端配置。注意排错时优先用 curl 验证通道能把“通道问题”和“CLI 配置问题”分开省很多时间。6. 长期使用与接入文档一次跑通之后如果你打算把 DeepSeek 驱动的命令行 Agent 用在日常编码里建议把 Key 管理、配置版本化、用量观察这几件事固定下来。Key 按项目分配置用用户级统一、项目级只做覆盖这样换机器时复制一个~/.gemini/settings.json就能恢复。需要长期跑编码任务或接 Agent 工作流的可以看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。接入细节和参数说明在文档里https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。如果你还想在改配置前先对比不同模型的表现模型对话页面可以直接试https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。最后留一个我常用的习惯每次升级 Gemini-CLI 后先跑一遍gemini --prompt ping --yolo确认模型通道没被新版本的配置读取逻辑影响再进正式项目。这一步花十秒能省掉后面一堆莫名其妙的报错。
企业数字化 ERP 产品动态
相关推荐
2026硬核测评:5款主流AI简历匹配工具横评,TaoToken统一Key接入ATS关键词暴击实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 17:37:38
FLUX 3 Action开源7B世界动作模型,刷新RoboLab-120 SOTA 1. 先把标题拆开看:FLUX 3 Action到底开源了什么东西1.1 "7B WAM RoboLab-120 SOTA"这三个词放在一起有多罕见说实话,刚看到这条消息的时候,我的第一反应是有点不太信。原因很简单:在过去两年里,"开源… · 2026/9/26 17:37:31
数据手套如何破解物理AI手部数据稀缺难题? 前阵子帮一个做轮式机器人的团队调试抓取管线,对方反馈最大的问题不是视觉识别,而是机械臂在拿到物体之后的那几百毫秒——手该合多紧、手指怎么跟随物体轮廓变形。他们手里有大把的RGB-D数据,但缺的恰恰是手部本身的高精度运动数据。后来我们… · 2026/9/26 17:37:31
SpringBoot日志文件配置全指南:从零到生产级 搞Java后端的时间长了,你会发现一个规律:代码写得再漂亮,线上出了问题能救你的往往还是那些平时不起眼的日志文件。我印象最深的一次,凌晨三点被叫起来排查一个订单回调丢失的问题,服务一切正常,接口也返回… · 2026/9/26 18:08:24
AI Agent工程师如何保证交付结果:从模型调用到生产级系统的完整链路 做了两年多的 AI Agent 落地项目,我最大的感触是:调通一个模型接口,可能只需要半天;但把一个 Agent 真正交到用户手上,可能需要两个月。而且后者才是这份工作的本质。很多人一提到“AI Agent 工程师”,第一… · 2026/9/26 18:08:24
C语言分支与循环:if-else/switch与for/while完全指南 学C语言绕不过去的一个坎,就是分支与循环。分支让程序在岔路口自己选路,循环让程序把重复劳动交给机器,这两个东西一旦掌握,你写的代码才算真正有了逻辑,而不是从上到下平铺直叙。不管你是刚接触编程的大学生、自学C语… · 2026/9/26 18:08:24
2000篇公众号文章如何做分类索引?从内容地图到高效检索 "2000篇文章躺在公众号后台是什么体验?找一篇三个月前写的内容,比翻两年前的聊天记录还费劲。后台自带搜索只能按关键词硬匹配,翻历史消息一页页往前倒,鼠标滚轮都滚出火花了,还不一定找得到。"这是一位同行… · 2026/9/26 18:08:24
Coding Agent 太能写?四层约束体系让代码生成可控 1. 为什么“太能写”反而成了 Coding Agent 的头号风险1.1 从“不会写”到“写太多”的认知反转刚开始用 Coding Agent 的那阵子,我跟大多数人一样,最担心的是它“不会写”——怕它理解不了需求,怕它生成的代码跑不起来,怕它连基本… · 2026/9/26 18:08:18
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46