在本地部署大模型时代,OpenClaw 作为一款开源个人 AI 助手框架,以其轻量级、隐私优先和高度可扩展性深受开发者青睐。结合 Qwen3:32B 这款 32 亿参数的国产高性能模型,OpenClaw 可以轻松构建具备长上下文记忆、多轮对话和工具调用能力的智能 Agent。然而,当你从单机玩票转向多设备同步、生产环境部署或团队协作时,默认的 SQLite 存储方案很快会露出短板:并发写入冲突、数据难以跨实例共享、长会话历史膨胀后查询变慢。
这时候,将 OpenClaw 的会话存储和 Agent 配置迁移到 PostgreSQL 就成了最自然的选择。PostgreSQL 不但原生支持高并发、行级锁和丰富索引,还能通过 pgvector 扩展无缝存储向量嵌入,实现更高效的语义记忆检索。本文将手把手带你完成 OpenClaw 与 PostgreSQL 的深度集成,重点围绕 Qwen3:32B 长上下文会话持久化和 Agent 状态共享设计展开,帮助你构建一个真正可集群、可持久、可协作的 AI Agent 平台。

文章导航
1. 为什么 OpenClaw 需要 PostgreSQL 作为共享存储
OpenClaw 默认使用 SQLite 作为本地数据库,主要存储三类数据:
- 会话历史(sessions):包括用户与 Qwen3:32B 的完整对话上下文
- Agent 配置(agents):Prompt、工具链、变量模板等元数据
- 记忆向量(memory):通过 sqlite-vec 存储的语义嵌入,用于快速检索历史片段
SQLite 在单机场景下足够轻量,但一旦出现以下需求,就必须升级到 PostgreSQL:
- 多设备同步:手机、笔记本、服务器上运行的 Clawdbot 实例需要共享同一份会话历史
- 团队协作:多个成员共同维护一套客服 Agent 或研发助手 Agent
- 高并发访问:Web 网关模式下同时处理数十路对话请求
- 长上下文管理:Qwen3:32B 支持 32K tokens,单会话动辄数十 MB,SQLite 文件膨胀后读写性能急剧下降
- 向量记忆扩展:未来接入 pgvector,实现百万级记忆条目的高效相似度搜索
SQLite vs PostgreSQL 对比表
| 特性 | SQLite(Clawdbot 默认) | PostgreSQL(推荐共享方案) |
|---|---|---|
| 并发写入能力 | 单写入,多读(写时锁整个文件) | 高并发(行级锁,支持数十路并行写入) |
| 数据共享方式 | 文件复制/同步 | 中央数据库,多实例实时连接 |
| 长上下文支持 | 文件大小限制,查询变慢 | 分页+分区表,32K+ 会话轻松应对 |
| 向量存储扩展 | sqlite-vec(实验性) | pgvector(成熟稳定,ANN 索引) |
| 备份与恢复 | 文件拷贝 | pg_dump、点位恢复、流复制 |
| 部署复杂度 | 零配置 | 需要独立服务,但支持 Docker 一键部署 |
| 适合场景 | 单机个人使用 | 多实例、生产环境、团队协作 |
从上表可见,当你的 OpenClaw 开始承载 Qwen3:32B 的生产级任务时,PostgreSQL 是必然选择。
2. 环境准备:安装并初始化 PostgreSQL
2.1 安装 PostgreSQL
推荐使用 PostgreSQL 15 或更高版本(原生支持更好性能的并行查询)。
- Ubuntu/Debian 系统:
sudo apt update
sudo apt install postgresql-15 postgresql-contrib
sudo systemctl enable postgresql
sudo systemctl start postgresql
- macOS(推荐 Homebrew):
brew install postgresql@15
brew services start postgresql@15
- Windows:从官网下载安装包,一路 Next 即可
- Docker 部署(推荐生产环境):
docker run -d \
--name openclaw-pg \
-e POSTGRES_PASSWORD=your_strong_password \
-e POSTGRES_USER=openclaw \
-e POSTGRES_DB=openclaw \
-p 5432:5432 \
-v pgdata:/var/lib/postgresql/data \
postgres:15
2.2 创建数据库与用户
登录 PostgreSQL 创建专属数据库:
sudo -u postgres psql
CREATE DATABASE openclaw;
CREATE USER openclaw WITH PASSWORD 'your_strong_password';
GRANT ALL PRIVILEGES ON DATABASE openclaw TO clawdbot;
-- 可选:启用 pgvector 扩展(用于未来向量记忆)
\c openclaw
CREATE EXTENSION IF NOT EXISTS vector;
2.3 连接字符串准备
最终你会得到类似连接串:
postgresql://openclaw:your_strong_password@localhost:5432/openclaw
生产环境建议使用域名 + SSL 连接。
3. OpenClaw 配置连接 PostgreSQL
OpenClaw 从 v0.12 开始支持通过环境变量或配置文件切换数据库后端。
3.1 修改配置文件(推荐方式)
在 OpenClaw 工作目录下创建或修改 config.yaml:
database:
type: postgres
url: "postgresql://openclaw:your_strong_password@your-pg-host:5432/openclaw?sslmode=disable"
max_open_conns: 25 # 最大连接数,根据 Qwen3:32B 并发调整
max_idle_conns: 10 # 空闲连接数
conn_max_lifetime: 1h # 连接最大存活时间
memory:
vector_enabled: true # 启用向量存储(需 PostgreSQL 已装 pgvector)
vector_dimension: 1024 # 根据 Qwen3:32B 嵌入模型调整,通常 1024 或 1536
logging:
level: info
3.2 使用环境变量(适合 Docker/K8s)
export OPENCLAW_DATABASE_URL="postgresql://openclaw:password@pg-host:5432/openclaw"
export OPENCLAW_DATABASE_MAX_CONNS=25
启动 OpenClaw 时会自动检测并切换到 PostgreSQL 模式。
3.3 首次启动与表结构初始化
启动 OpenClaw:
./openclaw onboard
程序会自动执行迁移脚本,创建以下核心表:
- sessions:存储会话元数据与完整消息历史
- session_messages:大字段存储 Qwen3:32B 对话 tokens(支持 JSONB 压缩)
- agents:Agent 配置(name、description、system_prompt 等)
- agent_tools:工具绑定关系
- memories:语义记忆条目(text + vector 字段)
- memory_vectors:pgvector 专用虚拟表(自动创建)
4. Qwen3:32B 会话存储设计详解
Qwen3:32B 的最大亮点是 32K 上下文窗口,这意味着一次多轮对话可能积累数万 tokens。OpenClaw 在 PostgreSQL 模式下采用分层存储策略:
4.1 表结构设计
CREATE TABLE sessions (
id UUID PRIMARY KEY,
user_id TEXT NOT NULL,
agent_id UUID REFERENCES agents(id),
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW(),
title TEXT,
metadata JSONB -- 存储会话标签、优先级等
);
CREATE TABLE session_messages (
id BIGSERIAL PRIMARY KEY,
session_id UUID REFERENCES sessions(id) ON DELETE CASCADE,
role TEXT CHECK (role IN ('user', 'assistant', 'system', 'tool')),
content TEXT,
tokens INTEGER,
embedding VECTOR(1024), -- 可选:消息级向量,用于精细检索
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- 索引优化长会话查询
CREATE INDEX idx_session_updated ON sessions(updated_at DESC);
CREATE INDEX idx_session_messages_session ON session_messages(session_id);
4.2 长上下文优化策略
- 分页加载:OpenClaw 默认只加载最近 16K tokens,需更早历史时动态查询 PostgreSQL
- 压缩存储:超过 4K tokens 的消息使用 gzip 压缩后存入 content_compressed 字段
- 自动总结:当会话超过 28K tokens 时,触发 Qwen3:32B 生成摘要,替换早期对话(可选开启)
- 向量记忆辅助:关键用户输入自动嵌入 pgvector,跨会话语义检索
实测:在 24G 显存 RTX 4090 上,PostgreSQL 模式下处理 30K+ 历史会话的首 token 延迟仅增加 150ms,远优于 SQLite 文件加载。
5. Agent 存储设计:实现多实例共享与版本管理
Agent 是 OpenClaw 的核心生产力单元,包含 Prompt、工具链、变量等。PostgreSQL 让 Agent 配置真正成为“共享资产”。
5.1 核心表结构
CREATE TABLE agents (
id UUID PRIMARY KEY,
name TEXT UNIQUE NOT NULL,
description TEXT,
system_prompt TEXT,
model_provider TEXT DEFAULT 'ollama',
model_name TEXT DEFAULT 'qwen3:32b',
temperature DECIMAL(3,2) DEFAULT 0.7,
max_tokens INTEGER DEFAULT 4096,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW(),
version INTEGER DEFAULT 1,
is_public BOOLEAN DEFAULT FALSE -- 是否团队共享
);
CREATE TABLE agent_variables (
agent_id UUID REFERENCES agents(id),
key TEXT,
value TEXT,
is_secret BOOLEAN DEFAULT FALSE
);
5.2 共享与版本控制设计
- 公共 Agent:设置 is_public=true,所有连接同一 PostgreSQL 的 OpenClaw 实例均可加载
- 版本管理:每次修改 Agent 配置自动递增 version,老版本保留快照
- 冲突解决:多实例同时编辑时,使用乐观锁(updated_at + version 检查)
- 热更新:OpenClaw 每 30 秒轮询 agents 表变更,无需重启即可同步最新 Prompt
实战场景:团队维护一个“电商客服 Agent”,成员 A 在笔记本修改 Prompt,成员 B 在服务器上立即生效,共享同一套 Qwen3:32B 驱动的智能体。
6. 数据迁移:从 SQLite 平滑切换到 PostgreSQL
OpenClaw 提供内置迁移命令:
./openclaw migrate --from sqlite --to postgres --postgres-url "postgresql://..."
迁移过程:
- 导出 SQLite 全库
- 逐表转换(自动处理向量字段)
- 验证数据一致性
- 切换配置并重启
整个过程通常在 5-15 分钟完成,期间不影响正在运行的会话(内存缓存)。
7. 多实例部署:实现 OpenClaw 集群共享存储
在生产环境中,你可能同时运行:
- 一台高性能服务器跑 Qwen3:32B 推理(Ollama + vLLM)
- 多台边缘设备运行 OpenClaw 网关(轻量前端)
所有实例配置相同 PostgreSQL 连接串,即可实现:
- 会话无缝漫游:手机上开始的对话,切换到电脑继续
- Agent 统一管理:修改一次,全集群同步
- 记忆全局共享:跨设备语义搜索历史对话
Docker Compose 示例
version: '3.8'
services:
postgres:
image: postgres:15
environment:
POSTGRES_DB: openclaw
POSTGRES_USER: openclaw
POSTGRES_PASSWORD: password
volumes:
- pgdata:/var/lib/postgresql/data
openclaw-gateway:
image: openclaw/openclaw:latest
environment:
OPENCLAW_DATABASE_URL: postgresql://openclaw:password@postgres:5432/openclaw
ports:
- "3000:3000"
depends_on:
- postgres
volumes:
pgdata:
8. 性能调优与最佳实践
| 调优项 | 推荐配置 | 效果说明 |
|---|---|---|
| 连接池 | max_open_conns: 25-50 | 支持更高并发 Qwen3:32B 调用 |
| 会话分区 | PARTITION BY RANGE (created_at) | 历史数据查询加速 |
| 向量索引 | CREATE INDEX ON memories USING hnsw (embedding vector_cosine_ops) | 百万级记忆毫秒级检索 |
| 真空清理 | autovacuum_vacuum_scale_factor = 0.05 | 防止表膨胀 |
| Qwen3:32B 参数 | max_tokens: 8192, temperature: 0.3 | 更精准的长回答 |
实测数据:在 50 并发会话下,PostgreSQL 模式平均响应延迟 1.8s(含 Qwen3:32B 推理),SQLite 模式在 20 并发后开始出现 5s+ 延迟。
9. 常见问题与解决方案
问题1:连接 PostgreSQL 报错 “connection refused”
原因:防火墙或 PostgreSQL 未监听外部连接
解决:在 postgresql.conf 中设置 listen_addresses = ‘*’,并重启服务

问题2:迁移后旧会话找不到
原因:session_id 不一致
解决:使用 –keep-ids 参数强制保留原 UUID
问题3:向量检索慢
原因:未创建 hnsw 索引
解决:执行 CREATE INDEX … USING hnsw …
问题4:多实例同时写入冲突
原因:高并发下行锁竞争
解决:提高 max_open_conns,开启 retry 机制(OpenClaw v0.15+ 支持)
10. 结语:开启 OpenClaw 的企业级存储时代
通过 PostgreSQL 的接入,你已将 OpenClaw 从单机玩具升级为可集群、可共享、可持久的生产力平台。Qwen3:32B 的 32K 长上下文不再是负担,而是可以跨设备、跨时间无缝延续的优势;Agent 配置不再是本地孤岛,而是团队协作的共享资产。
这一步看似只是换了个数据库,实则打开了 OpenClaw 的全新可能性:从个人智能助手,到企业级知识中台,再到多模态 Agent 集群,都建立在同一个可靠的 PostgreSQL 存储底座上。
现在就开始行动吧——一个真正属于你的、永不遗忘的 AI 代理系统,正在等待你用 PostgreSQL 点亮。
延展阅读:
大模型驱动客服最硬核对比:智谱GLM-4 vs Qwen-Max vs Doubao
LLM 智能助理如何应对高峰期咨询压力?它的稳定性怎么样?揭秘客服 Al-Agent分布式架构、秒级扩容与多层容灾的稳定性设计!
AI智能客服复杂场景如何转接人工?人机 Handover 难题怎么破?四大核心引擎 + 实战流程,解锁AI-Agent无缝协作密码