基于MCP与Cloudflare Workers构建AI编程助手的长期记忆系统
1. 项目概述如果你和我一样每天都要和 Claude、ChatGPT、Cursor 这些 AI 编程助手打交道那你一定也受够了它们“金鱼般”的记忆力。昨天刚花半小时解释清楚的项目架构今天再问它又得从头开始理解上周踩过的一个坑这周换个项目它又能原封不动地再踩一次。这种重复劳动不仅浪费时间更消磨耐心。我们需要的不是一个每次对话都从零开始的“实习生”而是一个能记住项目上下文、团队偏好和过往教训的“资深搭档”。这正是 MCP Memory Server 要解决的核心痛点。它是一个基于 Model Context Protocol 的长期记忆服务器你可以把它理解为你所有 AI 助手的“共享大脑”。部署一次到 Cloudflare Workers你的 Claude Code、ChatGPT、Cursor、Gemini CLI、VS Code Copilot 等所有支持 MCP 的客户端就都能访问同一个记忆库。从此AI 能记住跨会话、跨平台、跨项目的所有重要信息架构决策、调试心得、你的编码风格偏好甚至是那些“绝对不能再犯”的错误。这个项目的巧妙之处在于它并非简单地记录聊天记录而是实现了语义记忆。这意味着 AI 不仅能通过关键词更能通过意思来查找记忆。比如你问“上次那个用户认证的 bug 是怎么修的”即使你记不清“认证”这个词AI 也能通过理解“用户登录失败”这个语义找到相关的解决方案。更关键的是这套记忆系统具备自动化治理能力陈旧的记忆会自动归档重复的内容会自动去重AI 还会每天自动判断哪些记忆已经不再相关并进行合并清理确保你的记忆库始终精炼、有用。2. 核心架构与设计思路拆解2.1 为什么选择 Cloudflare Workers 全家桶在技术选型上作者选择了 Cloudflare Workers 生态这并非偶然而是一套经过深思熟虑的“组合拳”。对于个人开发者或小团队来说这个选择几乎是无懈可击的。首先是成本与易用性。Cloudflare Workers 的免费套餐额度非常慷慨每天 10 万次请求、每月 1000 万次 D1 数据库读取、以及共享的 Workers AI 额度。这意味着对于个人使用的记忆服务器你几乎可以零成本运行。更重要的是它完全 Serverless。你不需要操心服务器维护、Docker 容器编排或 VPS 安全更新只需关注业务逻辑。wranglerCLI 工具让部署变得像git push一样简单setup.sh脚本更是将资源创建、配置、迁移和部署自动化将上手门槛降到了最低。其次是性能与全球化。Workers 在全球拥有 300 多个边缘节点。你的记忆服务器会被部署到离你以及你的 AI 客户端最近的节点。无论是你在家用 Claude Code还是在公司用 ChatGPT Web 版请求的延迟都非常低。这种“边缘计算”模式对于需要频繁进行记忆存取和语义搜索的交互场景来说体验提升是立竿见影的。最后是技术栈的完整性。Cloudflare 提供了构建这个应用所需的所有“积木”D1作为关系型数据库存储记忆的元数据标题、类型、标签、创建时间等。它基于 SQLite简单可靠完全够用。Vectorize这是实现语义搜索的核心。当一条记忆被保存时其内容会通过 Workers AI 的bge-m3模型转换为一个高维向量即 embedding然后存入 Vectorize。搜索时查询语句也会被转换成向量Vectorize 会快速找出最相似的向量从而找到语义相关的记忆。Workers AI提供了开箱即用的 AI 能力。bge-m3模型用于生成高质量的文本向量llama-3.1-8b模型则用于自动生成记忆摘要、判断记忆相关性等任务。你不再需要去申请和管理 OpenAI 或 Anthropic 的 API 密钥一切都在 Cloudflare 的生态内完成。KV用于存储 OAuth 2.1 的会话令牌保障 MCP 连接的安全。这套组合确保了整个应用在免费层就能获得高性能、高可用的全球服务同时保持了极简的运维负担。2.2 四层记忆存入机制从被动到主动记忆如何被保存是决定这个系统是否好用的关键。项目文档中提到的“四层架构”是精髓所在它清晰地划分了不同场景下的记忆触发策略。第一层核心层AI 主动判断与保存。这是最主要的记忆来源但也是最容易被误解的一点。很多人以为部署完服务器AI 就会自动记住一切——并非如此。AI 需要被“教导”何时应该保存记忆。这通过在 AI 客户端的System Prompt或 Workspace Instructions如AGENTS.md中加入明确的指令来实现。例如你可以这样指示 Claude Code“当你做出一个重要的架构决策、解决了一个复杂的 bug、或者我明确表达了某种偏好时请主动调用memory_save工具将这条信息存入长期记忆。” 这一层赋予了 AI 主观能动性让它像人类一样在对话中识别并保存有价值的信息。第二层Git Push 钩子Claude Code。这是一个很实用的工程化补充。在完成一个功能模块并执行git push后Claude Code 的PostToolUse命令钩子会被触发提示 AI“回顾一下本次会话的修改将核心变更和决策总结并存入记忆。” 这相当于在每次代码提交后自动生成一份“开发日志”存入记忆。第三层会话结束钩子。当 AI 会话结束时系统会尝试提示 AI 保存记忆。但文档明确指出这一层“不保证触发”因为某些平台可能不支持或会中断此过程。因此它只能作为补充不能依赖。第四层Codex CLI 包装脚本。这是针对特定工具Codex CLI在独立运行、且没有配置工作区指令时的兜底方案。一个 Bash 脚本会在 Codex 进程结束后通过 REST API 将整个会话内容发送给服务器由服务器端的 AI 进行萃取和保存。这个分层设计的智慧在于以 AI 主动判断为主以自动化钩子为辅以兜底脚本为保底。它平衡了自动化程度与准确性。完全依赖自动化钩子可能会存入大量噪音完全依赖手动触发则体验不佳。而让 AI 在明确的规则下主动判断既能保证记忆的质量又能大大减轻用户的负担。实操心得要让第一层AI主动保存良好工作关键在于编写清晰、具体的 System Prompt。不要只说“记住重要的东西”。要举例说明什么是“重要的”比如“当选择了一个新的数据库库时”、“当决定采用某种设计模式时”、“当解决了一个导致构建失败的依赖冲突时”。你给 AI 的指令越具体它保存的记忆就越精准。2.3 记忆治理让记忆库保持健康一个只存不删的记忆系统很快就会变成一个垃圾场。MCP Memory Server 内置的自动化治理机制是其区别于简单记事本的核心价值。每日 Cron 任务UTC 03:00是治理的执行者它依次进行以下操作衰减与归档检查所有active状态的记忆。如果一条记忆超过DECAY_DAYS默认90天没有被任何会话引用或确认过系统会将其状态改为archived。这类似于 Gmail 的“归档”信息还在但不会在常规搜索中优先出现除非你明确要求包含归档内容。AI 判断相关性系统会随机采样一部分记忆数量由AI_SAMPLE_SIZE控制使用 Workers AI 的模型判断它们与当前项目核心主题是否还相关。不相关的记忆会被标记可能被合并或归档。去重与合并这是最实用的功能。系统会计算记忆之间的向量相似度。如果两条记忆的相似度超过CONSOLIDATION_SIM默认0.85它们就会被合并为一条更完整、更准确的记忆并清理掉旧的重复项。Supersede取代保护机制是另一个精妙的设计。记忆有一个source字段可以是user用户手动保存、aiAI主动保存、auto-extract自动萃取等。规则是sourceauto-extract自动萃取的记忆不能取代其他来源的记忆。这是因为自动萃取的准确性相对较低可能包含错误或片面的信息。这个机制确保了人类或强 AI 判断产生的“高价值”记忆不会被弱 AI 的自动判断所覆盖。3. 从零开始的部署与配置实战3.1 环境准备与一键部署部署过程被极大地简化了但理解每一步背后的意义有助于出问题时排查。第一步基础工具安装。你需要准备三样东西一个 Cloudflare 账号、Node.js 18 环境、以及 Wrangler CLI。# 安装 Wrangler CLI npm install -g wrangler用wrangler login登录 Cloudflare 账号这会在你的机器和 Cloudflare 之间建立安全的认证通道。第二步克隆项目并运行安装脚本。git clone https://github.com/beach55607-max/mcp-memory-server.git cd mcp-memory-server bash setup.sh这个setup.sh脚本是个“瑞士军刀”它依次做了以下几件大事npm install安装项目依赖Hono 框架、D1/Vectorize 客户端库等。在你的 Cloudflare 账户中创建所需资源一个 D1 数据库、一个 Vectorize 索引、一个 KV 命名空间。这些资源名称会带有随机后缀以确保唯一性。生成wrangler.toml配置文件并将上一步创建的资源 ID 绑定到你的 Worker。提示你设置API_SECRET这是一个用于保护 REST API 的密钥。在 D1 数据库中运行 SQL 迁移脚本创建记忆表、会话表等。最后将整个应用部署到 Cloudflare Workers。部署成功后控制台会输出你的服务器地址格式如https://mcp-memory-server.你的子域名.workers.dev。请务必记下这个地址。注意事项运行setup.sh时如果卡在创建 Cloudflare 资源这一步通常是因为网络问题或账户权限。可以尝试使用wrangler whoami确认登录状态或检查 Cloudflare Dashboard 的权限设置。有时分段执行脚本内的命令看脚本源码比一键运行更可靠。3.2 关键安全配置CORS 与 API 密钥部署完成只是第一步安全配置不到位你的记忆服务器可能无法使用甚至存在风险。1. 配置 ALLOWED_ORIGINS必须做这是最重要的安全设置之一。CORS 策略决定了哪些网站可以访问你的 Memory Server。为了安全绝对不要设置为通配符*。 你需要登录 Cloudflare Dashboard找到你的 Worker在Settings-Variables页面添加一个环境变量变量名ALLOWED_ORIGINS值填入你计划使用的客户端域名用英文逗号分隔不要有空格。 例如如果你只用 Claude 和 ChatGPT 的网页版就设置为https://claude.ai,https://chatgpt.com如果你也使用本地 IDE如 Cursor、VS Code由于它们通常通过file://或localhost发起请求你可能需要根据情况添加http://localhost:3000等。但请注意生产环境应尽量限制为可信的线上域名。2. 确保 API_SECRET 已设置在部署时setup.sh应该已经提示你运行了wrangler secret put API_SECRET。如果没有请务必手动执行wrangler secret put API_SECRET然后输入一个强密码。这个密钥用于保护/api/*下的所有 REST API 端点。mcp-stdio-proxy.mjs脚本和任何直接调用 API 的工具都需要它。3. 确认 DEV_MODE 为 false在wrangler.toml或环境变量中确保DEV_MODE false。开发模式会禁用 API 密钥验证并放宽 CORS仅用于本地测试绝不可用于生产环境。3.3 连接各大 AI 客户端详解连接配置因客户端而异但核心都是将你的 MCP Server 地址告知客户端。以下是针对每个平台的详细步骤和避坑指南。Claude.ai (Web 移动端)这是体验最无缝的平台之一。关键在于先在网页版配置。访问 claude.ai 登录后点击左下角你的头像进入Settings-Integrations。点击Add a remote MCP server。在Server URL中填入https://mcp-memory-server.你的子域名.workers.dev/mcp保存后刷新页面或开始一个新对话。你应该能在工具列表中看到memory_开头的工具。移动端会自动同步在 iOS 或 Android App 上登录同一账号无需再次配置工具直接可用。ChatGPT (Web 移动端)ChatGPT 对 MCP 的支持需要Developer Mode。访问 chatgpt.com 登录后点击左下角你的名字进入Settings-Connectors-Advanced。打开Developer Mode开关。回到Connectors主页面点击Add MCP server。填入上述同样的 MCP Server URL。同样移动端 App 会自动继承此配置。注意此功能可能需要 Pro/Plus/Business 等付费套餐。Claude Code (CLI)作为深度开发者工具Claude Code 提供了两种连接方式各有优劣。方式A远程 HTTP 连接推荐直接编辑配置文件~/.claude.json或项目内的.claude/settings.json{ mcpServers: { memory: { type: url, url: https://mcp-memory-server.你的子域名.workers.dev/mcp } } }这种方式最简单依赖网络但无需在本地运行代理。方式BStdio 代理连接这种方式通过一个本地 Node.js 脚本代理请求适合网络环境复杂或需要额外调试的场景。命令较长注意参数顺序claude mcp add \ -e MCP_MEMORY_APIhttps://mcp-memory-server.你的子域名.workers.dev \ -e MCP_MEMORY_API_KEY你的API_SECRET \ -s user \ memory -- node /path/to/mcp-memory-server/src/mcp-stdio-proxy.mjs关键点-e(环境变量) 和-s(安全上下文) 必须放在服务器名称memory之前真正的命令node ...放在--之后。Cursor / VS Code Copilot / Windsurf / JetBrains IDE这些基于 IDE 的客户端配置方式类似都是在设置中找到 MCP 配置项添加一个类型为streamable-http或http的服务器URL 同上。具体路径Cursor:Settings - MCP - 添加Transport 选streamable-http。VS Code:需要在工作区或全局的.vscode/mcp.json文件中配置。注意这需要 VS Code 1.99 版本并安装了 GitHub Copilot 扩展。Windsurf/JetBrains:在各自的 AI 助手设置中寻找 MCP 服务器配置页面。Codex CLI Gemini CLICodex CLI:使用与 Claude Code 类似的stdio代理方式命令格式几乎一致。Gemini CLI:配置最简单直接在~/.gemini/settings.json中指定uri即可。连接测试技巧配置完成后如何测试是否成功最直接的方法是启动一个对话然后让 AI 执行一个简单的记忆操作。例如在 Claude Code 中你可以直接说“请调用 memory_list 工具看看我们目前有多少条记忆。” 如果配置正确AI 会展示工具调用界面。如果失败请检查1. 服务器地址是否正确且可访问2.ALLOWED_ORIGINS是否包含了该客户端的域名3. 网络是否存在代理或防火墙阻挡。4. 核心功能深度使用与调优4.1 理解七种记忆工具及其应用场景连接成功后你的 AI 助手会新增 7 个以memory_开头的工具。你不需要记住所有参数AI 会在调用时引导你。但了解每个工具的用途能让你更好地指导 AI。工具核心用途必填参数关键可选参数解析memory_save保存一条新记忆。这是最常用的工具。title,content,typeconfidence: 置信度 (0.0-1.0)AI主动存可设为 0.8用户明确要求存则用 1.0。tags: 关键词标签方便后期过滤。repo: 关联的代码仓库路径实现项目隔离。memory_search语义搜索记忆。找东西全靠它。querylimit: 返回结果数量。full_content: 为true时返回完整内容为false时只返回 AI 生成的摘要节省 token。include_legacy: 是否包含已归档的记忆。memory_list列出记忆。用于浏览或管理。无type: 按类型过滤 (knowledge,feedback,session,project)。status: 按状态过滤 (active,archived)。cursor: 用于分页。memory_delete删除一条记忆。谨慎使用。id无。删除会同时清理向量索引中的对应项。memory_promote将记忆升级为“绝对真理”。id仅对active状态的记忆有效。升级后该记忆置信度变为 1.0永不自动清理且每次对话开始必载入。memory_auto_inject对话开始时自动载入相关记忆。contextrepo: 限定在当前项目范围内搜索相关记忆。limit: 载入记忆的数量上限不含“绝对真理”。memory_extract从大段对话历史中自动萃取记忆。conversation通常用于兜底或批量导入。AI 会分析对话文本自动识别并提取出多条潜在记忆高置信度的会自动保存。日常使用流程对话开始AI 自动调用memory_auto_inject根据当前对话的上下文如项目路径、打开的文件载入相关记忆和所有“绝对真理”。对话中当你发现 AI 做出了一个值得记录的决定或你明确想说“记住这个”时AI 会调用memory_save。你也可以主动问“我们之前关于XXX是怎么决定的” AI 会调用memory_search。对话结束最佳实践是提示 AI“请总结本次会话的关键点并存入记忆。” AI 会调用memory_save。不要依赖不可靠的会话结束钩子。日常维护偶尔可以用memory_list浏览记忆用memory_promote标记核心规则用memory_delete清理错误条目。4.2 记忆类型与“绝对真理”策略合理使用记忆类型和“绝对真理”能让你的记忆库井井有条。四种记忆类型knowledge(知识)用于存储客观的技术事实、架构决策、库的用法、解决方案模式。例如“本项目使用 Prisma 作为 ORM连接池大小配置为 10。”“解决 ‘Module not found’ 错误需先检查node_modules是否完整。”feedback(反馈)用于存储你的主观偏好和工作风格。例如“代码审查时请优先关注边界条件和错误处理。”“生成代码注释时请使用 JSDoc 格式。”“回答请尽量简洁避免冗长问候。”session(会话)记录单次会话的概要。通常由 AI 在会话结束时自动生成。例如“2024-04-10 会话重构了用户认证模块将 JWT 密钥移至环境变量并增加了令牌刷新逻辑。”project(项目)记录项目级别的元信息。例如“项目截止日期2024-06-30。”“当前主要阻塞问题第三方支付接口文档不全。”“绝对真理” (Promoted Memory)这是项目的杀手锏功能。你可以将任何一条active状态的记忆升级为“绝对真理”。它的特权包括强制载入每次对话开始时无论memory_auto_inject的limit参数是多少所有“绝对真理”都会被无条件载入上下文。这确保了核心规则永远不会被遗忘。豁免清理每日的 Cron 治理任务衰减、去重、合并会跳过所有“绝对真理”。它们永远保持active状态。冲突必胜如果一条新记忆与一条“绝对真理”冲突系统会优先保留“绝对真理”。使用场景举例你可以将团队编码规范如“函数命名必须使用 camelCase常量使用 UPPER_SNAKE_CASE”存为knowledge类型并升级为“绝对真理”。此后在任何项目中AI 都会牢记这条规范并据此提供建议。4.3 高级配置与环境变量调优项目提供了丰富的环境变量让你可以精细控制服务器行为而无需修改代码。核心开关MCP_ENABLEDtrue/false总开关。关闭后/mcp端点将不可用。WRITE_ENABLEDtrue/false写入开关。如果只想做只读的语义搜索可以关闭写入。AI 功能控制SUMMARY_ENABLEDtrue/false是否启用 AI 自动生成记忆摘要。关闭后memory_save将不会调用 Workers AI 生成摘要content字段的前 N 个字符将直接作为摘要。这可以节省 Workers AI 的额度。SUPERSEDE_ENABLEDtrue/false是否启用自动取代合并相似记忆的功能。如果你希望保留所有历史版本可以关闭此功能。Cron 治理调参非常实用这些变量可以直接在 Cloudflare Dashboard 的 Worker 环境变量中修改即时生效。DECAY_DAYS90一条active记忆多少天内未被触及通过搜索或关联会话就会被自动归档。根据项目节奏调整快速迭代的项目可以设为 30长期维护的项目可设为 180。AI_SAMPLE_SIZE20每次 Cron 执行时随机抽取多少条记忆进行 AI 相关性判断。加大此值可以提高清理精度但会增加 AI 调用成本。ARCHIVE_CAP50每次 Cron 执行最多归档多少条记忆。防止单次任务归档过多。CONSOLIDATION_SIM0.85判断两条记忆是否“相似”并合并的余弦相似度阈值。值越高越接近1合并越保守。如果你发现有用的记忆被过度合并可以调高到 0.9。调优建议对于个人初期使用建议保持默认值。运行几周后通过memory_list工具查看记忆状态如果发现archived的记忆过多或过少再调整DECAY_DAYS。如果发现很多明显重复的记忆没有被合并可以尝试将CONSOLIDATION_SIM略微调低例如 0.8。5. 故障排查与常见问题实录即使设计再完善在实际使用中也会遇到各种问题。以下是我在部署和使用过程中踩过的坑以及解决方案。5.1 部署与连接问题问题1运行bash setup.sh时在创建 Cloudflare 资源阶段失败。可能原因AWrangler 未登录或令牌过期。解决运行wrangler whoami确认登录状态。如果未登录重新执行wrangler login。有时需要退出后重新登录。可能原因B账户权限不足。解决确认你的 Cloudflare 账户有权限创建 Workers、D1、Vectorize 等资源。如果是团队账户请联系管理员。可能原因C网络超时。解决Cloudflare API 偶尔不稳定。可以尝试分段执行setup.sh脚本里的命令。查看脚本内容手动执行wrangler d1 createwrangler vectorize create等然后再运行npm run deploy。问题2AI 客户端无法连接提示“无法连接到 MCP 服务器”或“认证失败”。检查清单地址是否正确确认 MCP 端点 URL 是https://.../mcp而不是根路径。CORS 配置这是最常见的原因。登录 Cloudflare Dashboard检查 Worker 的ALLOWED_ORIGINS变量是否包含了客户端的精确域名如https://claude.ai。确保没有尾随空格用逗号分隔。Worker 状态在 Dashboard 中查看 Worker 是否部署成功且处于“Active”状态。可以尝试访问https://你的域名.workers.dev/health应该返回{status:ok}。API 密钥仅限 stdio 代理如果使用 stdio 代理方式Claude Code/Codex CLI检查MCP_MEMORY_API_KEY环境变量是否与设置的API_SECRET一致。本地代理/防火墙如果你使用了网络代理请确保wrangler和你的 AI 客户端能通过代理访问互联网。可以尝试在终端设置export HTTPS_PROXYhttp://你的代理:端口。问题3连接成功但 AI 不主动调用记忆工具。根本原因AI 没有被“教导”何时该调用工具。这需要配置System Prompt。解决方案以 Claude Code 为例在你的项目根目录或家目录创建或修改.claude/settings.json或在 Claude Code 的会话中直接设置 System Prompt。内容需要包含明确的指令例如你已连接到长期记忆服务器。请遵循以下规则 1. 在每次对话开始时自动调用 memory_auto_inject 工具载入与当前项目相关的记忆。 2. 在以下情况请主动调用 memory_save 工具保存记忆 - 当我或你做出一个重要的技术决策或架构选择时。 - 当我们解决了一个复杂的 bug 或问题时。 - 当我明确表达了对代码风格、工具或流程的偏好时。 - 在对话结束时总结本次会话的核心成果并保存。 3. 当我询问过去的事情时请使用 memory_search 工具进行语义搜索。 请用中文与我沟通并在使用工具时向我简要说明原因。不同的 AI 模型和客户端对 System Prompt 的响应程度不同可能需要多次调整和强化指令。5.2 功能使用与性能问题问题4记忆搜索 (memory_search) 结果不准确或找不到。原因AEmbedding 模型差异。记忆存入时使用的 embedding 模型bge-m3和你的查询语句产生的 embedding 可能存在语义鸿沟。解决尝试用更自然、更接近记忆内容的语言进行搜索。例如记忆内容是“用axios.interceptors处理全局请求错误”搜索“HTTP 请求出错怎么办”比搜索“axios 配置”可能效果更好。原因B记忆数量太少。Vectorize 索引需要一定的数据量才能更好地工作。解决主动多保存一些记忆。也可以使用项目自带的scripts/batch-import.mjs脚本批量导入你已有的 Markdown 或文本格式的知识库。原因C未包含归档记忆。默认搜索只找active记忆。解决在调用memory_search时设置参数include_legacy: true。问题5每日 Cron 治理似乎没有运行。检查步骤在 Cloudflare Dashboard 中进入你的 Worker查看Triggers标签页。确认有一个 Cron 触发器计划表达式为0 3 * * *每天 UTC 时间 3 点运行。查看 Worker 的Logs。在 UTC 时间 3 点前后搜索 “Cron job started” 等相关日志。免费 Workers 的日志可能有延迟或条数限制。检查环境变量CRON_ENABLED是否被意外设置为false。注意Cron 任务只处理active状态的记忆。如果所有记忆都是新加的或经常被访问可能没有达到DECAY_DAYS的条件因此看不到归档动作。问题6Codex CLI 在exec模式下无法使用记忆工具。这是 Codex CLI 自身的限制不是 Memory Server 的问题。在codex exec --full-auto这种非交互式模式下Codex 会要求用户批准所有 MCP 工具调用但由于无人交互调用会被自动取消。变通方案使用交互模式直接运行codex进入交互式 Shell在此模式下可以手动批准工具调用。依赖 Claude Code在 Claude Code 中调用 Codex 时记忆的保存和读取由 Claude Code 负责不受此限制影响。谨慎使用 bypass 参数codex exec --dangerously-bypass-approvals-and-sandbox可以绕过批准但会同时禁用安全沙箱仅建议在完全受控的测试环境中使用。5.3 资源超限与成本控制问题7收到 Cloudflare 额度超限的警告。分析免费额度对于个人重度使用通常是足够的。超限可能源于过度频繁的 AI 摘要每次memory_save默认都会调用 Workers AI 生成摘要。大量记忆的 Cron 治理AI_SAMPLE_SIZE设置过大导致每日 Cron 消耗大量 AI 神经元。被恶意访问或爬虫攻击。应对策略关闭 AI 摘要设置环境变量SUMMARY_ENABLEDfalse。记忆将使用内容前一段作为摘要功能降级但核心的存储和搜索不受影响。调整 Cron 参数减小AI_SAMPLE_SIZE如改为 5增加DECAY_DAYS如改为 180降低治理频率和强度。设置速率限制在 Cloudflare Dashboard 的Security-WAF-Rate limiting rules中为你的 Worker 端点创建一条速率限制规则防止滥用。监控用量定期在 Cloudflare Dashboard 的Workers Pages总览页查看各项资源的使用情况。最后这个项目的价值在于持续使用和迭代。刚开始可能觉得手动保存记忆有点麻烦但一旦积累了几十条有价值的记忆后你会发现 AI 助手真正变成了一个了解你项目和习惯的“老伙计”。那种无需重复解释上下文、直接基于过往经验协作的流畅感会彻底改变你与 AI 编程的交互体验。