Seam
插座、插头、台灯
一个 seam 必须有三种角色:定义接口、实现接口、使用接口。换提供方,消费方不用改。
三角缺一不可
插座、插头、台灯要凑齐。只有插座不算能力。
Service Definition 声明 ctx 键;Provider 实现;Consumer 使用。扩展插件依赖定义,绝不依赖具体提供方。
执行世界成对搬家
手和脚必须去同一间房。
fs 与 subprocess 共享执行世界。指向 E2B 时 Bash、PTY、LSP 一起走,无需提供方专用 fork。
围栏不是搬家
婴儿门 ≠ 把游戏室搬到森林小屋。
ctx.sandbox.confine 包装本机 argv。远程沙箱是另一对 fs/subprocess 提供方。
换一块,整座城跟着变
这就是 seam 存在的理由。
工具 schema 对模型保持稳定。policy 挂在 fs/*、tools/* 事件上,不必 import 循环。
点一个接头
定义
插座长什么样
@deepseek-ai/dsh-llm · LlmRuntime
换老师,不必换教室。
提供方
插在哪栋楼
dsh-llm-deepseek
官方 DeepSeek 适配器
dsh-llm-pi-ai
多提供方,settings 里唤醒
dsh-llm-replay
用录制日志回放,测试不需要密钥
消费方
台灯不用改
dsh-agent-loop
llm/stream
dsh-compaction-basic
摘要时再调一次模型
循环只认识 GenerateOptions 和 StreamChunk。换适配器不会改 session 日志形状。
搬家演示:家 ↔ 云上小屋
不动的
- agent-loop
- session 日志
- llm 调用
- skills
家里的执行世界
- fs-local / fs-sandbox
- subprocess-local
- sandbox-local 围栏
跟着走、不用改的工具
- tool-bash / bash-sandbox
- terminal-bash(PTY)
- lsp-stdio
- tool-fs