使用说明
deepseek——用于委派的流式CLI
一个小型CLI,允许Claude Code(或任何编排器)将有界的工作块委托给DeepSeek进行流式传输。替换旧的 deepseek-agent-mcp 模式:编排器通过小的可见CLI调用驱动循环,而不是在MCP工具调用内运行黑盒代理循环(超时、隐藏进度、无法从部分故障中恢复)。
为什么是CLI,而不是MCP
此仓库的早期版本是一个MCP服务器 deepseek_agent, deepseek_chat, web_fetch, web_search, web_fetch_raw 工具。代理工具不符合MCP的合同:
| MCP函数调用 | 长代理循环 | |
|---|---|---|
| 时间 | 有界,原子 | 无界 |
| 可见性 | 仅限最终响应 | 需要进展 |
| 恢复 | 重试整个过程 | 恢复中间循环 |
| 流媒体 | 无 | 头等舱 |
将多圈代理循环压缩成功能形状的工具意味着克劳德盲目等待了5分钟以上,运输超时,部分工作丢失。所以我们把它撕了下来。CLI提供了流式传输、可见性和可恢复性,Claude成为了循环,无论如何,它已经在做一个级别了。
有界工具(chat, fetch, search)为了保持一致性,它也变成了CLI子命令。
子指令
deepseek chat single-turn chat (streams)
deepseek fetch URL → cleaned text → deepseek summary (streams)
deepseek fetch-raw URL → cleaned text (no model)
deepseek search Brave + deepseek synthesis (streams)
每个使用子命令的模型都接受:
-m, --model <name> per-subcommand default if omitted
--thinking <true|false> omit → API default = on for v4 models
--reasoning-effort <l|m|h> only meaningful when thinking is on
--max-tokens <n> cap output
--show-thinking stream reasoning_content to stderr
--system <text> (chat only) system prompt
--temperature <n> (chat only) sampling temp
提示可以是位置参数,也可以通过stdin管道传输。
默认值
chat→deepseek-v4-pro(当你明确地问,你想要更好的大脑)fetch,search→deepseek-v4-flash(量大,总结是廉价的工作)- 所有v4型号都有思维模式 默认开启 --通行证
--thinking false选择退出。
定价(每1M代币,缓存未命中):
| 模型 | 输入 | 输出 |
|---|---|---|
| v4专业版 | 1.74美元(2026-05-31促销0.435美元) | 3.48美元(促销0.87美元) |
| v4闪存 | 0.14美元 | 0.28美元 |
| 缓存命中率 | 1/10的输入价格 | -- |
示例
# Single question
deepseek chat "What does this regex match: ^(?=.*[A-Z])(?=.*\d).{8,}$"
# Cheap & fast
deepseek chat "summarize this in one sentence" --thinking false --max-tokens 100 < article.txt
# URL summary
deepseek fetch "https://docs.example.com/v3" "list breaking changes" > breaking.md
# Web research
deepseek search "deepseek v4 thinking parameters" -n 8 > research.md
# See the model's reasoning
deepseek chat "what is 7*8" --show-thinking
# stdout: 56
# stderr: We are asked: "what is 7*8"...
# Override default model
deepseek chat "translate 'hello' to japanese" --model deepseek-v4-flash --thinking false
安装
git clone https://github.com/luongjames8/deepseek-mcp-server.git
cd deepseek-mcp-server
npm install
npm run build
npm link # puts `deepseek` on PATH globally
集 DEEPSEEK_API_KEY 在您的环境中(以及可选 BRAVE_API_KEY 为了 search):
echo 'export DEEPSEEK_API_KEY="sk-..."' >> ~/.bashrc
echo 'export BRAVE_API_KEY="..."' >> ~/.bashrc
或者扔一个 .env 项目根目录中的文件,您的cwd,或 $HOME --CLI会自动从其中任何一个加载。
与Claude Code一起使用
向添加权限规则 ~/.claude/settings.local.json 所以克劳德不会在每次通话时都提示:
{
"permissions": {
"allow": ["Bash(deepseek:*)"]
}
}
然后放下一项技能 ~/.claude/skills/deepseek/SKILL.md (此回购中的 claude-skill/ 是一个起点)告诉克劳德何时委派。Claude根据相关提示阅读技能并调用 deepseek 在适当的时候通过Bash。
配置
每个子命令默认值都存在 config.yaml 在repo根目录、项目cwd或 ~/.config/deepseek-cli/config.yaml:
chat:
default_model: "deepseek-v4-pro"
web_search:
default_model: "deepseek-v4-flash"
max_results: 10
web_fetch:
default_model: "deepseek-v4-flash"
timeout_seconds: 15
max_content_chars: 50000
每个值在每次调用时都可以通过标志进行覆盖。
测试
npm test
25例最严重的病例(API密钥约13秒,无密钥约1秒):
- 单元:参数转换、验证、配置加载
- 烟雾(真实API):生成针对DeepSeek/Brave的实际CLI二进制文件。捕获请求形状回归、中断流、上游模型路由更改。
如果出现以下情况,烟雾测试会自动跳过 DEEPSEEK_API_KEY 未设置。
锋利的边缘
- 遗留别名死亡2026-07-24:
deepseek-chat和deepseek-reasoner将停止解决。使用deepseek-v4-pro或deepseek-v4-flash明确地。默认值已经正确。 - 获取最小内容大小:500个字符。短页面(状态页面、重定向)出错--使用
fetch-raw绕过解析。 - 无交互式提示:每次通话都是一次机会。CLI不保留对话历史记录。如果你想要多回合,编排器会管理它。
- 严格的工具调用(Beta版):未通过旗帜暴露。集
DEEPSEEK_BASE_URL=https://api.deepseek.com/beta使用严格端点。
许可证
麻省理工学院
