CMDCMemoryPg (cmdc_memory_pg v0.1.0)

Copy Markdown View Source

CMDC PostgreSQL backend — Checkpoint + EpisodicMemory 持久化。

v0.1.0 严控范围二件套

  1. CMDCMemoryPg.CheckpointBackend — 实现 CMDC.Checkpoint.Backend 4 callback, 存储 Agent 会话快照到 cmdc_checkpoints
  2. CMDCMemoryPg.EpisodicMemoryBackend — 实现 CMDC.Memory 5 callback, 按 user_id namespace 存储情景记忆到 cmdc_episodic_memories

v0.1 明示不含:pgvector 检索 / 3-tier Memory(Working / Semantic / Procedural)/ Composite 路由 / KV jsonb backend / Cloak encryption 强制集成。这些留 v0.2+ 实施。

安装

defp deps do
  [
    {:cmdc, "~> 0.5"},
    {:cmdc_memory_pg, "~> 0.1"}
  ]
end

配置

# config/runtime.exs
config :cmdc_memory_pg, CMDCMemoryPg.Repo,
  database: "cmdc_prod",
  username: System.fetch_env!("PGUSER"),
  password: System.fetch_env!("PGPASSWORD"),
  hostname: System.get_env("PGHOST", "localhost"),
  port: String.to_integer(System.get_env("PGPORT", "5432")),
  pool_size: 10

# 启动应用 supervisor
def start(_type, _args) do
  children = [
    CMDCMemoryPg.Repo
  ]

  Supervisor.start_link(children, strategy: :one_for_one)
end

# 启动后跑 migration
$ mix ecto.migrate

# 设为 CMDC.Checkpoint 默认 backend
config :cmdc, :checkpoint_backend, CMDCMemoryPg.CheckpointBackend

与 Cloak 集成(可选 encryption at rest)

def save(session_id, snapshot, opts) do
  sanitized = CMDC.Checkpoint.Snapshot.redact(snapshot, &MyApp.Vault.encrypt/1)
  # ... 写入 PG
end

详见 CMDCMemoryPg.CheckpointBackend moduledoc。

Summary

Functions

返回 cmdc_memory_pg 当前版本号。

Functions

version()

@spec version() :: String.t()

返回 cmdc_memory_pg 当前版本号。