octop v0.9.20 中“设置专家 postgresql”是指将 postgresql 配置为后端存储引擎,支撑长期记忆、多用户上下文隔离与 agent 任务持久化;需提前准备 postgresql 实例,配置 yaml 文件启用 postgresql memory 类型,并通过环境变量安全传参,启动时自动建表。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Octop v0.9.20 中“设置专家 PostgreSQL”不是指配置一个叫“PostgreSQL 专家”的角色,而是指将 PostgreSQL 作为后端存储接入 Octop,用于支撑其可插拔后端与可迁移记忆功能。这是 Octop 实现长期记忆、多用户上下文隔离和 Agent 持久化任务的关键一环。
简单说:你要做的不是“启用某个专家”,而是把 PostgreSQL 配置成 Octop 的记忆/状态存储引擎。官方文档明确指出它支持 PostgreSQL、本地磁盘、Docker 或 COS/S3 —— PostgreSQL 是其中最推荐的生产级选项。
确认 PostgreSQL 实例已就绪
Octop 不会帮你安装或启动数据库,你需要提前准备好一个可访问的 PostgreSQL 实例(本地、Docker 或云服务均可),并确保满足以下条件:
- 数据库已初始化,且有至少一个可用数据库(如
octop_db) - 存在专用用户(如
octop_user),具备该库的CREATE、SELECT、INSERT、UPDATE、DELETE权限 - 网络可达:Octop 运行环境能通过 host:port 访问该实例(注意 Docker 网络隔离或防火墙)
- 推荐使用 PostgreSQL 14+,避免 JSONB 兼容性问题
在 Octop 配置文件中启用 PostgreSQL 后端
Octop 使用 YAML 配置文件(通常为 config.yaml 或 .octop/config.yaml)。找到 backend 或 memory 相关 section,修改为类似如下结构:
memory:
type: postgresql
config:
host: localhost
port: 5432
database: octop_db
user: octop_user
password: your_secure_password
# 可选:连接池大小、SSL 模式等
pool_size: 10
ssl_mode: disable # 生产环境建议设为 require 或 verify-full
⚠️ 注意:密码不要硬编码。更安全的做法是使用环境变量:
memory:
type: postgresql
config:
host: ${DB_HOST}
port: ${DB_PORT}
database: ${DB_NAME}
user: ${DB_USER}
password: ${DB_PASSWORD}
然后通过 DB_PASSWORD=xxx octop start 启动。
首次启动时自动建表与验证
Octop v0.9.20 内置了基于 harness-memory 的 PostgreSQL 适配器,启动时会自动检测并创建所需表结构(如 memories、workspaces、tasks),无需手动执行 SQL。
- 启动后查看日志,确认出现类似
✅ Connected to PostgreSQL backend或? Initialized memory tables的提示 - 若报错(如权限不足、表不存在、连接超时),请按日志提示检查网络、用户权限及数据库是否存在
- 可进入 psql 手动验证:
\c octop_db→\dt应能看到memories等表
配合专家系统使用 PostgreSQL 记忆
PostgreSQL 后端启用后,“专家”能力(如多专家团切换、场景化角色)的数据就自然落盘了:
- 每个用户/工作区的记忆独立存储,跨设备登录仍可恢复上下文
- 专家切换时,Octop 会基于当前 workspace_id 和 expert_id 查询对应记忆片段
- Agent 执行 Loop Engineering(拆解-反思-重试)产生的中间状态也持久化保存,故障后可续跑
你无需额外配置“哪个专家用哪张表”——这些均由 Octop 内部 schema 和索引管理。










