oG-Memory × OpenClaw 部署启动指南
1. 安装依赖
# Python 3.11+
pip install openai psycopg2-binary pyagfs rich requests apscheduler
2. 准备 AGFS 数据目录
mkdir -p /data1/sundechao/ogmem/agfs-data
chmod 777 /data1/sundechao/ogmem/agfs-data
# 本指南使用插件 local 模式,由 OpenClaw 插件启动 AGFS + ContextEngine。
# 如果你已经单独启动了 oG-Memory 服务,请将插件配置改为 mode=remote。
3. 创建 OpenClaw 配置
mkdir -p /data1/sundechao/ogmem/openclaw-home
编辑 openclaw-home/openclaw.json:
{
"agents": {
"defaults": {
"model": {
"primary": "dashscope/glm-5"
}
}
},
"models": {
"mode": "merge",
"providers": {
"dashscope": {
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "<你的DashScope API Key>",
"api": "openai-completions",
"models": [
{
"id": "glm-5",
"name": "glm-5",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 131072,
"maxTokens": 8192
}
]
}
}
},
"gateway": {
"http": {
"endpoints": {
"responses": { "enabled": true }
}
}
},
"plugins": {
"slots": {
"contextEngine": "og-memory-context-engine"
},
"entries": {
"og-memory-context-engine": {
"enabled": true,
"config": {
"mode": "local",
"projectRoot": "/data1/sundechao/ogmem/oG-Memory",
"agfsServerDir": "/data1/sundechao/ogmem/oG-Memory/agfs",
"agfsDataDir": "/data1/sundechao/ogmem/agfs-data",
"contextEnginePort": 8090,
"memoryApiBaseUrl": "http://127.0.0.1:8090",
"prefetchEnabled": true,
"prefetchTopK": 5,
"compactTakeoverEnabled": true,
"summaryMaxChars": 4000,
"shortTermIndexMode": "sync",
"llmProvider": "openai",
"llmApiKey": "<你的API Key>",
"llmBaseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"llmModel": "glm-5",
"embeddingModel": "text-embedding-v2"
}
},
"memory-core": { "enabled": false }
}
}
}
4. 启动 OpenClaw 容器
docker run -d \
--name openclaw-ogmem \
--network host \
--restart unless-stopped \
-v /data2/miniconda:/data2/miniconda:ro \
-v /home/sundechao/.local:/home/sundechao/.local:ro \
-v /data1/sundechao/ogmem/openclaw-home:/home/node/.openclaw \
-v /data1/sundechao/ogmem/oG-Memory/openclaw_context_engine_plugin:/app/extensions/og-memory-context-engine \
-v /data1/sundechao/ogmem/oG-Memory:/data1/sundechao/ogmem/oG-Memory \
-e OPENCLAW_GATEWAY_TOKEN=test-token-123 \
-e OGMEM_MODE=local \
-e OGMEM_API_URL=http://127.0.0.1:8090 \
-e AGFS_BASE_URL=http://127.0.0.1:1833 \
-e AGFS_SERVER_DIR=/data1/sundechao/ogmem/oG-Memory/agfs \
-e AGFS_DATA_DIR=/data1/sundechao/ogmem/agfs-data \
-e CONTEXTENGINE_PROJECT_ROOT=/data1/sundechao/ogmem/oG-Memory \
-e CONTEXTENGINE_PROVIDER=openai \
-e OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 \
-e OPENAI_API_KEY=<你的API Key> \
-e OPENAI_EMBEDDING_MODEL=text-embedding-v2 \
-e OPENAI_LLM_MODEL=glm-5 \
-e OGMEM_PREFETCH_ENABLED=true \
-e OGMEM_PREFETCH_TOP_K=5 \
-e OGMEM_COMPACT_TAKEOVER_ENABLED=true \
-e OGMEM_SHORT_TERM_INDEX_MODE=sync \
-e VECTOR_DB_TYPE=opengauss \
-e "OPENGAUSS_CONNECTION_STRING=host=127.0.0.1 port=8799 dbname=postgres user=sundechao password=Huawei@123" \
-e "PYTHONPATH=/data1/sundechao/ogmem/oG-Memory:/home/sundechao/.local/lib/python3.13/site-packages" \
alpine/openclaw:latest
5. 启动 IndexService
cd /data1/sundechao/ogmem/oG-Memory
export CONTEXTENGINE_PROVIDER=openai
export OGMEM_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
export OGMEM_API_KEY="<你的API Key>"
export OGMEM_EMBEDDING_MODEL="text-embedding-v2"
export OGMEM_LLM_MODEL="glm-5"
export VECTOR_DB_TYPE=opengauss
export OPENGAUSS_CONNECTION_STRING="host=127.0.0.1 port=8799 dbname=postgres user=sundechao password=Huawei@123"
export AGFS_BASE_URL="http://127.0.0.1:1833"
export OG_ACCOUNT_ID="acct-demo"
export INDEX_INTERVAL=15
setsid /data2/miniconda/bin/python scripts/run_index_service.py \
> /tmp/index_service.log 2>&1 < /dev/null & disown
6. 验证
# 容器状态
docker logs openclaw-ogmem 2>&1 | tail -10
# Health
curl http://127.0.0.1:18789/health
# oG-Memory Health
curl http://127.0.0.1:8090/api/v1/health
# 发消息测试
curl -s -X POST http://127.0.0.1:18789/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer test-token-123" \
-d '{"model":"openclaw","input":"你好","user":"test-user"}'
# IndexService 日志
tail -20 /tmp/index_service.log
# OpenClaw 插件日志中应能看到 compose / after_turn / compact 调用
docker logs openclaw-ogmem 2>&1 | grep -E "og-memory|compose|prepare_compaction|compact"
# openGauss 数据
gsql -U sundechao -W Huawei@123 -d postgres -p 8799 -r -c \
"SELECT id, uri, level, substring(text,1,60) FROM vector_index ORDER BY created_at DESC LIMIT 5;"
7. 重启 / 重建
# 重启容器
docker restart openclaw-ogmem
# 重建容器(改配置后)
docker stop openclaw-ogmem && docker rm openclaw-ogmem
# 然后重新执行第 4 步
# 重启 IndexService
pkill -f run_index_service
# 然后重新执行第 5 步