.env,在一个覆盖文件里修改少数需要改的设置即可。
配置文件
后加载的来源优先:环境变量,其次是覆盖文件,再次是
config.devices.yaml 与 config.llm.yaml,最后是 config.yaml。字典不会跨文件合并:覆盖文件里设置的键会替换整个值,所以在覆盖文件里设置 EMAIL_PREDEFINE_CODES 会替换掉演示账号,而不是在其后追加。
ENV 只决定加载哪个覆盖文件,并标记日志行,本身不带任何行为。生产模式由下文的 PRODUCTION 开关声明,而不是由环境名决定。
覆盖文件中,名称含有 _KEY、_PASSWORD、_PASS、_PWD、_SECRET、_SK 或 _TOKEN 的值,会用 .env 里的 CONFIG_ENCRYPTION_KEY 加密保存。
模型密钥
一个密钥即可驱动所有用途。把下列任意一个写进compose.yaml 旁边的 .env,然后使其生效:
docker compose restart 不会重新读取 .env,up -d 才会。
每个密钥为四个用途各选一个模型:对话(模型选择器)、视觉(化验单照片与扫描页)、文本(指标抽取、文件标题与摘要)、向量(指标检索)。 开头的表格列出了每个密钥选中的模型,以及各密钥的申请地址。DeepSeek 与 Anthropic 不提供向量模型,只配置其中之一时,指标检索使用词法索引。
mirobody doctor 会打印找到的密钥和每个用途选中的模型,并对没有可用模型的用途给出修复方法:
更换模型
- 让某个用途改用另一条配置。
UTILS_VISION_MODEL、UTILS_TEXT_MODEL和UTILS_EMBEDDING_MODEL可以取一个条目名、一组条目名(取第一个有密钥的)、provider/model字符串,或一条内联配置。同名环境变量优先于文件,例如UTILS_VISION_MODEL=qwen-utils。 - 修改对话的默认模型。
DEFAULT_MODEL指定一个MODELS条目;不设置时,默认取第一个有密钥的条目。 - 让某个密钥经由另一个网关。 在
.env中设置<PREFIX>_BASE_URL(PREFIX是密钥名去掉_API_KEY),读取该密钥的所有条目都会改用另一个兼容 OpenAI 的端点,例如OPENROUTER_BASE_URL。Anthropic 自己的 SDK 也读取ANTHROPIC_BASE_URL,如果机器上已经为其他工具设置了它,Mirobody 也会随之改道;mirobody doctor会打印每个用途实际解析到的端点。 - 接入其他厂商。 在
config.llm.yaml的MODELS中新增一条,写明llm_type: openai、base_url、model,并把api_key设为保存密钥的.env变量的名称。用于视觉的条目必须声明supports_image: true。请直接加在config.llm.yaml中:覆盖文件里的MODELS会替换整张表。
部署设置
决定 agent 行为的键见内置 Agent。
密钥
PG_ENCRYPTION_KEY 与 CONFIG_ENCRYPTION_KEY 是两个不同的值:前者加密存储的内容,例如对话消息与上传的文件。DATABASE_DECRYPTION_KEY(十六进制)加密各 provider 保存的设备凭据。不要在不同环境之间复制这些密钥。自行生成这些密钥并迁移到另一台主机的方法,见在服务器上部署。
扩展目录
引擎启动时扫描三组目录。新增一个目录即可扩展引擎,无需修改代码包。
在覆盖文件中设置其中任何一项都会替换整个列表,所以请把默认条目和你自己的目录一起写上。已安装的包也可以通过
mirobody.tools、mirobody.agents 与 mirobody.providers 入口点扩展这三项。
所有配置键的完整说明见 。