为AI编码工具构建持久记忆层:Memex实现会话连续性与上下文管理
1. 项目概述为AI编码工具构建持久记忆层如果你和我一样每天都在和各种AI编码助手打交道——Claude、Cursor、Copilot或者本地的Ollama模型——那你一定经历过这种令人抓狂的场景每次打开一个新的会话AI助手都像一张白纸完全不知道你是谁、你在做什么项目、上周解决了什么棘手问题。于是你不得不一遍又一遍地粘贴项目背景、解释技术栈、复述那些踩过的坑。这种重复劳动不仅浪费时间更打断了你的心流状态让AI本该带来的效率提升大打折扣。Memex就是为了解决这个核心痛点而生的。它不是一个全新的AI助手而是一个记忆层一个专为AI编码工具设计的“外置大脑”。它的核心思想非常简单将项目上下文、历史决策、未完成任务和已知的“坑”持久化地存储在你的项目目录里。无论你使用哪个AI工具付费的Claude、免费的Ollama或是IDE里的Cursor Agent也无论隔了多久再次打开项目Memex都能让AI助手“记得”之前发生的一切真正做到会话的连续性。想象一下这样的工作流周一你用Claude CLI开始构建一个电商应用的支付流程讨论了技术选型并记录下“Stripe Webhook事件在高负载下可能乱序”这个关键陷阱。周二你切换到Cursor IDE继续工作只需一句“从我们昨天停下的地方继续”Cursor Agent就能通过Memex自动获取所有上下文无缝衔接。这种体验才是AI辅助编程应有的样子。2. 核心设计思路与架构解析Memex的设计哲学可以概括为“本地优先、工具无关、按需取用”。这九个字背后是一套针对开发者真实工作场景的深度思考。2.1 为什么是“记忆层”而非“超级助手”市面上已经有很多功能强大的AI编码工具但它们大多将“记忆”功能作为附属品或者将其绑定在特定的云服务上。Memex选择了一条不同的路它不试图取代Claude或Copilot而是成为它们之间、以及它们与你的项目历史之间的粘合剂。这种定位带来了几个关键优势避免供应商锁定你的记忆数据存储在本地的.memex/memex.dbSQLite文件中格式透明。你可以今天用Claude明天换Cursor后天用本地的DeepSeek Coder模型记忆始终跟随项目而不是跟随某个特定的AI服务商。成本与隐私可控Memex只在每个会话结束时调用一次AI API你选择的任何提供商来“压缩”和总结当次会话的冗长记录将其转化为结构化的记忆任务、决策、陷阱等。会话过程中的所有原始记录和最终的记忆数据库都完全留在你的本地磁盘上。对于企业用户这个压缩调用甚至可以路由到内部的LiteLLM代理确保代码和会话内容不出内网。上下文长度不再是瓶颈大型语言模型LLM的上下文窗口有限且填满长上下文会显著增加成本和延迟。Memex通过MCPModel Context Protocol工具让AI助手可以“按需查询”记忆。AI启动时只获得一个极简的摘要当它需要了解项目细节时再通过get_context()、get_gotchas()等工具实时获取相关信息。这就像给你的AI助手配了一个高效的“外部知识库”而不是每次都把整个图书馆塞进它的短期记忆。2.2 核心工作流程拆解Memex的工作流程清晰且自动化程度高开发者几乎无需干预会话记录当你运行memex start claude时Memex会启动Claude CLI或其他代理并开始记录终端中的所有输入和输出保存为结构化的JSONL和原始文本文件到.memex/sessions/目录。会话结束与压缩当你退出会话输入exit、按CtrlC或直接关闭终端窗口Memex会捕获退出信号并将本次会话的完整记录发送给你预先配置的AI模型例如Ollama本地模型、Groq API等进行一次“压缩”处理。记忆提取与存储AI模型会分析会话记录提取出关键信息如项目摘要与技术栈这个项目是做什么的用了什么框架和数据库当前聚焦点我们最近主要在攻克哪个模块或功能待办任务还有哪些事情没做完关键决策及其原因为什么选择Prisma而不是TypeORM需要避开的陷阱那个诡异的“在useEffect中直接更新状态导致无限循环”的Bug。 这些结构化信息被保存回本地的SQLite数据库.memex/memex.db。恢复与查询下次运行memex resume claude时Claude启动后会立即收到一个来自Memex的简短提示告知项目当前状态。随后在整个会话中Claude可以通过内置的MCP工具随时查询详细的记忆内容。注意Memex对意外退出的处理非常健壮。即使你强制关闭了终端窗口SIGKILLMemex也会在进程完全退出前尽可能写入恢复标记。下次resume时它会检测到未压缩的会话并优先处理确保“记忆”不会丢失。2.3 技术栈与关键依赖Memex本身是一个TypeScript编写的Node.js CLI工具它的技术选型充分考虑了可靠性、性能和开发者体验SQLite作为本地存储引擎无需额外服务零配置每个项目独立数据库完美契合“记忆跟随项目”的理念。Model Context Protocol (MCP)这是Memex实现“工具无关”的核心。MCP是一个新兴的开放协议允许AI模型安全地与外部工具和数据进行交互。Memex实现了MCP Server将本地数据库暴露为一组工具get_context,get_tasks等任何兼容MCP的AI客户端如Claude CLI、Cursor Agent都可以调用。LiteLLMMemex利用LiteLLM作为统一的AI API调用抽象层。这意味着你可以通过一套环境变量配置轻松切换 between Anthropic、OpenAI、Groq、Gemini、Ollama乃至任何自定义的LiteLLM代理端点Memex内部的处理逻辑完全一致。进程管理与信号处理为了可靠地捕获会话结束事件并进行压缩Memex需要精细地处理子进程AI代理的生命周期和Unix信号SIGINT, SIGTERM等这是保证数据不丢失的关键。3. 从零开始安装与多环境配置实战Memex的安装过程极其简单但其配置的灵活性却足以覆盖从个人免费使用到企业级部署的所有场景。下面我将带你一步步走通几种最典型的配置方案。3.1 基础安装无论选择哪种AI后端都需要先安装Memex CLI工具。推荐使用npm进行全局安装这样可以在系统的任何位置使用memex命令。npm install -g patravishek/memex安装完成后运行memex --version验证是否成功。接下来就是配置AI提供商这是Memex唯一需要你设置的地方。3.2 方案一零成本本地方案Ollama对于注重隐私、希望完全离线运行、或想完全控制成本的开发者Ollama是首选。安装Ollama前往 ollama.com 下载并安装Ollama。拉取模型Ollama安装后在终端拉取一个适合编程的模型。llama3.1在代码生成和理解上表现均衡deepseek-coder-v2则专精于代码。ollama pull llama3.1 # 或者 ollama pull deepseek-coder-v2配置环境变量编辑你的Shell配置文件~/.zshrc或~/.bashrc添加以下行export OLLAMA_BASE_URLhttp://localhost:11434 export LITELLM_MODELollama/llama3.1 # 与你拉取的模型对应OLLAMA_BASE_URL告诉LiteLLM去哪里找Ollama服务LITELLM_MODEL指定使用的模型。ollama/前缀是LiteLLM用于识别Ollama模型的约定。生效配置source ~/.zshrc # 或 source ~/.bashrc实操心得在Apple Silicon Mac上Ollama运行效率很高。如果觉得llama3.1响应慢可以尝试更小的模型如llama3.2或mistral。Memex的压缩任务对模型的要求是“理解并总结文本”而非“生成复杂代码”因此中等尺寸的模型通常就足够了。3.3 方案二免费高速云方案Groq如果你的网络条件好且追求极快的响应速度Groq的免费API是目前性价比极高的选择。获取API Key访问 Groq控制台 注册账号后在“API Keys”页面创建一个新的Key。配置环境变量# 在 ~/.zshrc 中添加 export LITELLM_BASE_URLhttps://api.groq.com/openai/v1 export LITELLM_API_KEYgsk_你的密钥 export LITELLM_MODELgroq/llama-3.1-8b-instant # 或其他Groq支持的模型如 mixtral-8x7b-32768Groq的API兼容OpenAI格式所以LITELLM_BASE_URL需要指向Groq的OpenAI兼容端点。生效配置同样执行source ~/.zshrc。注意事项Groq的免费额度有每分钟请求数和每日令牌数的限制但对于Memex这种仅在会话结束时调用一次的场景通常完全够用。你可以通过Groq控制台监控使用量。3.4 方案三企业级方案LiteLLM代理在大型企业环境中AI API的调用通常需要通过统一的代理进行管理、审计和成本分摊。获取内部配置联系你的基础设施或AI平台团队获取内部LiteLLM代理的地址、API Key以及可用的模型名称。配置环境变量export LITELLM_API_KEY你的企业密钥 export LITELLM_BASE_URLhttps://litellm.internal.your-company.com export LITELLM_MODELclaude-3-haiku-20240307 # 企业代理背后映射的实际模型 # 可选团队标识用于成本分摊 export LITELLM_TEAM_IDyour_team_id这种配置下所有的AI压缩调用都会经过公司内部代理数据不出境完全符合安全合规要求。3.5 配置验证与自动探测配置完成后如何知道Memex识别了你的设置Memex采用了一套清晰的自动探测逻辑如果同时设置了LITELLM_API_KEY和LITELLM_BASE_URLMemex会优先使用LiteLLM配置。这覆盖了OllamaBase URL为本地、Groq、Gemini和企业代理。如果设置了ANTHROPIC_API_KEY则使用AnthropicClaude的官方API。如果设置了OPENAI_API_KEY则使用OpenAI的官方API。你可以通过运行一个简单的命令来测试配置是否生效并查看Memex将使用哪个提供商# 进入一个临时目录初始化Memex不会真的启动AI cd /tmp/test-memex memex init # 尝试触发一个需要AI的操作比如查看状态初始状态无需AI memex status # 更直接的测试是运行一个非常短暂的会话然后退出 memex start claude # 在Claude启动后立即输入 exit # 观察退出时的日志看是否成功调用了AI进行压缩如果配置错误在会话退出进行压缩时你会看到类似“Failed to call AI provider”的错误信息并提示检查环境变量。4. 核心工作流与命令深度解析Memex的命令行接口设计得非常简洁核心命令只有两个start和resume。但围绕它们有一系列辅助命令让你能精细地控制和管理记忆。让我们深入每一个命令的细节和使用场景。4.1 基石命令memex start与memex resume这是你每天都会用到的命令理解它们的行为至关重要。memex start [agent]这个命令用于在一个项目上首次开始一个被Memex跟踪的会话或者你想清空现有记忆并重新开始。作用初始化项目记忆数据库如果不存在启动指定的AI代理如claude并开始记录整个会话。幕后工作检查当前目录下是否存在.memex/memex.db若无则创建。自动将.memex/和.mcp.json添加到项目的.gitignore中防止敏感的记忆数据被意外提交。启动AI代理进程并将其标准输入输出重定向到Memex的记录器。设置进程信号监听器准备在会话结束时触发压缩。使用示例cd ~/projects/my-nextjs-app memex start claude此时Claude CLI会正常启动你可以像往常一样与它对话。所有交互都被默默记录。memex resume [agent]这是Memex价值的核心体现用于恢复之前的工作。作用在已有记忆的项目中启动AI代理并自动为其注入项目上下文。幕后工作加载.memex/memex.db中的记忆。启动AI代理但在代理首次输出前Memex会先向代理发送一条系统提示内容大致是“你正在使用Memex。当前项目是X聚焦于Y。你可以使用get_context()等工具获取详细记忆。”如果AI代理支持MCP如Claude CLIMemex会自动通过MCP服务器将记忆工具暴露给它。如果不支持Memex会将关键记忆作为上下文文本直接插入。使用示例cd ~/projects/my-nextjs-app memex resume claude启动后Claude可能会主动说“我看到我们正在开发一个Next.js电商应用当前聚焦于支付流程。上次我们完成了购物车持久化待办事项是集成Stripe Webhook。需要我查看更详细的待办列表或已知问题吗”4.2 高级恢复选项精准控制上下文从v0.4开始memex resume提供了强大的选项来管理上下文注入的精度和成本。--focus topic这是我最常用的选项。它告诉Memex“这次会话我们主要关心‘支付流程’或‘身份验证Bug’”。Memex会利用这个焦点对记忆中的任务、陷阱、决策进行相关性排序让AI优先获取最相关的信息。这个焦点还会被自动保存下次恢复时无需重复指定。memex resume claude --focus stripe webhook idempotency--tier level控制初始注入上下文的详细程度。这在担心令牌消耗或AI初始响应慢时非常有用。--tier 1默认注入一个简短的、一行式的项目状态摘要。--tier 2注入关键事实如项目描述、技术栈、当前焦点和几个最高优先级的任务/陷阱。--tier 3注入更全面的上下文摘要。通常与--no-mcp一起使用作为MCP不可用时的备选方案。--max-tokens number为初始上下文设置硬性的令牌上限。Memex会尽可能在限制内打包最重要的信息。memex resume claude --focus auth --max-tokens 500--no-mcp强制禁用MCP工具连接。所有记忆信息将通过初始提示词一次性注入。仅在AI代理不支持MCP或MCP连接出现问题时使用因为这会浪费令牌且无法进行后续的按需查询。memex resume claude --no-mcp --tier 2实操心得对于日常开发我通常使用memex resume claude --focus “模块名”。这就像给AI助手一个明确的“议程”让它能快速进入状态。只有在网络环境极差或使用某些特殊代理时我才会考虑--no-mcp。4.3 记忆管理命令这些命令帮助你查看、搜索和维护你的项目记忆库。memex status快速概览项目的“记忆快照”。在开始一天的工作前或切换项目时运行一下这个命令能帮你迅速找回上下文。memex — project memory Project: my-nextjs-app What this project does: A full-stack e-commerce platform with real-time inventory. Tech stack: Next.js 15, TypeScript, Tailwind, Prisma, PostgreSQL, Stripe Current focus: Implementing order fulfillment webhook Pending tasks: - [High] Handle payment_intent.succeeded webhook to update order status - [Medium] Add retry logic with exponential backoff for failed webhook calls - [Low] Write unit tests for the new webhook handler Gotchas: - Stripe webhook signatures must be verified using the raw request body, not the parsed JSON. - The prisma.order.update call within the webhook needs to be wrapped in a transaction if inventory is also updated. Sessions recorded: 8 Database: /Users/you/projects/my-nextjs-app/.memex/memex.dbmemex history与memex show idmemex history列出所有历史会话包括日期、时长和AI生成的一行总结。当你记不清某个修改是何时做出的或者想回顾解决问题的思路时这个命令非常有用。memex history -n 10 # 查看最近10条记录memex show id则让你可以“时光倒流”查看某次会话的完整记录和总结。这对于复盘复杂问题的解决过程或者找回当时讨论过但没记录下来的某个细节是无价之宝。memex search query这是记忆库的“搜索引擎”。它会对所有历史会话的总结进行全文检索。memex search Cannot read properties of undefined memex search database connection pool当你遇到一个似曾相识的错误或想看看之前关于某个技术点的讨论时直接用自然语言搜索即可。memex focus专门管理“当前焦点”的命令。焦点是Memex中一个非常重要的元数据它影响着get_context()等工具的返回结果排序。memex focus refactor user authentication to use NextAuth.js # 设置新焦点 memex focus --list # 查看焦点历史 memex focus --clear # 清除当前焦点我习惯在开始一个全新的开发任务时先用memex focus设置焦点。这样后续所有相关的记忆查询都会围绕这个主题展开。4.4 维护与清理命令memex prune [days]Memex会保存所有会话记录长期下来.memex/sessions/目录可能会变大。这个命令帮你清理旧数据默认删除30天前的记录。memex prune # 删除30天前的会话 memex prune 7 # 删除7天前的会话注意prune只删除原始的会话日志文件.jsonl和.txt不会删除已经压缩并提取到memex.db中的结构化记忆任务、决策、陷阱等。所以你的核心记忆是安全的。memex forget核武器。清除当前项目的所有记忆包括数据库中的结构化记忆。慎用memex forget # 清除一切重新开始 memex forget --keep-sessions # 只清除结构化记忆保留原始会话日志文件通常只在项目发生翻天覆地的重构旧记忆完全失去参考价值时才会使用。5. 与各类AI工具深度集成实战Memex的威力在于其普适性。它不仅能与Claude CLI协同工作还能通过MCP协议与几乎所有现代AI编码工具打通。下面我们看看几种典型的集成场景。5.1 与Claude CLI的集成开箱即用的流畅体验这是最直接、最无缝的集成。安装好Memex并配置好API Key后你只需要把习惯的claude命令换成memex start claude或memex resume claude即可。工作流示例周一上午你开始一个新功能。cd ~/project memex start claude # Claude: 你好我看到这是一个React Node.js项目。今天想做什么 # 你: 我们需要给用户个人资料页添加一个“最近活动”的时间线组件。 # ...经过一系列讨论和编码... # 你: exit # [Memex自动压缩并保存会话]周一下午你被打断后回来。cd ~/project memex resume claude # Claude: 欢迎回来我们正在为个人资料页构建“最近活动”时间线。 # 上次我们决定使用react-chartjs-2来渲染时间线并讨论了如何从后端API获取数据。 # 待办实现/api/user/activity端点。 # 需要我继续吗周二你换了一台电脑拉取了最新的代码和.memex目录如果共享了。同样的memex resume claude命令让你瞬间回到昨天的上下文。避坑技巧如果你在Claude会话中不小心输入了密码、密钥等敏感信息立即用memex:skip标签包裹起来。Memex在压缩时会自动剔除这部分内容防止其进入长期记忆。我刚刚测试了数据库连接密码是 memex:skip DB_PASSWORDSuperSecret123! /memex:skip 连接成功了。5.2 与IDE代理集成Cursor、Copilot与Codex对于深度依赖IDE如VS Code、Cursor及其内置AI代理Cursor Agent、GitHub Copilot Chat的开发者Memex同样提供了完美的解决方案。你不需要在IDE里运行CLI而是让IDE代理直接连接到Memex的MCP服务器来查询记忆。配置步骤在项目根目录初始化Memexcd ~/project memex init这个命令只创建.memex/memex.db和必要的配置文件不会启动CLI会话。设置MCP连接memex setup-mcp这个命令会在你的项目根目录创建或更新.cursor/mcp.json针对Cursor或.vscode/mcp.json针对VS Code with Copilot将Memex的MCP服务器配置进去。在IDE中工作现在当你打开Cursor或VS Code并激活AI代理如Cursor Agent时它就已经具备了调用Memex工具的能力。唤醒记忆在AI聊天框中输入一个简单的提示请从memex MCP加载本项目的上下文记忆。或者更自然一点我们之前在这个项目上做到哪了看看memex里有什么。AI代理会调用get_context()工具获取项目摘要、待办事项等然后基于这些信息与你对话。互通性验证这正是Memex设计最精妙的地方。你可以白天在终端用memex start claude和Claude CLI一起写后端API。晚上在Cursor里用Cursor Agent和Memex的记忆一起写前端组件。两者共享同一份项目记忆完全无缝衔接。5.3 与其他CLI代理集成Memex理论上可以与任何通过STDIN/STDOUT进行交互的CLI工具集成。官方文档提到了aider和sgpt(ShellGPT)。其原理是memex start [command]会启动你指定的命令并记录其所有输入输出。例如使用开源的代码编辑助手aidermemex start aider只要aider在对话结束后能正常退出响应exit或CtrlCMemex就能捕获到会话并完成压缩。注意事项不是所有CLI工具都适合。工具需要是交互式的并且其输出主要是文本。对于图形化界面或输出大量二进制数据的工具Memex无法有效工作。5.4 MCP工具详解AI如何与记忆交互当AI代理通过MCP连接到Memex后它可以调用一系列工具。理解这些工具有助于你更好地“指导”AI利用记忆。工具名描述与使用场景get_context(focus?: string, tier?: 1|2|3)最核心的工具。获取项目整体上下文。可选的focus参数进行相关性过滤tier控制详细程度。AI在会话开始时通常会主动调用。get_tasks()获取所有未完成的待办任务列表。当AI问“接下来做什么”或你让它“列出剩余任务”时被调用。get_gotchas()获取所有需要避开的陷阱、已知问题、边界条件。在实现容易出错的逻辑时特别有用。get_decisions()获取项目历史上的关键架构或技术决策及其原因。防止前后决策矛盾。get_important_files()获取被标记为重要的文件路径列表。帮助AI快速理解项目结构。get_recent_conversation(n?: number)获取上一次会话的最后N轮对话默认10。用于恢复具体的讨论思路。search_sessions(query: string)在所有历史会话中搜索包含关键词的总结。当需要追溯模糊记忆时使用。get_session(id: number)获取特定ID会话的详细信息。save_observation(type, content)主动记忆工具。允许AI在会话中途即时保存一个重要发现。例如当你们一起解决了一个棘手的BugAI可以立即调用save_observation(gotcha, 在Next.js 15的Server Action中直接重定向会抛出错误需要使用redirect()函数。)将其存入记忆。给AI的提示词技巧你可以直接告诉AI代理如何更好地利用这些工具。例如“在开始每个新话题前请先调用get_context()看看我们有没有相关的历史决策或陷阱。如果你发现我们达成了一个重要的结论或遇到了一个值得记录的坑请使用save_observation工具把它记下来。”6. 常见问题与故障排查实录即使设计得再完善在实际使用中总会遇到一些问题。下面是我在长期使用Memex过程中积累的一些常见问题和解决方法。6.1 安装与配置问题Q1: 运行memex start claude提示“Command not found: claude”原因Memex需要调用系统安装的Claude CLI。你还没有安装它。解决前往 Anthropic官方文档 安装Claude CLI。确保安装后claude命令可以在终端中直接运行。Q2: 会话结束时没有出现“Memory updated”的成功提示或者提示AI调用失败。原因环境变量配置错误或者AI服务如Ollama、Groq API不可用。排查步骤检查环境变量运行echo $LITELLM_API_KEY(或$ANTHROPIC_API_KEY等) 确认已设置且正确。测试AI服务对于Ollama运行ollama run llama3.1看模型是否能正常加载和对话。对于Groq/OpenAI等可以使用简单的curl命令或litellm命令行测试连通性。例如litellm --model groq/llama-3.1-8b-instant --prompt hello。查看详细日志Memex在运行时会输出日志。如果失败可以尝试设置更详细的日志级别如果Memex支持或查看其临时文件。更直接的方法是运行一次非常短的会话然后立即退出观察终端输出。Q3: 在企业网络下连接Ollamalocalhost:11434或外部API超时。原因代理或防火墙设置。解决对于Ollama确保Ollama服务正在运行 (ollama serve)并且监听在正确的端口。对于外部API你可能需要配置HTTP/HTTPS代理。可以通过环境变量设置export HTTP_PROXYhttp://your-proxy:port export HTTPS_PROXYhttp://your-proxy:port如果是LiteLLM企业代理请确保LITELLM_BASE_URL是正确的并且你的网络可以访问。6.2 使用与功能问题Q4:memex resume时AI好像没有获取到之前的记忆。原因1MCP连接未成功建立。某些AI代理可能需要显式启用或配置MCP。解决首先确认你使用的是支持MCP的AI代理如Claude CLI最新版。尝试使用--no-mcp参数看AI是否能通过初始提示词获得记忆。如果能说明是MCP连接问题。可以运行memex setup-mcp重新配置或检查AI代理的MCP设置。原因2记忆数据库文件损坏或路径不对。解决运行memex status查看当前项目的记忆状态。如果报错或显示为空可能是.memex/memex.db文件损坏。可以尝试备份后删除该文件然后重新memex init注意这会丢失所有记忆。Q5: 我的会话记录文件.memex/sessions/越来越大占用了很多磁盘空间。解决定期使用memex prune命令清理旧会话。例如memex prune 14只保留最近两周的原始日志。再次强调prune不会删除已压缩的核心记忆任务、决策等它们安全地存储在SQLite数据库中占用空间很小。Q6: 我不小心把.memex/目录提交到Git仓库了解决Memex在第一次运行memex start或memex init时会尝试自动将其添加到.gitignore。但如果已经提交需要手动移除git rm -r --cached .memex/ .mcp.json # 从Git索引中删除 git commit -m “chore: stop tracking Memex data” # 确保 .gitignore 中包含 .memex/ 和 .mcp.json echo .memex/ .gitignore echo .mcp.json .gitignore git add .gitignore git commit -m “chore: update gitignore for Memex”6.3 性能与优化Q7: 会话结束时的“压缩”过程很慢尤其是使用本地Ollama时。原因压缩需要AI模型处理整个会话的文本如果会话很长数小时、数千行本地小模型可能需要较长时间。优化使用更快的模型尝试Groq的API其推理速度通常远快于本地部署。缩短会话养成阶段性退出的习惯。完成一个功能模块后就exit一次而不是一整天不退出。这样每次压缩的文本量更小速度更快。调整压缩模型如果你使用LiteLLM配置可以尝试换一个更快/更便宜的模型专门用于压缩例如groq/llama-3.1-8b-instant或gemini/gemini-1.5-flash。Q8: 感觉AI在resume时加载的上下文不够精准还是问了一些已经讨论过的问题。原因记忆的提取和查询依赖AI压缩总结的质量和get_context()调用的参数。优化善用--focus参数在memex resume时明确指定本次会话的焦点Memex会据此对记忆进行相关性排序。引导AI主动查询在会话开始时主动告诉AI“请先调用get_context()看看我们关于支付流程的讨论特别是那些‘gotchas’。” 或者 “调用get_tasks()列出所有待办事项。”提高压缩质量在会话中当你和AI得出一个重要结论或发现一个关键陷阱时可以用自然语言强调“这是一个非常重要的决策请务必记住。” 或者 “这是一个容易踩的坑我们需要记录下来。” 这能帮助压缩AI更好地识别关键信息。经过几个月的深度使用Memex已经从一个小众工具变成了我开发工作流中不可或缺的一环。它解决的远不止是“忘记上下文”的问题更是将AI从一个一次性的、健忘的对话伙伴转变成了一个拥有长期记忆、持续成长的协作工程师。那种第二天打开IDEAI助手能清晰地说出“我们昨天在解决那个异步状态更新的竞态条件方案是使用AbortController”的感觉极大地提升了心流效率和开发体验。如果你也厌倦了重复的上下文粘贴强烈建议花半小时配置体验一下它很可能会改变你使用AI编码的方式。