跳到正文

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