Proma × Nowledge Mem
让 Proma 使用 Nowledge Mem 的 MCP 工具、自动会话保存、启动上下文和标准 skills。
给你的智能体
如果你想让智能体帮你配置,可以把这句话交给它:
读取 https://mem.nowledge.co/SKILL.md,按其中说明为 Proma 安装或更新 Nowledge Mem。用 nmem status、启动上下文和 Proma 线程保存结果验证,并总结你改了什么。Proma 接入 Nowledge Mem 后,你会得到这些:Proma 可以在需要时搜索记忆、保存长期知识、浏览 Mem;通过生命周期 hooks,Proma 对话会自动存成 Mem 线程;每次新会话开始前,当前的 Mem 上下文会写进工作区 CLAUDE.md,让智能体一上来就知道重要背景。
Proma v0.13.0 及之后版本已经在「Memory」设置里加入 Nowledge Mem 卡片。第一次配置时,优先从那里复制配置提示词,贴到 Proma Agent 模式里执行。这页文档保留完整文件路径、更新方式和验证步骤,方便你检查或修复配置。
怎样算安装成功
打开一个新的 Proma 会话,问 What was I working on?。然后发送一条带有独特短语的消息,等 Proma 回复完成后运行 nmem t search "那段短语" --source proma。你应该能在 Mem 里看到这条 Proma 线程。
开始之前
- Nowledge Mem 已在本地运行,或你有可访问的远程 Mem 服务。
- 已安装 Proma。
- 本机有 Python 3.9+,命令名为
python3。 nmem能在终端里正常运行。
nmem status如果找不到 nmem,可以从 Mem 桌面应用的开发者工具安装 CLI,或运行:
pip install nmem-cli安装
如果你使用 Proma v0.13.0 或更新版本,可以先打开 Proma 设置 → Memory → Nowledge Mem,复制配置提示词并粘贴到 Proma Agent 模式。下面的手动步骤与这条提示词使用的是同一套配置,只是展开成了可检查的版本。
下面示例使用 Proma 的 default 工作区。如果你的工作区不是这个名字,把所有 default 替换成 ~/.proma/agent-workspaces/ 下面对应的目录名。
如果你的系统只有 python 命令,请把下面 hook 命令里的 python3 替换成 python。
下载插件文件 [step]
rm -rf /tmp/nowledge-community
git clone https://github.com/nowledge-co/community.git /tmp/nowledge-community
mkdir -p ~/.proma/scripts ~/.proma/agent-workspaces/default/skills
cp /tmp/nowledge-community/nowledge-mem-proma-plugin/hooks/save-to-nmem.py ~/.proma/scripts/
cp /tmp/nowledge-community/nowledge-mem-proma-plugin/hooks/read-working-memory.py ~/.proma/scripts/
chmod +x ~/.proma/scripts/save-to-nmem.py ~/.proma/scripts/read-working-memory.py
cp -R /tmp/nowledge-community/nowledge-mem-proma-plugin/skills/{read-working-memory,search-memory,distill-memory,save-thread,status} ~/.proma/agent-workspaces/default/skills/添加 MCP 服务 [step]
创建或编辑:
~/.proma/agent-workspaces/default/mcp.json如果这个文件已经存在,把 nowledge-mem 合并到现有的 servers 对象里,不要覆盖其它服务。
{
"servers": {
"nowledge-mem": {
"url": "http://127.0.0.1:14242/mcp/",
"type": "streamableHttp",
"headers": {
"APP": "Proma"
}
}
}
}如果使用远程 Mem,把 URL 换成远程地址,并加上 key:
{
"servers": {
"nowledge-mem": {
"url": "https://mem.example.com/mcp/",
"type": "streamableHttp",
"headers": {
"APP": "Proma",
"Authorization": "Bearer nmem_your_key",
"X-NMEM-API-Key": "nmem_your_key"
}
}
}
}启用 hooks [step]
创建或编辑:
~/.proma/sdk-config/.claude/settings.json把下面内容合并进 hooks 对象。若你的 Proma 版本不会展开 $HOME,请把命令改成绝对路径。
{
"hooks": {
"SessionStart": [
{
"matcher": "startup|resume",
"hooks": [
{
"type": "command",
"command": "python3 \"$HOME/.proma/scripts/read-working-memory.py\"",
"timeout": 15000
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "python3 \"$HOME/.proma/scripts/save-to-nmem.py\" --event user-prompt-submit",
"timeout": 30000
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "python3 \"$HOME/.proma/scripts/save-to-nmem.py\" --event stop",
"timeout": 30000
}
]
},
{
"hooks": [
{
"type": "command",
"command": "python3 \"$HOME/.proma/scripts/read-working-memory.py\" --rewake",
"timeout": 15000,
"async": true,
"asyncRewake": true,
"rewakeMessage": "Nowledge Mem context refreshed"
}
]
}
]
}
}重启 Proma [step]
修改 MCP、hooks 或 skills 后,都需要重启 Proma。
自动发生的事
UserPromptSubmit会在下一轮用户输入前保存当前 Proma 线程。Stop会在智能体回复结束后再保存一次,作为兜底。- 保存脚本读取
~/.proma/sdk-config/projects/**/<session-id>.jsonl,并以proma来源写入 Mem。 SessionStart会刷新~/.proma/agent-workspaces/default/CLAUDE.md里的 Nowledge Mem 区块。Stop的 asyncRewake 可以在回复后推送一份简短 Working Memory 提醒。
当前 Proma 使用的 Claude Agent SDK 不能稳定把 SessionStart 的 stdout 注入模型上下文。因此这个连接器采用更可靠的方式:维护 CLAUDE.md 中的一个标记区块。
<!-- nowledge-mem:start -->
...
<!-- nowledge-mem:end -->你自己的 Proma 规则请写在这个区块外,或写进同目录的 CLAUDE.md.template。
更新
cd /tmp/nowledge-community
git pull
cp nowledge-mem-proma-plugin/hooks/save-to-nmem.py ~/.proma/scripts/
cp nowledge-mem-proma-plugin/hooks/read-working-memory.py ~/.proma/scripts/
chmod +x ~/.proma/scripts/save-to-nmem.py ~/.proma/scripts/read-working-memory.py
cp -R nowledge-mem-proma-plugin/skills/{read-working-memory,search-memory,distill-memory,save-thread,status} ~/.proma/agent-workspaces/default/skills/然后把最新的 nowledge-mem-proma-plugin/hooks/hooks.json 合并到 ~/.proma/sdk-config/.claude/settings.json,并重启 Proma。
远程模式
MCP 使用 Proma 的 mcp.json 里的远程 URL 和 key。
hooks 与 CLI fallback 使用运行 Proma 这台机器上的 nmem 客户端配置:
nmem config client set url https://mem.example.com
nmem config client set api-key nmem_your_key常见问题
MCP 工具没有出现。 确认 mcp.json 的顶层 key 是 servers,然后重启 Proma。
新会话没有看到启动上下文。 运行 python ~/.proma/scripts/read-working-memory.py,再检查 ~/.proma/agent-workspaces/default/CLAUDE.md 里是否有 nowledge-mem:start 区块。
Mem 里看不到 Proma 线程。 等 Proma 完成一轮回复,再检查 ~/.proma/logs/nm-hooks.log,并用 nmem t search "短语" --source proma 搜索。
远程 MCP 能用,但 hooks 不工作。 MCP 使用 Proma 的 mcp.json;hooks 使用本机 nmem 客户端配置。两处需要指向同一个远程 Mem 服务。