Hindsight Devin Desktop 集成(原 Windsurf)演进与实战解析

📅 发布时间:2026/9/14 21:03:04
Hindsight Devin Desktop 集成(原 Windsurf)演进与实战解析
Hindsight Devin Desktop 集成原 Windsurf演进与实战解析【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight本指南围绕 Hindsight 仓库中 Devin Desktop 集成的变更日志 展开讲解hindsight-devin-desktop集成包的核心能力如何把 Hindsight 的长期记忆MCP 工具 记忆规则 会话钩子注入 Devin Desktop 内置的两个智能体以及该集成从 Windsurf 更名而来的版本演进背景。读完本文你将掌握该集成的安装、双 Agent 接线原理、双层记忆库设计、确定性钩子机制以及全部 CLI 命令与配置项并能结合源码定位到每一个关键实现文件。变更日志从 Windsurf 到 Devin Desktophindsight-devin-desktop是 Hindsight 官方维护的独立集成包PyPI 包名hindsight-devin-desktop其独立变更日志记录了面向用户的功能演进。目前文档记录的首个版本0.1.0包含一项关键改进将 Devin Desktop 集成原 Windsurf更名并改进其并发使用时的稳定性。贡献者 DK09876提交fcb2c958e这条记录隐含了两条重要信息其一该集成最初面向 WindsurfCodeium设计在 Cognition 将 Windsurf 更名为 Devin Desktop 后跟随更名其二0.1.0 重点修复了多个会话/工具并发调用时的稳定性问题。从当前仓库的 pyproject.toml 可以看到集成包现已演进到0.2.0版本支持 Python ≥ 3.10并通过hindsight-devin-desktop hindsight_devin_desktop.cli:main暴露为命令行工具。更完整的用户向说明见该集成的 README。集成的核心一个 MCP 服务器两个智能体Devin Desktop 同时内置了两个配置彼此独立的智能体init命令会为两者分别写入配置CascadeWindsurf 遗留智能体Devin Local继任智能体MCP 服务器配置~/.codeium/windsurf/mcp_config.jsonserverUrl字段~/.config/devin/config.jsonurltransportheaders工具审批自动预置放行规则mcp__hindsight__*工具调用不弹确认项目级规则.devin/rules/hindsight.md仓库根目录AGENTS.md全局规则~/.codeium/windsurf/memories/global_rules.md~/.config/devin/AGENTS.md自动召回—规则驱动SessionStart钩子确定性注入记忆留存提示—Stop钩子强制一次 retain 回合可见性post_mcp_tool_use横幅hooks.json原生工具卡片 规则叙述配置其中一个智能体并不会让另一个生效因此集成会同时写入两套文件所有文件编辑都是“外科手术式”的——专用文件直接写共享文件AGENTS.md、global_rules.md、hooks.json只插入一个带围栏标记的管理块。上述路径为 macOS/Linux 布局Windows 上 Devin Local 配置位于%APPDATA%\devin\Cascade 仍使用~/.codeium/windsurf\。从源码看Cascade 侧的接线逻辑集中在 mcp_config.py由于官方文档对mcp_config.json的实际位置说法不一~/.codeium/windsurf/与~/.codeium/两种default_mcp_paths()会同时写入两个位置确保无论客户端读取哪一处都能发现hindsight服务器条目。Devin Local 侧则由 devin_local.py 负责它写入的是与 Cascade 不同的远程 MCP schemaurltransport: http并额外注入permissions.allow放行规则与两个钩子。多银行模式一个端点两个记忆域集成采用 Hindsight 的multi-bank 模式单个 MCP 端点URL 以/mcp/结尾路径中不绑定任何 bank所有工具接受可选的bank_id参数。init会生成形如下方的 Cascade 配置片段{ mcpServers: { hindsight: { serverUrl: https://api.hindsight.vectorize.io/mcp/, headers: { Authorization: Bearer hsk_..., X-Bank-Id: devin-desktop } } } }其中X-Bank-Id头把全局银行指定为默认 bank——当模型在工具调用中省略bank_id时请求会回落到该银行。这一行为的构造逻辑位于 mcp_config.py 的build_http_server()Devin Local 侧对应 devin_local.py 的build_http_server()。双层记忆全局银行 项目银行记忆被拆分到两个相互隔离的 Hindsight bank避免一个仓库的工作“串味”到另一个全局银行默认devin-desktop跨项目的偏好、编码风格、身份信息在所有项目中共享。项目银行默认devin-desktop-slug当前仓库的架构、决策、约定。slug由仓库的git remote派生因此跨机器稳定且对协作者完全一致——这意味着提交项目规则文件后整个团队共享同一个项目银行。项目银行的派生逻辑在 project.py 中实现优先取git remote get-url origin的owner/repo部分剥离 host 与.git兼容githost:owner/repo.git、https://host/owner/repo.git、ssh://三种形式失败后依次回退到 git 仓库文件夹名、当前文件夹名最终 slug 化为global-slug形式。退出共享层--no-global-bank如果你不希望个人偏好跨仓库跟随可传入--no-global-bank进入local-only 模式项目事实与个人偏好全部写入当前仓库的项目银行不共享任何内容全局规则文件也不会写入。从 cli.py 的build_install()可以看到该模式下rule_global被置为None规则把所有记忆路由到项目银行同时全局规则块被移除而非写入。确定性记忆Devin Local 的两个钩子MCP 工具 规则是模型驱动的——智能体是因为规则要求它才去 recall/retain。而 Devin Local 额外支持两个钩子均可用--no-hooks关闭使记忆行为变为确定性触发SessionStart自动召回会话开始时召回项目 全局记忆并注入智能体上下文即使模型忘记调用recall也能加载相关记忆。它总是汇报状态已加载 N 条 / 空 / 不可用记忆使用从不静默同时永不阻塞会话超时 8 秒、异常时也返回状态文本并退出码 0。Stop留存提示智能体停止前钩子返回{decision:block,reason:...}强制进行一轮 retain——由模型判断哪些内容值得长期保存并调用retain工具。通过stop_hook_active做循环保护每次会话仅多花费一个回合可用--no-retain-hook单独关闭。为什么不做成全自动 retain因为 Devin 的钩子无法把会话转录文本交给脚本钩子自身无法“总结并留存”——留存提示是最近似的确定性方案保证触发内容由模型创作。Cascade 侧则两种钩子都不支持其钩子无法注入上下文因此 recall/retain 保持模型驱动但init会添加一个post_mcp_tool_use横幅钩子让 Cascade 在每次工具调用后可见地显示 Hindsight: tool used。钩子的实际执行逻辑集中在 hook.pycmd_recall用标准库urllib走 MCPinitialize→notifications/initialized→tools/call工具名recall查询词固定为Key architecture, decisions, conventions, and the users preferences and coding style for this work.max_tokens1024再把结果以additionalContext形式交给 Devin 注入上下文cmd_retain_nudge根据是否 local-only 构造不同语气的留存提示项目事实写入项目银行、用户事实写入全局银行cmd_banner则对所有 MCP 工具调用做过滤只对hindsight服务器打印可见横幅。每次钩子运行都会追加一行“存活证明”日志到~/.hindsight/devin-hook.log可用环境变量HINDSIGHT_HOOK_LOGoff关闭便于确认 recall/retain 钩子确实触发。安装与使用pip install hindsight-devin-desktop cd your-project hindsight-devin-desktop init --api-token YOUR_HINDSIGHT_API_KEYinit需要在仓库内运行以便从 git remote 派生项目银行它会同时接线两个智能体MCP 服务器条目、项目规则请提交./.devin/rules/hindsight.md与./AGENTS.md这样协作者共享项目银行以及全局规则。随后需要在所用智能体中激活服务器配置不会热加载Cascade打开 MCP 面板点击Refresh。Devin Local打开Devin MCP Marketplace在Installed下找到hindsight点击Connect。不确定自己用的是哪个智能体查看 Devin Desktop 右下角的智能体选择器即可。验证是否生效开启一个会话你会直接“看到”记忆在工作Devin Local回复以状态行开头如 Hindsight preloaded 3 memories for this session或no memory yet、⚠️ memory unavailable this session。Cascade每次recall/retain显示为工具卡片展开post-tool hooks行即可看到 Hindsight: tool used横幅。运行hindsight-devin-desktop status可列出两个智能体的每个组件是否已安装以及解析出的银行。也可以先试运行hindsight-devin-desktop init --print-only只打印将要写入的全部配置而不触碰任何文件。连接 Hindsight默认连接 Hindsight Cloud也支持自托管服务器hindsight-devin-desktop init --api-url http://localhost:8888 # 本地开放服务器无需 token hindsight-devin-desktop init --bank-id id # 显式指定项目银行 hindsight-devin-desktop init --global-bank id # 更换跨项目银行CLI 命令一览命令说明hindsight-devin-desktop init接线两个智能体的 MCP 服务器 记忆规则自动派生项目银行hindsight-devin-desktop status显示解析出的银行 各智能体是否已配置hindsight-devin-desktop uninstall从两个智能体移除 MCP 服务器 记忆规则init还支持以下开关--print-only只打印不写入、--no-hooks跳过两个 Devin Local 钩子、--no-retain-hook保留自动召回、跳过留存提示、--no-global-banklocal-only 模式。所有选项与解析逻辑见 cli.py。配置项配置环境变量默认值API URLHINDSIGHT_API_URLhttps://api.hindsight.vectorize.ioAPI TokenHINDSIGHT_API_TOKEN无Cloud 必需全局银行HINDSIGHT_DEVIN_DESKTOP_GLOBAL_BANKdevin-desktop项目银行HINDSIGHT_DEVIN_DESKTOP_BANK_ID由 git remote 派生init还会把连接信息与全局银行持久化到用户配置文件~/.hindsight/下后续运行优先读取该文件再按“CLI 参数 环境变量 默认值”的优先级解析见 cli.py 的_resolve()与 config.py。源码与测试指引想深入验证本文所述行为的读者可按以下路径继续阅读CLI 装配hindsight_devin_desktop/cli.py ——init/status/uninstall三个子命令与参数解析。Cascade 接线hindsight_devin_desktop/mcp_config.py 与 hindsight_devin_desktop/rules.py、hindsight_devin_desktop/global_rules.py。Devin Local 接线hindsight_devin_desktop/devin_local.py 与 hindsight_devin_desktop/hook.py、hindsight_devin_desktop/cascade_hooks.py。银行派生hindsight_devin_desktop/project.py。测试仓库提供了覆盖各模块的确定性测试套件tests本地可用uv sync uv run pytest tests -v -m not requires_real_llm运行requires_real_llm标记的端到端用例需要真实 Hindsight 服务与 LLM 密钥单独用-m requires_real_llm运行。小结从变更日志记录的 0.1.0Windsurf 更名 并发稳定性修复到当前 0.2.0hindsight-devin-desktop已形成一套完整方案一个多银行 MCP 端点同时服务 Cascade 与 Devin Local 两个智能体双层银行保证项目记忆隔离SessionStart自动召回与Stop留存提示把记忆行为从“依赖模型自觉”升级为“确定性触发且全程可见”。对同时使用 Devin Desktop 多个工作区的开发者而言一条init命令即可让长期记忆覆盖所有会话。【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考