在 Windows 上本地运行一个 AI 编程代理,听起来很简单:装个 Node.js,跑一条命令,浏览器里就能跟模型对话。但真正让人犹豫的往往是另一件事——它到底能碰我电脑上的哪些文件?它会改我的代码吗?它调用的工具会不会执行危险操作?
DeepSeek Harness 正是这类需要认真对待权限的工具。它是 DeepSeek 推出的开源代理框架,目前仍处于开发者预览阶段,通过插件化的方式把工具、技能、会话甚至其他编程代理组合在一起。本地运行确实降低了使用门槛,但“本地”两个字并不等于“安全”。这篇文章就从安装开始,一步步说清楚工作区、权限配置和一次可回滚的验证流程。
安装 DeepSeek Harness:一条命令启动本地 Web 界面
DeepSeek Harness 以 npm 包形式发布,采用 MIT 许可证,不需要申请内测资格。前提是电脑上已经装好 Node.js。在 Windows 上,直接从 Node.js 官网下载安装包即可,安装完成后打开 PowerShell 或命令提示符。
启动命令很简单:
npx @deepseek-ai/dsh web
第一次运行会从 npm 拉取包并启动本地 Web 界面。终端会输出一个本地访问地址,在浏览器中打开就能进入控制台。需要提醒的是,DeepSeek Harness 目前是开发者预览版,版本迭代很快,官方 README 使用的是动态命令。如果你需要可复现的安装,建议查看 npm 上的实际发布版本并固定版本号,官方快速上手页面 也会给出最新的启动方式。
这里有一个容易忽略的细节:dsh 进程默认把“调用命令时所在的目录”当作文件系统位置,但 Web 界面本身并不会自动选中任何工作区,需要你手动添加。也就是说,启动命令所在的目录,和你真正允许代理访问的目录,是两回事。
配置模型与 API Key:看懂路由状态
进入 Web 界面后,第一件事是配置模型。在设置面板的模型部分,可以看到各个模型路由的状态。手动声明的路由会带有 Custom 徽章,而每个路由旁边的状态点是最直观的健康检查:绿色表示 Harness 已经为这条路由解析到了可用的凭据,红色则表示没有解析成功。
对于大多数用户,最简单的方式是添加 DeepSeek 官方的 API Key,在设置面板中找到对应位置填入即可。如果你使用的是其他兼容 OpenAI 协议的服务,也可以手动声明自定义路由,用密钥、端点和必要的请求头来描述它。
配置完成后,回到模型路由页面确认状态点变绿,再开始下一步。这里要特别提醒:本地运行 DeepSeek Harness,不代表你的数据只停留在本机。当代理调用云端模型 API 时,对话内容、文件内容等数据会通过网络发送给模型服务商。如果你处理的是敏感代码或私人文档,这一点必须提前想清楚。
创建工作区:理解权限的真正边界
工作区是 DeepSeek Harness 里非常核心的概念。它决定了代理默认能在哪个目录下读写文件。在 Web 界面中,你可以添加一个工作区,把它指向一个专门用于测试的目录。
但请记住一个关键警告:选择了工作区,并不等于给代理套上了操作系统级别的沙箱。工作区更多是一个逻辑上的访问范围,它不能替代文件系统权限、杀毒软件或虚拟机隔离。如果你希望代理完全无法触碰工作区以外的文件,你需要依赖操作系统层面的权限设置,或者干脆把测试目录放在一个独立的、低权限的环境里。
对于第一次试用,建议这样做:
- 新建一个专门的测试目录,不要直接指向你的项目代码或文档目录
- 在这个目录里放几个无敏感信息的测试文件
- 把工作区指向这个目录
- 后续所有验证任务都在这个目录里进行
这样即使出现意外,损失也控制在一个可以随时删除的目录范围内。
区分四类权限:模型能力、文件读写、代码修改与工具调用
DeepSeek Harness 的权限体系,可以粗略分成四个层面。理解它们的区别,是安全使用的关键。
首先是模型能力。你配置的模型决定了代理的“智力上限”——它能处理多复杂的推理、是否支持视觉输入、是否擅长代码生成。这部分由模型路由决定,和文件系统无关。
其次是文件读写。这决定了代理能读取哪些文件、能在哪里创建或修改文件。工作区就是这一层的主要边界。你需要确认:代理读取的文件是否都在工作区内?它写出的文件是否也落在工作区内?
第三是代码修改。这是比文件读写更具体的一类权限,涉及代理是否被允许修改代码文件、执行代码相关的操作。即便允许文件读写,你也可以选择在具体任务中不让代理改动代码,只让它分析和报告。
第四是工具调用。DeepSeek Harness 的插件化架构意味着工具、技能、甚至其他编程代理都可以被挂载进来。技能可以按层级放置:放在用户级目录的技能对所有项目生效,放在项目级目录的技能只对当前项目生效且优先级更高。这里的“项目”指的是最近的包含 .git 的祖先目录,而不是任意文件夹。工具调用的权限越宽,代理能做的事就越多,出问题的面也就越大。
在实际使用中,这四个层面不是孤立的。一个允许文件读写、又允许工具调用的代理,理论上可以通过工具执行更多操作。所以配置权限时,建议遵循最小化原则:先只开放当前任务必需的权限,跑通之后再逐步放开。
设计一次可回滚的小型验证任务
配置完成之后,不要直接拿真实项目试水。先设计一个可以在几分钟内完成、并且随时可以回滚的小任务,用来验证权限配置是否符合预期。
一个比较稳妥的验证流程是这样的:
- 在测试工作区里放一个简单的文本文件,内容随意,比如一份商品清单或一段产品说明。
- 先给代理一个只读任务,比如“总结这个文件的主要内容”。观察它是否只读取了工作区内的文件,输出是否合理。
- 检查会话记录,确认这次任务只做了你要求的事,没有触发任何写入操作。
- 再给一个受控的写入任务,比如“在这个文件末尾追加一段摘要”。执行后打开文件,确认内容确实被修改,且修改符合预期。
- 如果代理被允许调用工具,再安排一个简单的工具调用任务,观察工具执行的过程和结果。
- 验证结束后,直接删除整个测试目录。因为所有操作都被限制在工作区内,删除目录就等于完成了回滚。
每一步执行前后,都值得停下来检查一遍:代理访问了哪些文件?有没有尝试访问工作区以外的路径?有没有执行你没有预期的操作?这些检查看起来繁琐,但正是它们帮你建立对权限边界的直观感受。
常见风险与使用建议
最后总结几个使用 DeepSeek Harness 时容易踩的坑。
第一,别把预览版当生产工具。DeepSeek Harness 目前是开发者预览版,GitHub 上的发布候选版本被标记为 Pre-release,功能和行为都可能变化。用于本地学习、实验和原型验证没问题,但不要直接把它接入生产流程。
第二,不要假设“本地运行 = 代码完全本地”。代理调用云端模型时,数据会经过网络传输。对数据敏感的场景,要么使用本地模型,要么提前评估数据外发的风险。
第三,工作区不等于沙箱。选择工作区只是告诉代理“默认在这里工作”,它不构成操作系统级的隔离。需要强隔离时,应该用虚拟机、容器或受限系统账户。
第四,权限从紧到松。第一次使用,先只给只读任务,确认行为符合预期后,再逐步开放写入、代码修改和工具调用。每次放开一类权限,都跑一轮验证任务。
第五,留意模型路由状态。每次启动后,花几秒钟看一眼设置面板里的路由状态点。绿色表示凭据正常,红色说明配置有问题,这时候代理可能无法按预期工作。
把这些习惯建立起来之后,DeepSeek Harness 就可以成为一个相当顺手的本地实验工具。从最小的权限开始,在可控的目录里验证,逐步建立信任——这比一开始就给它全部权限要稳妥得多。
















































想看看工具调用的具体配置
工具调用得看插件文档配置
权限最小化原则很关键
第一次用建议先做只读测试
工作区不等于沙箱这点很重要
沙箱还得靠系统权限控制
本地运行也要注意数据外泄风险