DeepSeek Harness + cc-connect + 飞书:让手机直接驱动本地 Agent
2026-08-17 | 作者:borong | 分类:AI 编程
一、为什么做这件事
DeepSeek Harness 是 DeepSeek 官方开源的 Agent Harness,核心思路是:
text
Model + Harness = Agent
它负责模型之外的部分:文件系统、Shell、会话、工具、审批、持久化和 Web UI。对我来说,最有价值的是它能把本地 Agent 跑成一个真实可执行的运行底座。
但默认 Web UI 只能在电脑上打开。我希望做到:
- 人在外面,只有手机。
- 打开飞书,发一条消息。
- 本地 DeepSeek Harness 开始执行。
- 结果自动回到飞书。
这篇文章记录我用 cc-connect + ACP 把它跑通的过程。
二、整体架构
text
飞书 Bot
-> cc-connect
-> DeepSeek Harness ACP stdio 服务
-> DeepSeek 模型 + Harness 工具能力
cc-connect 负责飞书和本地 Agent 的桥接,DeepSeek Harness 通过 ACP 协议提供一个自动化入口。ACP 是 Agent Client Protocol,本质是 JSON-RPC over stdio,非常适合让 cc-connect 这类桥接层直接驱动。
三、核心组件
| 组件 | 作用 |
|---|---|
| 飞书机器人 | 手机端消息入口 |
| cc-connect v1.5.0 | 桥接飞书消息到本地 Agent |
cc-connect type = "acp" |
通用 ACP Agent 适配器 |
| DeepSeek Harness | 提供模型调用、Shell、文件系统、会话和审批 |
| DeepSeek API | 负责模型推理 |
四、实施步骤
1. 准备 DeepSeek Harness ACP 配置
Harness 仓库提供了 ACP 自动化示例。我复制出一份独立配置,调整模型和会话目录:
text
deepseek-harness/examples/dsh-cc/acp.cordis.yml
PoC 阶段使用:
- 模型:
deepseek-v4-flash - 权限模式:
workspace-write - 工作区:独立目录
- 会话目录:独立目录
一个重要的坑:配置必须放在 deepseek-harness/examples/ 下。因为 Harness 的 workspace 插件依赖在 examples/node_modules 中,配置放错目录会报:
text
ERR_MODULE_NOT_FOUND: Cannot find package '@deepseek-ai/dsh-llm-deepseek'
2. 配置 cc-connect 项目
在 ~/.cc-connect/config.toml 中新增项目:
toml
[[projects]]
name = "dsh"
admin_from = "*"
[projects.agent]
type = "acp"
[projects.agent.options]
work_dir = "/path/to/dsh-workspace"
cmd = "/path/to/node"
args = [
"/path/to/deepseek-harness/packages/examples/acp-demo/lib/bin.js",
"--config",
"/path/to/deepseek-harness/examples/dsh-cc/acp.cordis.yml"
]
display_name = "DeepSeek Harness"
[projects.agent.options.env]
DEEPSEEK_API_KEY = "your-api-key"
DSH_PERMISSION_MODE = "workspace-write"
3. 创建飞书机器人
cc-connect 提供飞书二维码注册流程:
bash
cc-connect feishu new \
--project dsh \
--qr-image dsh-feishu-qr.png
手机扫码后,cc-connect 会自动把 App ID、App Secret 和平台配置写入项目。
五、验证结果
cc-connect 日志出现:
text
platform ready project=dsh platform=feishu
engine started project=dsh agent=acp platforms=1
message received platform=feishu
session spawned agent_session=...
turn complete response_len=141
飞书会话收到回复:
text
链路确认 OK:shell 正常,工作目录 /path/to/dsh-workspace 可读写(当前为空)。
六、踩坑清单
| 问题 | 原因 | 解决 |
|---|---|---|
| 项目没有平台导致启动失败 | dsh 项目缺少 [[projects.platforms]] |
先扫码创建飞书机器人,再启动 cc-connect |
| systemd 服务反复失败 | 旧的游离进程占用实例锁 | 清理游离进程,只用 systemd 启动 |
| Harness ACP 找不到插件 | ACP 配置放在仓库外部 | 配置放到 deepseek-harness/examples/ 下 |
| SSH 退出后服务停止 | 用户 Linger 未开启 | 执行 loginctl enable-linger <user> |
七、安全建议
- Harness 能执行 Shell,不能无脑开放所有权限。
- 建议使用
workspace-write,只允许在工作区内写文件。 - Web UI 不要直接暴露到公网。
- 飞书机器人和 API Key 要严格保密。
- 需要更宽操作时,在飞书里逐项审批,不要直接
danger-full-access。
八、下一步
- 在飞书里测试文件创建、代码修改等工具调用。
- 对比
deepseek-v4-flash和deepseek-v4-pro的效果。 - 如果需要长期多轮会话,可以继续评估 Harness 的 Python SDK / JSON-RPC 入口。
这套链路的意义在于:Agent 不一定要被绑在电脑前,手机上的飞书消息也可以成为它的入口。