用DeepSeek Harness实现免安装的远程Agent开发

总有些机器,你除了能SSH上去之外,啥都连不上。他可能在内部网络环境里,codex/claude app的ssh无法工作,agent软件如codex CLI和codebuddy无法下载,而且可能是个生命周期不稳定、定时回收的容器。当然,大部分人需要连接的机器都可以通过codex/claude/cursor的ssh连接上;但是当你需要连接的机器不幸地处于诡异的网络环境内的时候,这就是一个极其烦人的问题。

在这种受限场景下,目标机器无法直接访问外部公共网络,更无法反向连接开发者的本地端口。现有的远程agent依赖在远端宿主机部署常驻进程,面对随时可能销毁的临时容器,每次都需要耗费大量时间重新初始化环境,甚至因缺少系统权限导致命令终止,或者因为远程网络环境的限制而无法将Agent软件本体安装在远程机器上,或者无法在远程机器上请求LLM的API。

好在DeepSeek Harness(dsh)“一切皆插件”的设计给我们提供了将本地Agent定制为远程Agent的能力。通过ssh这条唯一的管道,插件可以在完全避免在远程机器安装dsh、在远程机器上调用LLM的API的前提下,完成在远程机器上的开发工作。

插件

这一套插件的设计目标,是在完全不改动远端环境、不依赖远端对外联网的前提下,让开发者与智能体能够顺畅协作完成开发。

整个架构的核心原则是保持智能体完全运行在本地。Agent 的进程、会话状态、交互记录与上下文记忆均完整保留在本地运行环境中,所有LLM的推理请求同样完全由本地环境发起。远端机器不需要具备访问模型服务接口的网络通路,也无需安装或运行任何智能体相关的进程。即便远端容器遭遇销毁或随时重置,本地的思考过程、对话历史与任务记录均不受影响,只需要有一个能持久化数据的盘,通过新的连接接入新创建的容器即可无缝衔接工作。

在远端不保留常驻进程的条件下,系统通过类似RPC的通信设计实现了完整的远端文件增删查改与命令执行(CRUD+X)。

为了支撑耗时较长的构建、测试与训练任务,系统设计了前台超时自动升级的后台任务模型。

在任务管理方面:

远程模式

远程模式进一步通过对环境的物理隔离与提示词规范智能体的行为。

得益于dsh“一切皆插件”的理念,所有内置的read/bash等工具都是可以被移除的。远程模式在初始化时就移除了所有针对本地文件系统的操作工具以及本地命令执行工具,从而根绝了模型将本地文件系统和远程文件系统混淆的问题,从代码层面确保智能体所有的代码探索、文件编辑与验证动作只能定向作用于远程目标机器。

与此同时,为了防范模型在单次调用中生成脆弱且难以维护的超长多行内联指令,系统内置了针对执行调用的行数与字符检测规则。针对现有的大部分国产LLM输出进行一些分析之后,可以发现:

因此,我设计了以下规则:

配合提示词引导,智能体会主动将多步骤的复杂逻辑编写为独立的脚本文件并保存至远端,再通过执行工具触发运行,确保操作步骤清晰可查。

大致结构