站在电车里, 我在手机上改代码

💡 原文中文,约3400字,阅读约需9分钟。
📝

内容提要

作者在电车上用手机远程指挥服务器上的 deepseek harness 改代码,任务自动完成。dsh 高度插件化、易定制,可低成本改造行为。作者用 Oracle 免费服务器、Ansible 管理、ZeroTier 内网访问、独立用户与 GitHub App 限权,兼顾安全与隔离,实现随时随地派发任务、LLM 在服务器端持续干活。

🔎

延伸解读

为什么选择服务器而非手机本地运行

作者指出,让dsh直接在手机上运行没有意义,因为dsh常需执行编译、测试或系统命令,而iPhone沙盒难以做到。因此将dsh部署在服务器上,手机仅作为远程控制端。这样既绕开移动端限制,又让LLM在服务器端持续工作,不依赖客户端连接。

网络层与应用层的双重安全设计

作者用ZeroTier构建内网,dsh只监听本机,入口层限制仅ZeroTier网段设备可访问,避免公网暴露。应用层上,dsh启动时会输出带token的URL,无token访问被视为非法。这种组合在外部访问层面提供了较完整的防护,同时保留了内网IP加域名的便利。

系统隔离与GitHub权限最小化

作者将dsh进程放在不能登录的独立用户下,并利用用户隔离限制GitHub权限。通过GitHub App仅授予特定仓库的pull/push等有限权限,再让dsh用户按需获取一小时生命周期的token。即使dsh用户获得App全部权限,能造成的影响也相对有限,降低了LLM失控的风险。

dsh插件化带来的低成本定制

dsh高度插件化,作者安装的版本包含28个会话层插件和165个核心层插件,功能均可替换。作者举例,在dsh中通过几个prompt就实现了主界面单一聊天窗口、由LLM判断意图并启用子agent在合适目录工作的功能;而类似需求在Claude Code中可能需将其包装。这种可定制性显著降低了改造行为的成本。

❓

Q&A

deepseek harness(dsh)是什么?它和LLM是什么关系?

dsh是deepseek推出的harness(挽具),即用来让人更好地和LLM协作的外围工具。它负责读取代码、发送提示词、执行命令等,这些不属于LLM本身,但对LLM发挥效用至关重要。

为什么作者认为dsh比Claude Code更值得看好?

因为dsh高度插件化,非常hackable。一个安装包含28个会话层面插件和165个核心层面插件,几乎所有功能都可替换,能以极低成本定制行为。例如作者用几个prompt就实现了在Claude Code中需要包装才能实现的功能。

如何在手机上远程使用dsh改代码?整体方案是什么?

让dsh运行在远程服务器上,手机通过ZeroTier内网访问。服务器用Oracle Cloud免费实例,Ansible管理配置,dsh进程以独立用户运行,并通过GitHub App限制权限。这样手机只需浏览器即可派发任务,LLM在服务器端持续工作。

如何保证远程dsh服务的安全性?

网络层面使用ZeroTier,dsh只监听本机,入口层限制仅ZeroTier网段可访问;应用层面dsh启动时输出带token的URL,无token访问视为非法。系统层面将dsh进程限制在不能登录的独立用户下,并用GitHub App限制其代码仓库权限。

为什么选择Oracle Cloud免费服务器来跑dsh?

因为免费,配置为4核24G内存100G硬盘,位于悉尼,访问速度不错,对免费服务而言物超所值。注册时需选择Pay as you go,否则可能排不到空闲机器。

如何限制dsh在服务器上对GitHub的权限?

使用GitHub App,只授予特定仓库的有限权限(如pull/push),将认证密钥交给服务器上另一个用户,通过用户隔离让dsh用户按需获取一小时生命周期的token,从而无法执行范围外操作。

🏷️

标签

➡️

继续阅读