尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

为 Gemini Spark 接入 Hindsight 长期记忆:MCP 集成架构、OAuth 代理与配置实战

为 Gemini Spark 接入 Hindsight 长期记忆:MCP 集成架构、OAuth 代理与配置实战 为 Gemini Spark 接入 Hindsight 长期记忆MCP 集成架构、OAuth 代理与配置实战【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight本文以 Hindsight 仓库中的 gemini-spark 集成文档 为骨架讲解如何通过 MCPModel Context Protocol为 Google 的常驻型 Agent 助手 Gemini Spark 接入 Hindsight 长期记忆覆盖 Cloud 与自托管两种部署架构、antigravity.yaml与mcp_config.json两种注册方式、OAuth 2.1 代理的底层原理以及验证方法。读完本文你将掌握 Spark 与 Hindsight 的完整接线方案并能直接复制可运行的配置。为什么 Gemini Spark 需要一种不同的接入方式Gemini Spark 是运行在 Google 云基础设施上的常驻型always-onAgent 助手。与 OpenClaw、Claude Code 这类可以本地运行插件代码的 Agent 不同Spark没有插件宿主plugin host——Hindsight 的代码无法作为进程与 Spark 的 Agent 循环并肩运行第三方能够接触到的唯一扩展面就是 MCP。这意味着原文档中明确列出的三类能力只有 MCP 工具在 Spark 上可用能力Spark 支持情况基于 Hook 的自动召回recall向 prompt 前置注入上下文不可用——Spark 的 prompt 组装是私有的只能由 Agent 在规划器planner判断有用时主动调用recall工具基于 Hook 的自动留存retain回合结束时保存对话记录不可用——第三方看不到 Spark 的对话记录只能由 Agent 在学到值得保留的内容时主动调用retain工具MCP 工具recall、retain等可用——Spark 通过内置的 MCP 客户端调用 Hindsight 的 MCP 工具从源码层面看Hindsight 的 MCP 工具面是真实存在的在 mcp_tools.py 中tools_to_register默认集合包含retain、sync_retain、recall等工具名并通过_register_retain、_register_sync_retain、_register_recall三个函数分别注册。也就是说Spark 通过 MCP 能拿到的正是这套记忆读写工具面。两种部署架构原文档给出了两条接线路径二者的差异在于Spark 到 Hindsight 之间隔着什么。方案一Hindsight Cloud推荐Gemini Spark (Google Cloud) | | HTTPS MCP (Streamable HTTP) v Hindsight Cloud (api.hindsight.vectorize.io)Spark 直接通过 HTTPS 上的 Streamable HTTP 传输与 Hindsight Cloud 的 MCP 端点通信无需自建任何基础设施。这也是原文档推荐的路径注册即得 API Key零运维。方案二自托管 HindsightGemini Spark (Google Cloud) | | HTTPS OAuth 2.1 (Sparks MCP client) v Cloudflare Worker — cloudflare-oauth-proxy - OAuth 授权服务器 - 认证桥接桥接到 Hindsight API token | | HTTPS Cloudflare Tunnel v 自托管 Hindsight hindsight-embedMCP server关键点在于Spark 只对 MCP 服务器讲 OAuth 2.1 协议而自托管的 Hindsight 通常位于私有网络或 Cloudflare Tunnel 之后本身并不原生暴露 OAuth 端点。因此需要仓库中的 cloudflare-oauth-proxy 作为桥梁它在公网域名上完成 OAuth 握手用密码门password gate认证用户再把通过认证的 MCP 流量经 Cloudflare Tunnel 转发到自托管 Hindsight 源站。安装与配置在 Spark 中注册 Hindsight方案一Hindsight Cloud注册 Hindsight Cloud 账号在控制台创建一个 memory bank记忆库从控制台复制你的 API Key按下文注册位置把 Hindsight 注册进 Spark 的 MCP 配置。方案二自托管部署一个 Hindsight 实例参考仓库 docker 目录 中的部署编排运行指向该实例的hindsight-embedMCP 服务器并将其暴露在公网 HTTPS 端点上部署 cloudflare-oauth-proxy——因为 Spark 只与 MCP 服务器讲 OAuth 2.1。注册位置manifest 与 mcp_config 二选一Spark经由 Antigravity 2.0从两个位置之一读取 MCP 服务器配置托管式 Agent / Spark Cloud读取一个antigravity.yaml清单对应仓库中的 manifest.example.yamlAntigravity 桌面端 / IDE读取~/.gemini/antigravity/mcp_config.json对应仓库中的 mcp_config.example.json。将占位 URL 替换为你的 Hindsight Cloud 端点或 OAuth 代理 URL 即可。可直接复制的配置文件详解manifest.example.yamlAntigravity 2.0 托管清单仓库中的 manifest.example.yaml 完整内容如下# Example Antigravity 2.0 / Gemini Spark agent manifest snippet. # # Drop the tools.mcp_servers block into your existing antigravity.yaml. # This format follows the shape shown in the I/O 2026 developer guide; once # Google publishes the formal schema it may need adjusting. # # For Hindsight Cloud: use https://api.hindsight.vectorize.io/mcp # For self-hosted: use your cloudflare-oauth-proxy URL tools: mcp_servers: - name: hindsight endpoint: https://api.hindsight.vectorize.io/mcp auth: bearer description: Long-term memory across sessions. Call recall whenever the user references past work, decisions, or preferences from earlier conversations. Call retain whenever the user shares a fact, preference, or decision worth remembering.要点解读name: hindsightMCP 服务器在 Spark 侧的注册名工具将以hindsight为前缀暴露如hindsight_recall、hindsight_retainendpointCloud 路径固定为https://api.hindsight.vectorize.io/mcp自托管路径则填你的 cloudflare-oauth-proxy URL。注意必须以https://开头且以/mcp结尾auth: bearer声明使用 Bearer token 认证description这一字段不是摆设。由于 Spark 没有 Hook 自动注入是否调用记忆工具完全取决于 Agent 的规划判断而工具描述正是 Agent 决定何时该调recall、何时该调retain的核心依据——描述中明确写出了当用户提及过去的工作、决策或偏好时调用 recall当用户分享值得记住的事实、偏好或决策时调用 retain。仓库中的测试 test_config_examples.py 对这份清单做了结构性校验验证了清单可被 YAML 解析、包含tools.mcp_servers区块、服务器名为hindsight、endpoint 以https://开头且以/mcp结尾、description 中同时提及recall与retain。这些断言反过来印证了上述每个字段都是集成正常工作所必需的。mcp_config.example.json桌面端 / IDE 本地开发仓库中的 mcp_config.example.json 完整内容如下{ _comment: Drop this entry into ~/.gemini/antigravity/mcp_config.json. For Hindsight Cloud, use the Cloud URL with a Bearer token. For self-hosted with the OAuth proxy, use your proxy URL., mcpServers: { hindsight: { serverUrl: https://api.hindsight.vectorize.io/mcp, headers: { Authorization: Bearer YOUR_HINDSIGHT_API_KEY } } } }使用方式将整个条目合并进~/.gemini/antigravity/mcp_config.json并把YOUR_HINDSIGHT_API_KEY替换为真实 Key。对应测试同样做了结构校验mcpServers.hindsight必须包含serverUrl与headersURL 必须是https://开头Authorization必须以Bearer开头——并且测试还特意断言占位符YOUR_HINDSIGHT_API_KEY必须保留在示例中确保示例仓库不会泄漏真实凭据。自托管路径的底层原理cloudflare-oauth-proxy 如何工作若选择自托管cloudflare-oauth-proxy 是整条链路的关键组件。它是一个基于 Cloudflare Workers、使用cloudflare/workers-oauth-provider库构建的 OAuth 2.1 代理承担四重职责OAuth 2.1 授权服务器、动态客户端注册RFC 7591、仅支持 PKCES256、CORS 白名单限制。wrangler.toml 的关键配置仓库中的 wrangler.toml 需要替换三处占位值[[kv_namespaces]] binding OAUTH_KV id your-kv-namespace-id # npx wrangler kv namespace create OAUTH_KV [vars] HINDSIGHT_ORIGIN https://your-hindsight-origin.example.com # 你的 Tunnel 源站 URL [[routes]] pattern hindsight.yourdomain.com/* zone_name yourdomain.com部署步骤先npm install再通过npx wrangler secret put设置四个密钥最后npm run deploy。密钥参考表如下密钥用途SESSION_SECRET登录页面的密码用于授权一个会话PROXY_SECRET作为X-Proxy-Secret头发往源站供 WAF 校验HINDSIGHT_API_TOKEN调用 Hindsight API 用的 Bearer tokenALLOWED_EMAIL你的邮箱作为 OAuth 用户身份部署完成后还应在 Tunnel 源站域名上添加 WAF 规则拦截不带正确X-Proxy-Secret头的请求确保只有该 Worker 能触达 Hindsight 实例。代理层的安全清洗逻辑从源码看proxy.ts 的实现相当严谨请求转发前会剥离authorization、x-proxy-secret以及 RFC 7230 §6.1 定义的所有逐跳hop-by-hop头再统一替换为服务器侧配置的Authorization防止客户端伪造身份响应回传时则只放行白名单头content-type、content-length、cache-control、mcp-session-id、retry-after等保证源站的 Cookie、自身 CORS 头等敏感信息无法穿透代理泄露给客户端。其他值得注意的安全设计来自 README登录页密码校验使用基于 SHA-256 的常数时间比较以抵抗时序攻击OAuth 状态存储在 Cloudflare KV 中5 分钟 TTL消费后即删除代理会把 OAuth 授权服务器元数据改写为声明code_challenge_methods_supported [S256]。底层记忆能力Spark 通过 MCP 调用的到底是什么Spark 侧只是 MCP 客户端真正的记忆引擎在 Hindsight 侧。有两个组件与之对应Hindsight API 的 MCP 工具面如前文所述mcp_tools.py 注册了retain、sync_retain、recall等工具。retain负责把 Agent 学到的内容写入记忆库recall负责按查询检索相关记忆sync_retain提供同步写入路径。hindsight-embed MCP 服务器自托管路径中的hindsight-embed提供免手动搭建服务器的轻量接入方式。其 README 描述了自动管理后台守护进程daemon的机制命令行用法形如hindsight-embed memory recall default user preferences hindsight-embed memory recall default query -o json这些命令与 Spark 通过 MCP 调用的recall走的是同一套记忆检索能力只是入口不同CLI vs MCP 工具。仓库的 test.sh 也演示了完整的retain 写入 → recall 查询 → 断言结果闭环验证流程。验证安装让 Spark 真正触发记忆工具原文档给出了两条最佳验证提示词分别对应recall与retain两条路径What were my open API decisions from last week?上周我有哪些待定的 API 决策→ 触发recallRemember that I prefer TypeScript strict mode for new projects.记住新项目我偏好 TypeScript strict mode。→ 触发retain如果 Spark 正确接入了 Hindsight 的 MCP 服务器这两类请求会被 Agent 的规划器识别为需要访问长期记忆进而调用对应工具前者从记忆库检索历史决策后者把偏好持久化供后续任意会话复用。结语Gemini Spark 因其封闭的托管架构只能通过 MCP 这一唯一的扩展面接入 Hindsight 长期记忆——这既是限制没有 Hook 级自动注入一切依赖 Agent 自主调用也是简洁性的来源只需一段清单或 JSON 配置即可完成接线。Cloud 路径一条endpoint即达自托管路径则借助cloudflare-oauth-proxy把 OAuth 2.1 桥接到私有网络内的 Hindsight 实例。更多细节可继续阅读仓库内的 集成目录、cloudflare-oauth-proxy 文档 与 hindsight-embed 说明。【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表