Slock
当 Slock 启动 Codex、Claude Code 或其他 Agent 运行时时,让每个 worker 拥有自己的 Mem 身份。
Slock 可以在同一台电脑上运行多个命名 Agent。Nowledge Mem 应该把这些 Agent 识别成不同 worker,而不是把它们都当成同一个匿名 Codex 或 Claude 会话。
设置方式应该很轻:先连接 Slock 启动的 AI 工具,然后给每个 Slock Agent 设置一个环境变量。
需要先准备好
- Nowledge Mem 正在运行。
- Slock 启动的 AI 工具已经连接到 Mem,例如 Codex 或 Claude Code。
- 每个 Slock worker 有稳定角色,例如 Cindy、Alice 或 Reviewer。
最小设置
先为这个 Slock worker 创建一个 Mem AI Identity:
nmem agents upsert cindy \
--name "Cindy" \
--default-space onboarding \
--instructions "帮助用户完成 onboarding。一次只解释一个步骤。"这会创建名为 Cindy 的 Mem 身份。命令和环境变量里使用的 ID 是 cindy。
这个命令只是创建身份记录。它不会让所有 Codex 会话都变成 Cindy。只有设置了 NMEM_AGENT_ID=cindy,或明确传入 agent_id="cindy" 的地方,才会使用这个身份。
然后打开 Slock 里这个 Agent 的 runtime config,只添加一个环境变量:
NMEM_AGENT_ID=cindy
如果这个 Mem 身份已经设置了默认 Space,这样就够了。
以后移动 Cindy
Cindy 这个身份属于 Mem,不属于 Slock。以后如果你把 Cindy 换到另一个编排工具,继续保留 NMEM_AGENT_ID=cindy,让新的启动器传入这个环境变量即可。
AI 工具也可以更换。Cindy 可以先跑在 Codex,之后改跑在 Pi 或 Claude Code。这个时候更新工具连接和 --source-app,但保留同一个 Mem 身份。
如果你需要一个相关但不同的 worker,创建一个新身份,例如 cindy-reviewer。这样 Cindy 保持稳定,新 worker 可以独立演化自己的规则。
什么时候需要 Space
NMEM_SPACE 是可选项。它会作用于整个 Slock 运行时进程。
只有当这个 Slock Agent 在本次运行中所有 Mem 读取和写入都要覆盖默认 Space 时,才添加:
NMEM_SPACE=onboarding如果这个 Agent 可能跨不同项目工作,不要设置 NMEM_SPACE。让它使用 Mem 身份的默认 Space,或者在具体命令里切换。
默认不要添加第二个身份变量
大多数用户不需要设置 NMEM_HOST_AGENT_ID。
NMEM_HOST_AGENT_ID 只适合高级场景:例如集成作者需要把 slock:<uuid> 这类宿主内部稳定 ID 映射到 Mem 身份。普通 Slock 设置里,NMEM_AGENT_ID=cindy 更清楚,也已经足够。
成功是什么样
使用 nmem 0.9.0 或更新版本时,启动一个新的 Slock worker 会话,让它检查 Mem:
nmem --json context --source-app codex在 Slock worker 内部,这个命令应该继承 NMEM_AGENT_ID=cindy,并返回你配置的 worker 身份。如果你是在普通终端里手动检查,请显式传入身份:
nmem --json context --agent-id cindy --source-app codexsource app 仍然是 codex、claude-code 或 Slock 实际启动的工具;Mem 身份代表这个命名 worker。