关于 Seamless
Seamless 是面向多 AI 编码 Agent 的本地优先记忆与协作系统,包含 Go 守护进程和无头命令行工具。它以 Markdown 文件保存持久知识,并结合记忆检索、任务认领、计划和研究试验。
主要功能
- 01以本地 Markdown 文件保存记忆
- 02通过混合检索查找记忆
- 03通过依赖感知任务队列协调工作
- 04使用租约认领任务
- 05创建共享计划和研究试验
适用场景
- 01在多个 Agent 间共享持久项目知识
- 02分派待办工作并避免重复认领
- 03跨编码会话继续执行计划
- 04将项目记忆保存在本地设备
MCP 相关
`seamlessd` 守护进程通过 MCP 向客户端提供记忆与协作能力。Seamless 支持 Claude Code、Codex CLI 和其他 MCP 客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Seamless
AI 编码 Agent 每次会话都会重新发现相同的限制,因为它学到的一切都会随上下文窗口一起消失。让两个 Agent 处理同一份待办清单,它们会选中相同的步骤并重复完成。而那些承诺解决这一问题的产品,却把项目记忆存放在别人的数据库中。
Seamless 是一款本地优先的 AI 编码 Agent 记忆与协作基础设施。它可与 Claude Code、Codex CLI 和任何 MCP 客户端配合使用,也可用于 Claude 桌面应用中的对话,处理无需编写代码的长期工作:参见 Claude 应用中的 Seamless。
它为一组 Agent 提供共享、持久的记忆,以及避免工作冲突的协作方式:具有替代生命周期的记忆、混合检索、了解依赖关系并支持租约认领的任务队列、已捕获的计划,以及研究试验。持久知识以 markdown 文件的形式存储在磁盘上;seamlessd 守护进程负责索引、通过 MCP 提供服务并呈现 Web 控制台,配套的 seam CLI 则为无头 Agent 提供直接接口。
完整文档:thereisnospoon.org/docs/
· 网站:thereisnospoon.org(源码位于
docs/)
由 Arctop 开发并发布。采用 MIT 许可证。
设计原则
- 为一组 Agent 而非单个 Agent 打造。 提供真正的协作原语:了解依赖关系的就绪队列、原子化的租约任务认领,以及由笔记和步骤组成的计划,让 Agent 分工协作,而不是相互冲突。
- 文件是事实来源。 每条记忆和笔记都是存放在
~/.seamless下、带有 YAML frontmatter 的 markdown 文件,可使用 git 比较差异、搜索和手动编辑。SQLite 为这些文件建立索引,并存储会话、任务、试验和事件等运行状态,因此应备份整个数据目录。 - 整理只提出建议,由人决定如何处理。 每次整理流程——从去重和归档,到标记无用内容和知识缺口——都只会提出建议;应用更改是一项明确操作。替代机制会保留来源记录,不会悄无声息地改写内容。
- 小巧、独立的运行时。 静态 Go 守护进程和 CLI,无 CGO,使用纯 Go SQLite,无需 Node、独立向量引擎或云账户。
对比
Agent 记忆领域大致分为几个常见类别。按类别对比,因为类别不会过时:
| Seamless | 云端记忆 API | 内置 Agent 记忆 | 知识图谱服务 | |
|---|---|---|---|---|
| 存储格式 | 磁盘上的 markdown 文件;SQLite 为它们建立索引并存储运行状态 | 通过 API 密钥访问其数据库 | 产品内部由供应商管理的存储 | 图数据库,通常需要单独的服务 |
| 运行位置 | 你的设备,仅限 localhost | 供应商的云端 | 供应商的产品 | 你的设备或供应商的设备 |
| 是否需要账户 | 否 | 是 | 需要供应商账户 | 通常不需要 |
| 多 Agent 协作 | 任务队列、租约认领、共享计划 | 无 | 无——一个 Agent,一个存储 | 至多支持共享读取 |
| 遗忘策略 | 保留来源记录的替代机制;整理流程提出建议,由人决定如何处理 | 你无法控制的自动摘要 | 由供应商定义 | 手动处理 |
| 运行时 | 静态 Go 守护进程和 CLI | 通过 HTTP SDK 访问其服务 | 无(内置) | Node 或 Python,以及数据库 |
如需查看包含产品名称和实际依据的版本,请参见 完整对比。
真实会话记录
四组真实、未经编辑的 Claude Code 会话——提示词相同、代码库相同,分别使用和不使用 Seamless:
- 冷启动——一个会话从注入的简报中接续昨天的计划;另一个则从
TODO重新推导工作,并重新引入了项目此前已经修复过的 bug。 - 违反约束——安全扫描器要求设置
SameSite=Strict,但团队早已发现这会导致外部链接登录失效。一个会话仍然引入了回归问题;另一个则拒绝执行,并引用记录在案的约束。 - 令牌安全——被要求持久化刷新令牌后,一个 Agent 将内存映射表镜像到存储原始令牌的 SQL 列中;另一个先读取记录在案的规则,只存储 SHA-256 哈希值。
- 任务冲突——两个正在运行的 Agent 同时争抢同一个计划步骤。一个成功认领;另一个收到拒绝,并获知持有者的名称,随后转向下一个可执行步骤。
Seamless 不是什么
它不是托管式团队知识库,不是 RAG 框架,也不是基准测试赢家:它是为单个所有者机器上的一组 Agent 提供的记忆和协作工具。
快速开始
curl -fsSL https://thereisnospoon.org/install | sh
在 Windows 上,使用 PowerShell 执行相同的安装:
irm https://thereisnospoon.org/install.ps1 | iex
安装就这些。它只需要 curl 和 tar,没有其他依赖——不需要 Go、CGO 工具链、数据库或 Node。它会为你的平台(macOS、Linux 和 Windows;amd64 和 arm64)获取经过校验和验证的发行版归档,将 seamlessd 和 seam 安装到 ~/.local/bin,生成 bearer 密钥,为检测到的 Claude Code/Codex 本地宿主安装钩子、MCP 和技能,并将守护进程作为每用户服务运行——在 macOS 上使用 launchd,在 Linux 上使用 systemd --user,在 Windows 上使用登录时触发的计划任务。它会自动保持最新:从 v0.7.0 起,它会在新版本发布一天后,且没有 Agent 正在使用时自行安装该版本——安装前会备份,若新版本无法启动则会回滚。若要立即更新,请运行 seamlessd update(--check 会报告已安装版本与最新版本):你的配置和 ~/.seamless 都会保留。
尚处早期,频繁发布。 Seamless 仍处于开发早期阶段,经常发布改进和 bug 修复版本。通过安装程序安装的版本从 v0.7.0 起会自动更新;v0.6.0 或更早版本请运行一次
seamlessd update。请参阅 更新与卸载。
(为什么叫 seam?这个 CLI 沿用了 Seam v1 的简称。Seam 是一个已停用的私有前身项目,Seamless 从头重建,旨在取代它。)
然后,只需在 Git 仓库中启动所选客户端。无需创建项目,也无需注册代码库:会话启动钩子会将当前工作目录解析到其 Git 根目录,根据代码库目录名生成项目,并立即记录映射,因此 Agent 无需在每次调用时传递项目范围信息,也能继承该范围。只有在需要覆盖自动推导出的 slug 时,才使用 seamlessd map-repo --path ~/code/myrepo --project myrepo。
它是一个 shell 脚本,而将陌生人的脚本通过管道传入 shell 前,理应先读一读。更喜欢逐个安装组件——Homebrew、go install、预构建归档——或者想了解可覆盖的选项?所有方式都列在安装与部署,而快速入门会根据你的操作系统和客户端定制每个步骤。
接下来:快速入门 · Claude Code 设置 · Claude 应用聊天设置 · Codex 本地设置 · 安装与部署
文档
完整文档见
thereisnospoon.org/docs/(源文件位于
docs-src/,由 cmd/docsgen 生成)。
| 概念 | 记忆与笔记、会话与简报、回忆、任务与计划、项目与范围、园丁 |
| 指南 | 集成 Agent、编写可被回忆的记忆、协调一组 Agent、故障排查 |
| 参考 | 每个 MCP 工具、两个 CLI、所有配置项、钩子和文件格式 |
| 内部机制 | 架构、贡献指南、领域不变量 |
本 README 有意保持简短。任何可能与代码脱节的内容——工具数量、配置项、CLI 标志——都放在文档站点中;其中的参考页面由代码本身生成,如果内容过时,make check 会失败。
开发
make build # ./bin/seamlessd + ./bin/seam
make test # unit tests
make test-race # unit tests under the race detector
make bench # hot-path benchmarks (recall, briefing, matcher, event fan-out)
make lint # golangci-lint
make check # the full gate: build + vet + cross-check + fmt-check +
# docs-check + installer-check + site-check + lint +
# vulncheck + test-race
make doctor # config + database self-checks
make run # serve on 127.0.0.1:8081
make docs # regenerate the docs site (docs-src/ -> docs/docs/, committed)
make docs-serve # regenerate + serve the site at 127.0.0.1:8899/docs/
测试采用表驱动方式,使用 testify/require,针对全新创建或内存中的 SQLite 运行。
请使用 make fmt,不要使用 gofmt -w .:Make 目标仅对 Git 跟踪的文件进行格式化,而直接运行 gofmt 会遍历并重写 Go 的 ./... 模式排除的隐藏目录。
文档站点在 docs/docs/ 下的输出已提交到版本库,且 make check 会运行
docs-check,因此对 docs-src/ 的修改,或对参考文档生成所依据的工具接口或配置项的修改,都必须在同一变更中执行 make docs。请参阅 SITE.md。
规范见 AGENTS.md;编写代码前请先阅读。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。