把 DSH 塞进一台 ARM 盒子,踩了七个坑
ARM 盒子上跑 DSH:数据目录必须放 U 盘,--host 不能写 0.0.0.0,不加 --trusted-host 插件市场会 403,以及 MemoryMax 的取舍。
记录 DSH 的 profile 分层、Agent Loop 驱动、Team 协作与长会话压缩的设计取舍与踩坑。
ARM 盒子上跑 DSH:数据目录必须放 U 盘,--host 不能写 0.0.0.0,不加 --trusted-host 插件市场会 403,以及 MemoryMax 的取舍。
旁路由形态下 iKuai 按 IP 做下一跳,mihomo 拿到的只有 IP,几十条域名规则静默退化到 MATCH。开启 sniffer 并设置 override-destination,把 SNI 里的域名找回来。
REALITY 的 target 不只是回落目标,它同时是校验客户端时的握手依据。换掉它必须同时换 serverNames,客户端也要同步——三者绑定,缺一不可。
从证书权限、内存 OOM 到同步脚本的硬编码陷阱。这六个坑的共同点是:都不是配置写错了,而是对系统行为理解不到位。
DSH 的配置树从一个空根开始,按顺序叠四层。搞清楚顺序,才能回答「为什么我改了配置没生效」。附三个 dump 命令。
dsh-agent 在没有驱动器之前是惰性的,必须和 dsh-agent-loop 一起挂。还有 followup / steer / inject 三者的真实区别。
Team 把会话变成工作团队,消息和任务状态都持久化——离线的 teammate 恢复后会收到排队消息。这是它和普通 subagent 最大的区别。
被遮蔽的内容仍留在会话日志里,所以回放能确定性地重现同一份压缩后对话。这个设计取舍值得展开说。
dsh-goal 只存储和提供 goal 状态,不启动任何工作。模型工具、/goal 命令、续行驱动器是三个独立包,各管一段。