在您的智能体工作流中使用 DeepSeek TUI CLI (v0.8.16) 作为代码助手。本技能教导 OpenClaw / Hermes 智能体如何通过两种模式将编程任务委派给 DeepSeek。
deepseek (npm 封装) v0.8.16
二进制版本: v0.8.16
代码仓库: https://github.com/Hmbown/DeepSeek-TUI.git
安装方式:
brew install hmbown/tap/deepseek-tuinpm install -g deepseek-tuiDeepSeek TUI 具有两种本质不同的模式,每种模式具有不同的能力:
| 模式 | 命令 | 文件系统访问 | 工具调用 | 使用场景 |
|---|---|---|---|---|
| ------ | --------- | ------------------- | ------------- | ---------- |
| 无头模式 (Headless) | deepseek exec | ❌ 无 | ❌ 无法执行工具 | 从另一个智能体委派代码生成任务 |
| 交互模式 (Interactive) | deepseek run | ✅ 有 (通过工具) | ✅ 全工具调用 | 直接编程、文件编辑、调试 |
deepseek exec — 无头模式(智能体委派)deepseek exec 以纯文本输入/输出模式调用 DeepSeek API。模型可能会在 思维链 (CoT) 输出中生成工具调用语法(例如 ),但这些永远不会被实际执行 —— 它们仅作为模型推理文本的一部分显示。没有文件系统访问权限,也没有工具执行能力。
┌─────────────────────────────────────┐
│ 您的智能体 (Hermes/OpenClaw) │
│ ┌───────────────────────────────┐ │
│ │ 1. 读取文件 (理解) │ │
│ │ 2. 构建带有上下文的提示词 │ │
│ │ 3. deepseek exec "<prompt>" │ │
│ │ 4. 验证输出 │ │
│ │ 5. 应用更改 │ │
│ └───────────────────────────────┘ │
└─────────────────────────────────────┘
您必须在提示词中提供所有文件上下文 —— DeepSeek exec 模式对文件系统完全处于“盲视”状态。
deepseek run — 交互模式(直接编程)deepseek run 启动具有实际工具调用能力的完整 TUI:
list_files — 浏览目录read_file — 读取文件内容write_file / edit_file — 修改文件terminal / bash — 执行 shell 命令grep / search — 搜索代码库在工作区目录中调用时,它可以读取整个项目。适用于您希望 DeepSeek 自主探索、编辑和构建的直接编程会话。
在调用 DeepSeek 之前,先由您自己读取所有相关文件。您需要了解:
DeepSeek exec 无法看到您的文件系统,因此 您必须在提示词中提供上下文。
不要倾倒整个文件。按以下结构组织您的提示词:
[关于项目的一行背景说明]
[正在使用的组件接口]
[现有使用模式的示例]
[编号的修改清单 —— 具体且可操作]
[重要的约束条件]
# 选项 A:从文件管道输入
deepseek exec "$(cat /path/to/prompt.txt)" 2>&1
# 选项 B:内联输入(较短的提示词)
deepseek exec "在首页添加一个显示 '点我' 的蓝色按钮。" 2>&1
DeepSeek 的无头模式可能会在响应中显示工具调用,将其作为模拟推理文本 —— 请忽略这些。实际输出是文本内容。需注意以下情况:
| 行为 | 采取行动 |
|---|---|
| ---------- | -------- |
| ✓ 返回正确的代码片段 | 从 markdown 块中提取并应用 |
| ✗ 重构/重写整个文件 | 丢弃,仅提取您需要的片段 |
| ✗ 幻觉出不存在的接口或 API | 根据您自己的代码库上下文进行交叉检查 |
✗ 显示 块 | 这些是模拟推理,而非真正的工具执行 |
使用针对性的文件编辑工具(如 patch 或 write_file),仅应用已确认的片段。永远不要盲目信任 exec 模式输出的完整文件内容。
cd /path/to/project
npm run build # 或 npx next build, cargo build 等
当您希望 DeepSeek 直接探索和编辑文件时:
cd /path/to/project
deepseek run
或者直接传递目标:
deepseek run "添加一个类似于悬赏页面的 CommandBlock 到技能页面"
在此模式下,DeepSeek 拥有完整的工具访问权限,可以自主读取/写入文件、搜索并执行命令。这就是用户发现的“它会读取当前工作区中的所有文件”的模式。
exec,自主用 run —— 如果您拥有自己的读取文件工具并希望进行严格控制,请使用 exec。如果您希望 DeepSeek 自行探索并解决问题,请使用 run。patch(查找并替换)而非重写整个文件。 块是模拟推理,而非实际执行。在一个真实的会话中,DeepSeek exec 生成了代码,为涌现科学 (Emergence Science) 的技能详情页添加了 CommandBlock 安装组件:
CommandBlock 模式。CommandBlock 接口、现有使用示例、精确的插入指令。deepseek exec → 获得了确认的导入和 JSX 片段(输出中包含模拟工具调用)。patch 应用更改,使用 npx next build 构建 → ✅ 顺利通过。| 问题 | 解决方法 |
|---|---|
| --------- | ----- |
| DeepSeek 返回空值 (exec) | 检查 API key 和网络:deepseek exec "hello" |
输出显示 块 | 这些是模拟推理,非实际执行 —— 视为文本输出 |
| 输出被截断 | 将任务拆分为更小的提示词 |
| 幻觉出的代码结构 | 对文件路径和现有代码进行更明确的说明 |
| 运行太慢 | DeepSeek V4 很快(每次调用约 2-5 秒);响应过长可能表明提示词写得不好 |
| 找不到文件(交互模式) | 确保在 deepseek run 之前已 cd 进入正确的工作区 |
共 1 个版本