# ============================================================
# oGMemory 服务配置文件
# ============================================================
#
# 部署时请复制为 ogmemory.yaml 并修改:
#   cp ogmemory.example.yaml ogmemory.yaml
#
# deploy.sh 会自动将此文件挂载到容器的 /etc/ogmem/config.yaml。
#
# ---- 环境变量引用 ----
# 支持 ${ENV_VAR} 语法引用 deploy.env 中的变量,避免重复配置。
# deploy.sh 会在启动容器前自动替换 ${...} 为实际值。
#
# 示例:
#   api_key: "${LLM_API_KEY}"     → 自动使用 deploy.env 中的 LLM_API_KEY
#   api_key: "sk-xxx"             → 直接使用硬编码值(oGMemory 专用)
#
# 如果 oGMemory 和 OpenClaw 使用相同的 LLM,直接用 ${...} 引用即可;
# 如果 oGMemory 需要不同的 LLM,将对应字段改为硬编码值。
#
# ---- 优先级 ----
# YAML 值 > 环境变量 > 代码默认值
# 未设置的字段会自动回退到对应的环境变量(向后兼容)。
#
# ---- openGauss ----
# 如果启用了 openGauss(deploy.env 中 ENABLE_OPENGAUSS=true),
# deploy.sh 会自动替换 vector_db.connection_string 中的连接信息,
# 无需手动修改 connection_string。
# ============================================================

# ---- LLM 配置 ----
llm:
  provider: "${LLM_PROVIDER}"
  api_key: "${LLM_API_KEY}"
  base_url: "${LLM_BASE_URL}"
  model: "${LLM_MODEL}"
  temperature: 0.7
  max_tokens: 4096
  # api_key_command:
  #   command: ["/usr/local/bin/op", "read", "op://team/ogmemory/api-key"]

# ---- Embedding 配置 ----
embedding:
  provider: openai                 # 缺省回退到 llm.provider
  model: "text-embedding-v4"
  base_url: "${LLM_BASE_URL}"
  api_key: "${LLM_API_KEY}"
  multimodal: false                 # 仅火山引擎需设为 true
  # api_key_command:
  #   command: ["/usr/local/bin/op", "read", "op://team/ogmemory/embedding-api-key"]
  # st_model: "BAAI/bge-large-en-v1.5"

# ---- 向量数据库 ----
vector_db:
  type: opengauss
  connection_string: "host=127.0.0.1 port=8799 dbname=postgres user=gaussdb password=CHANGE_ME"
  dimension: 1024
  table_name: vector_index
  pool_size: 5
  # chroma_persist_dir: ".chroma_data"
  # chroma_collection: "contextengine"

# ---- HTTP 服务 ----
service:
  http_port: 8090
  workers: 2
  # http_ip_allowlist: ["127.0.0.1", "10.0.0.0/8"]
  # http_ip_allowlist_trust_proxy: false
  # http_trusted_proxies: ["127.0.0.1"]

# ---- AGFS(容器内部使用,一般不需修改)----
agfs:
  base_url: "http://127.0.0.1:1833"
  mount_prefix: "/local/plugin"

# ---- 索引服务 ----
index:
  interval: 15
  workers: 1

# ---- 身份/多租户 ----
identity:
  account_id: "acct-demo"
  user_id: "u-alice"
  agent_id: "main"

# ---- 多租认证 ----
auth:
  role_control_enabled: false
  # root_api_key: "root-secret-key-change-me"
  # admin_api_keys:
  #   - "acct-company-a:admin-key-for-a"
  #   - "acct-company-b:admin-key-for-b"

# ---- Agent 共享 ----
sharing:
  agent_shared_mode: "off"
  # agent_shared_list:
  #   - "agent-shared-sales"
  #   - "agent-shared-support"

# ---- 记忆提取 ----
memory:
  # after_turn_threshold: 200
  # rolling_compress_enabled: true
  # rolling_compress_fallback_enabled: false
  # compact_prepare_token_ttl: 300
  # directory_summary_enabled: false
  # archive_max_count: 10
  # archive_merge_threshold: 10
  # prefetch_enabled: false
  # prefetch_top_k: 5
  # session_state_bridge_enabled: true
  # session_state_sync_interval_turns: 1
  # topic_detection_enabled: false
  # compression_quality_enabled: false
  # compression_quality_persist_metadata: false

# ---- 缓存 ----
cache:
  enabled: true
  max_size: 1000

# ---- Perf 性能监控(可选) ----
# 生命周期阶段性能记录器,详见 perf/README.md。
# 同名 OGMEM_PERF_* 环境变量优先级高于此处的 YAML 值。
# 启用后,OgMemConfig.load() 会将这些值导出为 OGMEM_PERF_* 环境变量,
# 触发 perf.get_recorder() 自动启用。
# perf:
#   enabled: false
#   file_path: "/tmp/ogmem_perf.jsonl"           # 容器内 JSONL 写入路径
#   # http_url: "http://127.0.0.1:8090/api/v1/perf/events"   # 远程 HTTP 上报(与 file_path 二选一)
#   # run_id: "manual-run-2026-05-11"
#   # rate_card: "/etc/ogmem/rate_card.json"