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

资讯详情

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

agentmemory 配置完全指南:环境变量、特性开关与端口四元组详解

agentmemory 配置完全指南:环境变量、特性开关与端口四元组详解 agentmemory 配置完全指南环境变量、特性开关与端口四元组详解【免费下载链接】agentmemory#1 Persistent memory for AI coding agents based on real-world benchmarks项目地址: https://gitcode.com/GitHub_Trending/age/agentmemory导读本文以 agentmemory 官方配置技能文档plugin/skills/agentmemory-config/SKILL.md为骨架系统讲解 agentmemory 的完整配置体系配置从哪些来源读取、如何用一行~/.agentmemory/.env开启 LLM 记忆压缩与上下文注入、默认情况下哪些特性被刻意关闭、REST/Streams/Viewer/Engine 四个端口的派生规则与整体搬迁方法以及全部 37 个AGENTMEMORY_*环境变量的用途。读完本文你将能独立完成 agentmemory 的初始化配置、Provider 密钥接入、端口规划、REST API 认证加固与特性开关调优。配置从哪来环境变量与~/.agentmemory/.envagentmemory 的配置只来自两个地方进程环境变量以及~/.agentmemory/.env文件。文档明确要求该文件采用KEYvalue格式每行一个变量不需要也不能加export前缀修改配置后必须重启服务才能生效。.env文件的解析规则src/config.ts 中的loadEnvFile()给出了文件解析的精确语义值得逐条对照空行与注释空行被忽略以#开头的行被跳过键值分割按第一个切分两侧空白会被trim()掉引号值若以或开头会提取到匹配的闭合引号为止支持单引号与双引号行内注释未加引号的值中遇到#空格加井号会截断为行内注释便于在值后追加说明缓存解析结果在进程生命周期内被记忆化memoized避免每个配置 getter 都重复读盘getMergedEnv()会被约 20 个配置读取函数调用。优先级与合并配置读取并不是简单的要么 env 要么文件。getMergedEnv()src/config.ts按如下优先级合并文件变量 真实进程环境变量 调用方显式覆盖也就是说.env中设置的变量不会覆盖shell 中已导出的同名变量。此外启动时hydrateProcessEnvFromFile()src/config.ts会把.env中的变量回填进process.env仅在当前未设置时保证那些直接读process.env的模块也能看到.env中的值。快速开始一份最小可用配置按 SKILL.md 的 Quick start在~/.agentmemory/.env中写入以下三行即可开启更丰富的记忆 Provider 密钥ANTHROPIC_API_KEYsk-ant-... AGENTMEMORY_AUTO_COMPRESStrue AGENTMEMORY_INJECT_CONTEXTtrue其中ANTHROPIC_API_KEY是 LLM Provider 密钥用于 LLM 压缩与摘要。agentmemory 并非只能使用 Anthropic——detectProvider()src/config.ts按以下顺序自动探测 Provider先命中者生效触发条件Provider默认模型OPENAI_API_KEY且OPENAI_API_KEY_FOR_LLM ! falseopenaigpt-5.6-luna可用OPENAI_MODEL覆盖MINIMAX_API_KEYminimaxMiniMax-M3ANTHROPIC_API_KEYanthropicclaude-sonnet-5可用ANTHROPIC_MODEL覆盖GEMINI_API_KEY或GOOGLE_API_KEYgeminigemini-3.7-flashOPENROUTER_API_KEYopenrouteranthropic/claude-sonnet-5可用OPENROUTER_MODEL覆盖以上皆无noop零 LLM 模式—AGENTMEMORY_AUTO_COMPRESStrue开启按观测observation的 LLM 压缩AGENTMEMORY_INJECT_CONTEXTtrue开启向 Claude Code 会话内注入上下文的钩子行为。值得记住的默认值零 LLM 模式与刻意关闭的开关SKILL.md 强调了几条反直觉但重要的默认行为源码中均有对应实现无 API Key 也能跑zero-LLM 模式不需要任何 API Key。当探测不到任何 Provider 密钥时agentmemory 以noopProvider 运行零 LLM 模式检索基于 BM25 全文索引 本地设备端 embedding完全不依赖外部模型src/config.ts 会在启动时打印提示说明这是刻意设计的降级路径。这意味着开箱即用、零成本只是缺少 LLM 生成的摘要与总结。花 token 的特性默认关闭AGENTMEMORY_AUTO_COMPRESSLLM 摘要与AGENTMEMORY_INJECT_CONTEXT自动上下文注入出厂即关因为二者的 token 消耗都与工具调用频率成正比isAutoCompressEnabled()src/config.ts要求值严格等于字符串true才开启关闭时观测仍会通过合成压缩synthetic compression路径被捕获和索引回忆/搜索功能不受影响isContextInjectionEnabled()src/config.ts同理关闭时 pre-tool-use 与 session-start 钩子仍会 POST 观测用于后台捕获但绝不向 stdout 写上下文避免每个工具回合都被注入约 4000 字符的上下文块而悄悄烧掉模型输入窗口的 token。开启后会收到一次明显的启动警告。同类默认关闭、需显式开启的开关还包括AGENTMEMORY_SLOTS内存槽位与AGENTMEMORY_REFLECT槽位反思且要求AGENTMEMORY_SLOTStrue关闭时对应 API 会返回带enableHow提示的 503 响应见 src/triggers/api.ts。工具可见性AGENTMEMORY_TOOLSAGENTMEMORY_TOOLSall默认暴露完整工具面core只暴露 8 个必备工具。getVisibleTools()src/mcp/tools-registry.ts据此过滤ESSENTIAL_TOOLSsrc/mcp/tools-registry.ts定义的 core 集合为memory_save, memory_recall, memory_consolidate, memory_smart_search, memory_sessions, memory_diagnose, memory_lesson_save, memory_reflect若把--tools命令行参数设为all/core以外的值CLI 会回退到all并打印警告src/cli.ts。认证AGENTMEMORY_SECRET设置AGENTMEMORY_SECRET后REST API 要求每个请求携带Authorization: Bearer secret头。认证校验在 src/triggers/api.ts 实现采用 HMAC-SHA256 包装后的timingSafeEqual恒定时间比较src/auth.ts避免时序侧信道。未设置 secret 时返回 200/开放访问设置了但请求头缺失或错误时返回401 unauthorized某些敏感功能如 viewer 代理、mesh 同步在未配置 secret 时会返回503提示requires AGENTMEMORY_SECRETsrc/triggers/api.ts。需要注意AGENTMEMORY_VIEWER_HOSTviewer 对外绑定 host一旦设置就强制要求同时设置AGENTMEMORY_SECRET否则拒绝启动——这是为了防止将未认证的 viewer 暴露到非回环地址src/viewer/server.ts。端口四元组3111 / 3112 / 3113 / 49134 的派生与搬迁SKILL.md 给出了端口布局的核心规则REST 是锚点固定在 3111。Streams N13112Viewer N23113Engine N4602349134。用--port N或--instance N整体搬迁整个端口块。源码实现印证了这一设计REST 锚点默认III_REST_PORT或3111src/config.tsCLI 的getRestPort()还会优先从AGENTMEMORY_URL解析端口src/cli.tsStreamsWebSocket 流端口默认REST 1同时兼容III_STREAM_PORT与III_STREAMS_PORT两个环境变量名src/cli.tsViewer默认REST 2可用III_VIEWER_PORT或AGENTMEMORY_VIEWER_URL覆盖src/cli.tsEngineiii-engine 内部 worker 总线默认REST 460233111 → 49134可用III_ENGINE_PORT或III_ENGINE_URLws://host:port显式指定src/cli.ts、src/config.ts。--port与--instance的区别两个 CLI 参数都能整体搬迁端口块但语义不同--port N直接把 REST 锚点改为 NStreams/Viewer/Engine 按固定偏移自动派生src/cli.ts--instance N按3111 N*100计算锚点--instance 1→ 3211/3212/3213/49234src/cli.ts。这是在一台机器上并行运行多个 daemon的最省事方式N的有效范围是 050。此外--instance还会影响数据目录数据目录会按instance-N子目录隔离见下节从多实例视角看它同时隔离了端口与状态。数据目录解析--data-dir、AGENTMEMORY_DATA_DIR与平台默认值虽然 SKILL.md 未展开但数据目录是配置体系的重要一环。resolveDataDir()src/cli-data-dir.ts按以下优先级解析--data-dir path命令行参数支持~展开与相对路径AGENTMEMORY_DATA_DIR环境变量兼容旧版当前目录下的data/state_store.db或data/iii-config.yaml存在时沿用legacy 迁移平台默认目录macOS~/Library/Application Support/agentmemoryWindows%APPDATA%/agentmemory无 APPDATA 时回退~/.agentmemoryLinux$XDG_DATA_HOME/agentmemory未设置 XDG 时为~/.local/share/agentmemory若默认目录落在 git 工作树内会自动重定位到非 XDG 变体并给出警告warnIfRelocatedDataDirsrc/cli.ts防止仓库状态被外部数据污染。--instance N时还会追加instance-N子目录实现多实例状态隔离。完整环境变量参考37 个AGENTMEMORY_*变量SKILL.md 指向的 plugin/skills/agentmemory-config/REFERENCE.md 由 scripts/skills/generate.ts 扫描src/自动生成修改变量后需运行npm run skills:gen重新生成内部标记以双下划线结尾的变量被排除。以下结合源码将 37 个变量按用途归类说明端口与网络变量说明与源码依据AGENTMEMORY_URLREST 基础 URL如http://localhost:3111被 status/doctor/MCP shim 命令用于定位服务src/cli.tsAGENTMEMORY_VIEWER_URL覆盖 viewer 访问地址src/cli.tsAGENTMEMORY_VIEWER_HOSTviewer 绑定 host非回环绑定强制要求AGENTMEMORY_SECRETsrc/viewer/server.tsAGENTMEMORY_USE_DOCKER设为1时优先走内置 docker-compose 路径而非原生 iii-engine 二进制src/cli.tsProvider 与 LLM变量说明与源码依据AGENTMEMORY_PROVIDER显式指定 Provider 名称noop/agent-sdk等影响合并功能是否启用src/config.tsAGENTMEMORY_ALLOW_AGENT_SDK设为true才允许 agent-sdk 回退会派生 Claude Agent SDK 子会话可能触发 Stop 钩子递归故默认关闭见 src/config.tsAGENTMEMORY_LLM_TIMEOUT_MSLLM 调用超时毫秒被源码扫描识别AGENTMEMORY_LLM_NOTHINKLLM 无思考模式开关被源码扫描识别AGENTMEMORY_SUPPRESS_COST_WARNING设为1/true抑制 premium 模型的成本警告src/config.ts特性开关变量说明与源码依据AGENTMEMORY_AUTO_COMPRESStrue开启按观测 LLM 压缩src/config.tsAGENTMEMORY_INJECT_CONTEXTtrue开启向会话注入上下文src/config.tsAGENTMEMORY_SLOTStrue开启内存槽位src/functions/slots.tsAGENTMEMORY_REFLECTtrue开启槽位反思需AGENTMEMORY_SLOTStruesrc/functions/slots.ts、src/triggers/api.tsAGENTMEMORY_IMAGE_EMBEDDINGStrue开启图像 embedding 与跨模态图像搜索src/functions/observe.ts、src/functions/vision-search.tsAGENTMEMORY_DROP_STALE_INDEXtrue时启动丢弃过期索引src/config.tsAGENTMEMORY_TOOLSall默认或core控制工具面src/mcp/tools-registry.ts行为与调优变量说明与源码依据AGENTMEMORY_CONSOLIDATION_COOLDOWN_MS会话 stop 触发的合并冷却窗口默认 300000ms5 分钟设 0 禁用防抖src/config.tsAGENTMEMORY_FOLLOWUP_WINDOW_SECONDS智能搜索后续查询诊断的窗口秒默认 30过长会高估、过短会低估src/config.tsAGENTMEMORY_PROBE_TIMEOUT_MSMCP shim 探测 REST 存活检查的超时毫秒超时后回退本地 InMemoryKVsrc/mcp/rest-proxy.tsAGENTMEMORY_FORCE_PROXY设为1跳过存活探测、强制走代理模式src/mcp/rest-proxy.tsAGENTMEMORY_EXPORT_ROOTObsidian 导出的根目录src/functions/obsidian-export.tsAGENTMEMORY_AGENT_SCOPEshared默认打标签不过滤召回或isolated打标签并过滤召回路径配合AGENT_ID使用src/config.tsAGENTMEMORY_VERBOSE/AGENTMEMORY_DEBUG详细日志/调试开关--verbose与-v等价src/cli.tsAGENTMEMORY_SDK_CHILDSDK 子进程标记用于阻止 Stop 钩子递归重入src/config.tsAGENTMEMORY_III_CONFIGiii-engine YAML 配置路径优先级最高src/cli.tsAGENTMEMORY_III_VERSION覆盖锁定的 iii-engine 版本默认 0.11.2src/cli.tsAGENTMEMORY_DATA_DIR数据目录--data-dir未设置时的回退见数据目录小节MCP 与连接变量说明与源码依据AGENTMEMORY_MCP_BLOCKClaude Code/Continue/OpenCode 等代理的 MCP 服务器注册块src/cli/connect/util.tsAGENTMEMORY_COPILOT_MCP_BLOCKCopilot CLI 专用 MCP 注册块src/cli/connect/util.tsAGENTMEMORY_SECRETREST API Bearer 认证密钥见上文认证一节其余被扫描识别、但仓库当前未显式引用的变量如AGENTMEMORY_COMMIT_SHA、AGENTMEMORY_CWD、AGENTMEMORY_GRAPH_WEIGHT、AGENTMEMORY_PROJECT_NAME、AGENTMEMORY_SESSION_ID、AGENTMEMORY_IMAGE_STORE_MAX_BYTES属于预留的运行时元数据或配置位具体行为请以当前安装版本的实际表现为准——这也正是 REFERENCE.md 由扫描自动生成、并要求增删变量后运行npm run skills:gen重新同步的原因。配置后的验证与排障修改~/.agentmemory/.env后记得重启服务。以下几个 CLI 命令可以辅助验证配置npx agentmemory/agentmemory doctor交互式诊断并修复配置与特性标志问题npx agentmemory/agentmemory status展示连接状态、记忆数量、特性标志与健康度npx agentmemory/agentmemory init将内置的.env.example复制到~/.agentmemory/.env若不存在是开始自定义配置的标准入口src/cli.ts。命令行入口的完整用法可通过npx agentmemory/agentmemory --help查看src/cli.ts。总结agentmemory 的配置体系可以概括为一个文件、两个来源、四口一锚、按需开关一个文件~/.agentmemory/.envKEYvalue无export改后重启两个来源环境变量与.env合并优先级为 文件 进程环境 显式覆盖四口一锚REST 3111 为锚点Streams/Viewer/Engine 按固定偏移派生--port/--instance一键整体搬迁按需开关零 LLM 模式开箱可用所有消耗 token 的特性AGENTMEMORY_AUTO_COMPRESS、AGENTMEMORY_INJECT_CONTEXT、AGENTMEMORY_SLOTS、AGENTMEMORY_REFLECT等默认关闭、显式开启AGENTMEMORY_SECRET提供 REST API 的恒定时间比较认证。如果想深入了解 REST API 中密钥的具体用法与端口四元组的设计动机可继续阅读仓库内的 plugin/skills/agentmemory-rest-api/SKILL.md 与 plugin/skills/agentmemory-architecture/SKILL.md。【免费下载链接】agentmemory#1 Persistent memory for AI coding agents based on real-world benchmarks项目地址: https://gitcode.com/GitHub_Trending/age/agentmemory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表