配置

Env 与 downcity.db 设计

说明 env、渠道账户、City 模型目录与项目 plugin 配置如何分层

Env 与 downcity.db 设计

只记一个原则:

  • 共享密钥和共享基础设施放 ~/.downcity/downcity.db
  • 项目行为放 downcity.json

downcity.db 负责

  • env_entries
  • channel_accounts
  • chat_auth_roles
  • chat_auth_role_permissions
  • chat_auth_channel_defaults
  • chat_auth_user_roles
  • model_providers
  • models
  • 其他 City 持有的加密设置

项目 downcity.json 负责

  • execution.modelId
  • plugins.*

为什么这么分

  • 密钥不应该散落到项目配置
  • plugin 开关与插件自身依赖配置属于项目行为
  • City 存储不应该偷偷承载项目级 plugin 状态

运行时加载顺序

  1. 宿主可以先从 downcity.db 读取需要参与运行时的 City env
  2. 宿主把这些值显式传给 new Agent({ env })
  3. Agent 读取项目 .env
  4. 项目 .env 覆盖宿主传入的同名键
  5. Agent 读取项目 downcity.json
  6. 解析 plugins.*
  7. downcity.db 解析渠道凭据、聊天授权规则和 City AIService 模型目录