news 2026/9/10 20:51:25

agentmemory 配置完全指南:环境变量、端口体系与特性开关(agentmemory-config)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
agentmemory 配置完全指南:环境变量、端口体系与特性开关(agentmemory-config)

agentmemory 配置完全指南:环境变量、端口体系与特性开关(agentmemory-config)

【免费下载链接】agentmemory#1 Persistent memory for AI coding agents based on real-world benchmarks项目地址: https://gitcode.com/GitHub_Trending/age/agentmemory

本篇指南以plugin/skills/agentmemory-config技能(含 REFERENCE.md 与 SKILL.md)为骨架,结合 src/config.ts 等源码实现,系统讲解 agentmemory 的配置加载机制、全部 37 个AGENTMEMORY_*环境变量、默认值与特性开关、端口四元组迁移方式以及 REST 认证配置。读完你可以在~/.agentmemory/.env中独立完成从零启动、开启 LLM 压缩、迁移端口、隔离多 Agent 记忆的完整配置,并理解每个开关背后的默认关闭原因与 token 成本影响。

配置从哪来:环境变量 +~/.agentmemory/.env

agentmemory 的配置来源只有两个:进程环境变量~/.agentmemory/.env文件(Windows 下为%USERPROFILE%\.agentmemory\.env)。文件格式为每行一个KEY=value不带export前缀,支持#注释、空行、引号包裹与行内注释。

src/config.ts 中的loadEnvFile()是实际解析器,其规则可以精确概括为:

  • 空白行与#开头的行直接跳过;
  • 按第一个=切分 key 与 value,两侧 trim;
  • value 若以"'开头,则取配对的引号内内容;
  • 未加引号时,遇到" #"(空格加井号)视为行内注释并截断;
  • 解析结果按进程生命周期记忆化缓存envFileCache),文件被视为 boot-static——这正是 SKILL 文档要求"修改后重启服务"的原因。测试中可通过__resetEnvFileCache()或模块重载刷新缓存。

配置的合并优先级(见 src/config.ts 的getMergedEnv())为:

{ ...fileEnv, ...process.env, ...overrides }

~/.agentmemory/.env是地基,进程环境变量覆盖它,代码内覆盖最优先hydrateProcessEnvFromFile()(src/config.ts)在启动时把文件变量灌入process.env,但仅在键尚未被真实环境变量占用时写入,保证"真实环境变量胜出"的优先级与getMergedEnv()一致。

快速上手:一份可复制的初始配置

~/.agentmemory/.env中写入(对应 SKILL.md 的 Quick start 并补充注释):

# LLM provider(选一个即可;一个都不配 = 零-LLM 模式) ANTHROPIC_API_KEY=sk-ant-... # 或者 GEMINI_API_KEY / OPENROUTER_API_KEY / MINIMAX_API_KEY / OPENAI_API_KEY # 特性开关 AGENTMEMORY_AUTO_COMPRESS=true AGENTMEMORY_INJECT_CONTEXT=true

保存后重启服务即生效。这套配置等价于 README 中演示的"更丰富记忆"形态:自动压缩观察记录、在对话中注入项目上下文。其余所有变量都有安全默认值,不配置也能运行。

默认值背后的设计意图

SKILL.md 明确列出三条"值得知道的默认值",背后均有源码佐证:

  • 无 API Key 也能跑:不配 Key 时detectProvider()(src/config.ts)返回noopprovider,系统以 BM25 关键词检索 + 本地 embedding 的零-LLM 模式运行。detectLlmProviderKind()在无任何 Key 时判定为"noop"consolidation的默认开关也依赖hasLLMProviderConfigured()动态决定。
  • 烧 token 的功能默认关闭AGENTMEMORY_AUTO_COMPRESS(每次观察调用 LLM 压缩)与AGENTMEMORY_INJECT_CONTEXT(向模型注入上下文)都会按工具调用频率消耗 token,因此默认 OFF,属有意设计。isAutoCompressEnabled()(src/config.ts)仅接受字面量"true"isContextInjectionEnabled()(src/config.ts)同理。
  • 工具可见性可裁剪AGENTMEMORY_TOOLS=all(默认,54 个工具)或core(8 个精简工具),对应 src/mcp/tools-registry.ts 的getVisibleTools()

37 个AGENTMEMORY_*变量全参考

REFERENCE.md 中的变量清单由 scripts/skills/generate.ts 扫描src/目录生成:正则匹配AGENTMEMORY_[A-Z0-9_]+,排除以__结尾的内部标记,去重排序后写入<!-- AUTOGEN:env -->块。修改源码中的变量后必须运行npm run skills:gen重新生成--check模式可在 CI 中做漂移检测)。

当前识别的全部 37 个变量(与 REFERENCE.md 完全一致)如下:

AGENTMEMORY_AGENT_SCOPEAGENTMEMORY_ALLOW_AGENT_SDKAGENTMEMORY_AUTO_COMPRESSAGENTMEMORY_COMMIT_SHAAGENTMEMORY_CONSOLIDATION_COOLDOWN_MSAGENTMEMORY_COPILOT_MCP_BLOCKAGENTMEMORY_CWDAGENTMEMORY_DATA_DIRAGENTMEMORY_DEBUGAGENTMEMORY_DROP_STALE_INDEXAGENTMEMORY_EXPORT_ROOTAGENTMEMORY_FOLLOWUP_WINDOW_SECONDSAGENTMEMORY_FORCE_PROXYAGENTMEMORY_GRAPH_WEIGHTAGENTMEMORY_III_CONFIGAGENTMEMORY_III_VERSIONAGENTMEMORY_IMAGE_EMBEDDINGSAGENTMEMORY_IMAGE_STORE_MAX_BYTESAGENTMEMORY_INJECT_CONTEXTAGENTMEMORY_LLM_NOTHINKAGENTMEMORY_LLM_TIMEOUT_MSAGENTMEMORY_MCP_BLOCKAGENTMEMORY_PROBE_TIMEOUT_MSAGENTMEMORY_PROJECT_NAMEAGENTMEMORY_PROVIDERAGENTMEMORY_REFLECTAGENTMEMORY_SDK_CHILDAGENTMEMORY_SECRETAGENTMEMORY_SESSION_IDAGENTMEMORY_SLOTSAGENTMEMORY_SUPPRESS_COST_WARNINGAGENTMEMORY_TOOLSAGENTMEMORY_URLAGENTMEMORY_USE_DOCKERAGENTMEMORY_VERBOSEAGENTMEMORY_VIEWER_HOSTAGENTMEMORY_VIEWER_URL

按功能分组,结合源码逐个展开:

核心服务与地址

变量默认值作用与源码依据
AGENTMEMORY_URLhttp://localhost:3111REST 基址。所有 hook(src/hooks/notification.ts 等 14 个)与 MCP shim(src/cli/connect/util.ts)都读取它;远程/反向代理部署时必须显式设置
AGENTMEMORY_VIEWER_URL自动推导viewer 地址展示(src/cli.ts)
AGENTMEMORY_VIEWER_HOST127.0.0.1viewer 绑定地址(src/viewer/server.ts)。绑定非回环地址时强制要求AGENTMEMORY_SECRETVIEWER_ALLOWED_HOSTS白名单,防止开放端口被滥用
AGENTMEMORY_DATA_DIR平台状态目录引擎状态存储目录,等价于 CLI 的--data-dir <path>(src/cli.ts)
AGENTMEMORY_III_CONFIG内置指向 iii-engine 配置文件路径(src/cli.ts)
AGENTMEMORY_III_VERSION固定0.11.2覆盖 iii-engine 固定版本(src/cli.ts)。升级引擎前需确认 agentmemory 已适配新的沙箱模型
AGENTMEMORY_USE_DOCKER关闭1/true时优先走仓库内置 docker-compose 后端而非原生 iii-engine 二进制(src/cli.ts)
AGENTMEMORY_VERBOSE关闭CLI 显示引擎 stderr 与诊断信息(src/cli.ts)
AGENTMEMORY_DEBUG关闭MCP 独立模式打印响应体以便排障(src/mcp/standalone.ts)

Provider 与 LLM 行为

变量默认值作用与源码依据
AGENTMEMORY_PROVIDER自动检测显式声明 provider 类型,参与 consolidation 开关判定(src/config.ts);合法值见VALID_PROVIDERSanthropic/gemini/openrouter/agent-sdk/minimax/openai
AGENTMEMORY_LLM_TIMEOUT_MS60000所有 raw-fetch provider 的出站 LLM/embedding 超时(src/providers/_fetch.ts)。OpenAI 路径可用OPENAI_TIMEOUT_MS单独覆盖(兼容 v0.9.17)
AGENTMEMORY_LLM_NOTHINK关闭1时在图提取 prompt 后追加/no_think,用于本地推理模型避免思考消耗整个 token 预算(src/prompts/graph-extraction.ts)
AGENTMEMORY_ALLOW_AGENT_SDK关闭显式开启 Claude 订阅回退(spawn@anthropic-ai/claude-agent-sdk子会话)。默认关闭是因为历史上曾导致 Stop-hook 无限递归(src/config.ts);开启后仍建议优先配置真实 API Key
AGENTMEMORY_SDK_CHILD内部标记agent-sdk 提供方调用子会话前设为1,作为递归守卫;所有 hook 入口都检查它并跳过(src/hooks/sdk-guard.ts)
AGENTMEMORY_SUPPRESS_COST_WARNING关闭1/true时静默 OpenRouter 高端模型的成本警告(src/config.ts)

Provider 自动检测有严格的优先级顺序(src/config.ts):OPENAI_API_KEY(可用OPENAI_API_KEY_FOR_LLM=false排除)→MINIMAX_API_KEYANTHROPIC_API_KEYGEMINI_API_KEY/GOOGLE_API_KEYOPENROUTER_API_KEY→ 无 Key 时noop(零-LLM)。模型默认值、MAX_TOKENS=4096baseURL均在该函数内确定。

记忆功能特性开关

变量默认值作用与源码依据
AGENTMEMORY_AUTO_COMPRESS关闭每次 PostToolUse 观察都调 LLM 压缩,token 消耗与工具调用频率成正比(src/config.ts)
AGENTMEMORY_INJECT_CONTEXT关闭SessionStart 注入约 1–2K 字符项目上下文、PreToolUse 触发 enrich。关闭时观察仍被捕获,只是不写上下文到 stdout(src/config.ts)
AGENTMEMORY_SLOTS关闭可编辑的固定记忆槽(persona、user_preferences、tool_guidelines 等 8 个默认槽),由memory_slot_*工具读写(src/functions/slots.ts)
AGENTMEMORY_REFLECT关闭依赖AGENTMEMORY_SLOTS=true;Stop hook 触发槽内自省:扫描观察、把 TODO 追加到 pending_items、统计 session_patterns、记录 touched files(src/functions/slots.ts)
AGENTMEMORY_CONSOLIDATION_COOLDOWN_MS300000(5 分钟)Stop hook 每次 agent turn 都会触发/session/end,此值对由此引发的整库 consolidation 做防抖,最大每窗口一次;设0关闭防抖(src/config.ts)
AGENTMEMORY_IMAGE_EMBEDDINGS关闭开启 CLIP 图像 embedding,使memory_vision_search可用(src/functions/observe.ts、src/functions/vision-search.ts)
AGENTMEMORY_IMAGE_STORE_MAX_BYTES内置上限图像存储总字节上限(src/utils/image-store.ts)
AGENTMEMORY_EXPORT_ROOT~/.agentmemoryObsidian 导出的默认根目录(src/functions/obsidian-export.ts)
AGENTMEMORY_GRAPH_WEIGHT0.3混合检索中图扩展(关联概念)的权重(src/index.ts)
AGENTMEMORY_FOLLOWUP_WINDOW_SECONDS30smart-search 随访率诊断的时间窗;过大过小都会扭曲指标(src/config.ts)
AGENTMEMORY_DROP_STALE_INDEX关闭true时启动阶段丢弃过期索引(src/config.ts)

认证与多 Agent

变量默认值作用与源码依据
AGENTMEMORY_SECRET空(无需认证)设置后 REST API 与 viewer 均要求Authorization: Bearer $AGENTMEMORY_SECRET;mesh 同步要求两端都设置(src/cli.ts、src/functions/mesh.ts)
AGENTMEMORY_AGENT_SCOPEshared配合AGENT_ID使用:shared打标签但不过滤召回,isolated同时过滤召回路径(src/config.ts);AGENT_ID会 trim 并截断到 128 字符
AGENTMEMORY_TOOLSall工具可见性:all(54 个)或core(8 个 essentials,见 src/mcp/tools-registry.ts)

Hook 上下文传递

变量作用与源码依据
AGENTMEMORY_PROJECT_NAME显式指定项目名,解析顺序:该变量 → git 顶层目录名 → cwd 目录名(src/hooks/_project.ts)
AGENTMEMORY_SESSION_ID/AGENTMEMORY_COMMIT_SHA/AGENTMEMORY_CWDpost-commit hook 关联会话与提交时使用(src/hooks/post-commit.ts)
AGENTMEMORY_MCP_BLOCK/AGENTMEMORY_COPILOT_MCP_BLOCK连接适配器写入各宿主 MCP 配置的模板块,内含AGENTMEMORY_URL/AGENTMEMORY_SECRET/AGENTMEMORY_TOOLS${VAR:-default}占位(src/cli/connect/util.ts)
AGENTMEMORY_FORCE_PROXY/AGENTMEMORY_PROBE_TIMEOUT_MSMCP shim 的 livez 探针:默认探测失败自动回退本地 InMemoryKV;FORCE_PROXY=1跳过探针、PROBE_TIMEOUT_MS调整超时(src/mcp/rest-proxy.ts)

端口四元组:一个锚点迁走整组服务

agentmemory 以REST 为锚点派生其余端口(对应 SKILL.md 的 Ports 小节与 src/config.ts):

端口(默认 N=3111)服务覆盖变量
N =3111REST API + MCP HTTPIII_REST_PORT
N+1 =3112Streams(WebSocket 事件流)III_STREAM_PORT/III_STREAMS_PORT
N+2 =3113实时 Viewer(http://localhost:3113AGENTMEMORY_VIEWER_PORT
N+46023 =49134iii-engine(WebSocket)III_ENGINE_PORT/III_ENGINE_URL

三种整体搬迁方式(src/cli.ts):

agentmemory --port 3211 # 整组迁到 3211/3212/3213/49234 agentmemory --instance 1 # 等价快捷方式:3111 + 1*100,最大 N=50 III_REST_PORT=3211 npx @agentmemory/agentmemory # 环境变量方式

--instance N是"同机并行多套 daemon"的推荐做法:--instance 0保持标准 3111/3112/3113/49134 四元组,--instance 1得到 3211/3212/3213/49234,互不冲突;已有实例占位时启动第二个实例会被拒绝,提示改用不同--instance或先agentmemory stop。架构背景参见 agentmemory-architecture SKILL。

认证实践:何时必须配AGENTMEMORY_SECRET

  • 纯本机回环:REST 绑定127.0.0.1,默认开放,无需认证;
  • 远程/容器/多主机:设置AGENTMEMORY_SECRET后,所有受保护端点要求Authorization: Bearer <secret>,MCP shim 与各 hook 会把它透传给请求(各 src/hooks 文件均以REST_URL+SECRET组织请求头);
  • mesh 多实例协作:两端必须同时设置相同的AGENTMEMORY_SECRET
  • viewer 开放绑定AGENTMEMORY_VIEWER_HOST绑定非回环地址时,强制要求AGENTMEMORY_SECRET并配合VIEWER_ALLOWED_HOSTS白名单校验 Host 头(src/viewer/server.ts),Fly 等云部署场景见 deploy/fly/README.md。

与配置相关的非AGENTMEMORY_*变量

REFERENCE 只统计AGENTMEMORY_前缀,但配置体系还包含以下常用键(README 的完整示例见 README.md):

  • Provider Key 族ANTHROPIC_API_KEYGEMINI_API_KEY/GOOGLE_API_KEYOPENROUTER_API_KEYMINIMAX_API_KEYOPENAI_API_KEY(同一 Key 同时激活 LLM 与 embedding,可用OPENAI_API_KEY_FOR_LLM=false只留 embedding);均可用*_BASE_URL*_MODEL微调;
  • 检索调优BM25_WEIGHT=0.4VECTOR_WEIGHT=0.6(src/config.ts 会做范围钳制)、TOKEN_BUDGET=2000EMBEDDING_PROVIDER=local
  • 流水线开关CONSOLIDATION_ENABLED(配好 LLM 后默认开,false/0显式关)、GRAPH_EXTRACTION_ENABLEDLESSON_DECAY_ENABLEDOBSIDIAN_AUTO_EXPORTSNAPSHOT_ENABLED/SNAPSHOT_INTERVAL(下限 1 秒,防止误配置导致满载快照);
  • 团队TEAM_IDUSER_IDTEAM_MODE=shared|private(src/config.ts);
  • Claude Code 桥CLAUDE_MEMORY_BRIDGE=true+CLAUDE_PROJECT_PATH,把记忆同步到~/.claude/projects/<slug>/memory/MEMORY.md(src/config.ts);
  • MCP 独立模式STANDALONE_MCP=trueSTANDALONE_PERSIST_PATHFALLBACK_PROVIDERS(逗号分隔的故障转移链,agent-sdk 仅在显式开启时被允许加入,见 src/config.ts)。

如何验证配置生效

  • agentmemory status/agentmemory doctor:查看健康状态、记忆数与特性开关;
  • curl -fsS http://localhost:3111/agentmemory/livez:存活探针;
  • 修改~/.agentmemory/.env必须重启服务(文件缓存为 boot-static);
  • 变量清单漂移检查:npm run skills:gen -- --check,未同步会报DRIFT并给出重生成提示;
  • 相关测试覆盖见 test/env-loader.test.ts 与 test/mcp-env-placeholder.test.ts。

配置体系与 REST API 的认证配合详见 agentmemory-rest-api SKILL,端口四元组的设计动机见 agentmemory-architecture SKILL。

【免费下载链接】agentmemory#1 Persistent memory for AI coding agents based on real-world benchmarks项目地址: https://gitcode.com/GitHub_Trending/age/agentmemory

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 20:51:02

绿色能源与电力系统国际会议2026:前沿技术与应用

1. 会议背景与行业趋势2026年第五届绿色能源与电力系统国际学术会议&#xff08;ICGEPS 2026&#xff09;的召开正值全球能源转型的关键时期。过去五年间&#xff0c;可再生能源在全球电力结构中的占比从27%跃升至35%&#xff0c;其中光伏和风电的装机容量年均增长率保持在15%以…

作者头像 李华
网站建设 2026/9/10 20:48:18

Note: this error code is no longer emitted by the compiler.

Note: this error code is no longer emitted by the compiler. 【免费下载链接】rust Empowering everyone to build reliable and efficient software. 项目地址: https://gitcode.com/GitHub_Trending/ru/rust 这行注释是整个 rustc 错误码体系中"已停用错误码&q…

作者头像 李华
网站建设 2026/9/10 20:46:15

LSSVM-ABKDE多变量回归区间预测Matlab实现

1. 项目概述&#xff1a;LSSVM-ABKDE多变量回归区间预测在工程预测和数据分析领域&#xff0c;我们常常需要处理复杂的非线性关系&#xff0c;并评估预测结果的不确定性。传统的最小二乘支持向量机&#xff08;LSSVM&#xff09;虽然能提供点预测&#xff0c;但在置信区间估计方…

作者头像 李华
网站建设 2026/9/10 20:46:11

多传感器融合技术:从基础原理到现代应用

1. 多传感器融合技术演进概述十年前我第一次接触多传感器融合项目时&#xff0c;系统还停留在简单的数据叠加阶段。如今这项技术已经渗透到自动驾驶、工业检测、智能家居等各个领域&#xff0c;成为现代感知系统的核心技术支柱。作为从业者&#xff0c;我亲眼见证了从早期卡尔曼…

作者头像 李华