关于 gather
Gather 是面向 AI 编码 Agent 的多租户记忆服务,提供 MCP 服务、REST API 和 Claude Code 插件、CLI 等客户端集成。候选内容须经过审核才能成为可召回事实,并支持双时态记录和可验证的租户隔离证明。
主要功能
- 01自动召回并重新注入上下文
- 02暂存候选内容并经审核后提升
- 03双时态且可追溯的事实
- 04带可验证证明的租户隔离
- 05Claude Code 插件和 CLI 集成
适用场景
- 01在 Agent 每轮开始时恢复相关记忆
- 02保存会话中的经验供后续审核
- 03将审核通过的候选内容纳入共享记忆
- 04离线验证租户隔离证明
MCP 相关
通过 MCP 提供远程记忆服务,供客户端执行召回和经审核的记忆操作。仓库还包含 MCP 客户端集成和原始服务配置示例。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.hunta.ai/mcpclaude mcp add --transport http hunta-ai-gather https://mcp.hunta.ai/mcp{"mcpServers":{"hunta-ai-gather":{"type":"http","url":"https://mcp.hunta.ai/mcp"}}}在 Cursor 中打开{"servers":{"hunta-ai-gather":{"type":"http","url":"https://mcp.hunta.ai/mcp"}}}在 VS Code 中打开{"mcpServers":{"hunta-ai-gather":{"type":"http","url":"https://mcp.hunta.ai/mcp"}}}{"mcpServers":{"hunta-ai-gather":{"serverUrl":"https://mcp.hunta.ai/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
此仓库是 Gather 的开放集成接口。Gather 是一项多租户组织记忆服务(包含 MCP 服务和 REST API),支持服务端强制执行的租户隔离,以及可验证的精选写入。记忆引擎是一项托管服务;此仓库存放客户端集成(从 Claude Code 插件开始),让你的运行环境自动使用这些记忆,而不是寄希望于模型记得这样做。
仓库内容
| 路径 | 内容 |
|---|---|
integrations/claude-code | gather 插件:钩子 + 捆绑的 MCP 服务 + 筛选技能 |
cli/ | hunta CLI:gather、recall、verify、instinct(以及 SDK 种子客户端) |
verify/ | @hunta/verify:离线 Ed25519 隔离证明收据验证(验证,而非信任) |
examples/ | 可直接使用的配置(适用于任何 MCP 客户端的原始 mcpServers 配置块) |
docs/ | 插件参考:数据流、暂存模型、成本、指标、故障排除 |
随着时间推移,更多集成(Codex、Agent SDK)也会加入此仓库。
快速开始(Claude Code)
添加两行配置,然后提供令牌:
/plugin marketplace add hunta-ai/gather
/plugin install gather@hunta
在控制台中创建一个Agent 密钥(范围限定为提议和回忆,绝不能写入规范记忆),然后将插件指向你的租户:
export GATHER_URL=https://mcp.hunta.ai # or your own deployment on Estate (self-host)
export GATHER_TOKEN=<your-agent-key>
下次会话即可使用回忆和捕获功能。完整指南: hunta.ai/get-started。
使用其他客户端(原始 MCP)
如果你不使用 Claude Code,或更喜欢原始 MCP,可以将任何 MCP 客户端直接指向服务
(请参阅 examples/mcp-config.json):
{
"mcpServers": {
"gather": {
"url": "https://mcp.hunta.ai/mcp",
"headers": { "Authorization": "Bearer <your-agent-key>" }
}
}
}
插件功能
- 自动回忆,每次提交提示词时触发。
UserPromptSubmit钩子会查询你的记忆,并将最相关的事实注入当前轮次,让 Agent 一开始就掌握已有信息。 - 压缩后重新注入。
SessionStart(compact)钩子会重新运行回忆,让注入的上下文在 Claude Code 重置上下文后依然保留。 - 防丢失捕获。
PreCompact和SessionEnd钩子会向你的暂存收件箱发送不含内容的线索。对话记录绝不会上传。 - 筛选技能。
/gather:flush会审核待处理的候选项;/gather:status会显示本地回忆命中率和延迟。
核心原则是由运行环境强制调用:工具可用不代表工具会被使用。Agent 不会可靠地自行回忆上下文或回写所学内容,因此钩子会通过设计确保每轮都执行这些操作,无需依赖模型的判断。
记忆的工作原理
Gather 的差异化优势在于写入路径:写入者永不做决定。
- 捕获会将候选项存入暂存收件箱。回忆功能看不到候选项。
- 提升会运行精选写入流程(提取、去重、双时间维度的取代处理、来源标记)。这是写入规范记忆的唯一途径,并由人(或策略)决定是否执行。
- 回忆仅返回已封存且可追溯来源的事实。注入上下文的 Agent 可以提议噪声,但永远不能封存事实。
始终启用捕获,意味着你不会因会话结束而丢失所学内容;暂存隔离墙则确保未经审核的线索绝不会污染 Agent 读取的记忆。 了解更多:筛选关卡。
从设计上确保故障时放行
缓慢或无法访问的记忆服务不会阻塞或降低一轮对话的质量。
- Hook 超时为 8 秒。
- 所有错误路径(超时、4xx/5xx、缺少令牌、网络故障)都会以状态码
0退出且不输出任何内容: 不注入内容,继续执行。 - 自动捕获只会将候选内容添加到暂存区,因此任何错误路径都不会触及正式知识库。
服务器宕机时,最糟糕的情况是这一轮没有注入上下文,而不是卡住。
隐私
所有数据只会发送到你配置的 GATHER_URL。召回会将提示词文本作为搜索查询发送;捕获会发送一条面包屑(事件、cwd、会话 ID、时间戳),绝不会发送对话记录。
托管服务的端点是 mcp.hunta.ai;Estate 使用你自己的部署,不会有任何数据离开你的基础设施。完整的数据流表:docs/plugin.md。
为什么选择 Gather
| Gather | 典型记忆 API | |
|---|---|---|
| 写入路径 | 精选:提案经过审核后才会进入正式知识库 | 直接写入 |
| 隔离 | 按租户进行加密和 RLS,并提供可自行运行的签名证明 | 声称具备 |
| 时间 | 双时态(事实何时成立,以及何时获知) | 最后写入者胜出 |
诚实的对比,包括我们的不足之处: hunta.ai/compare。
社区与支持
- 问题和功能请求:GitHub Issues
- 安全问题报告:请参阅 SECURITY.md
- 疑问:[email protected]
贡献
欢迎提交集成和修复。请参阅 CONTRIBUTING.md 和我们的 行为准则。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。