ReMe/docs/zh/configuration.md
jinliyl 5f2c693ddb
feat(plugins): extract DingTalk integration (#551)
* feat(plugins): extract DingTalk integration

* feat(config): complete cookbook model setup

* docs(config): add cookbook startup guide

* fix(config): clarify DingTalk Claude tool access
2026-09-15 20:05:52 +08:00

5.5 KiB
Raw Blame History

title description
基础配置 ReMe 配置文件、环境变量、命令行覆盖和核心组件配置。

基础配置

ReMe 使用 YAML 或 JSON 描述 Service、Job 和 Component。默认配置位于 reme/config/default.yaml;启动时可以选择其他配置,再用命令行覆盖其中的字段。

配置优先级

配置按下面的顺序合并,靠后的值优先:

  1. 已启用插件提供的 application_defaults。
  2. 选中的配置文件;未指定时使用内置 default。
  3. 命令行 dot notation 覆盖。
reme start
reme start config=demo
reme start config=cookbook
reme start config=/absolute/path/to/app.yaml
reme start service.port=8181 workspace_dir=/data/reme

config 支持内置配置名以及 .yaml、.yml、.json 文件。覆盖采用深度合并,不会因为修改 service.port 而丢失 service 下的其他字段。 可选的 cookbook 变体继承 default,并组合独立安装的 Auto Fin、Daily Paper 与钉钉插件;配置加载前必须提供三个 钉钉应用凭据环境变量。该配置还会启用 text-embedding-v4 向量检索,默认通过 AgentScope 使用 ${LLM_MODEL_NAME:-qwen3.8-max},并让钉钉桥接通过 Claude Code 复用 LLM_MODEL_NAME 与 LLM_API_KEY。

值的解析

CLI 参数使用 key=value,前导 - 或 -- 也会被接受:

reme start --service.port=8181 --service.web_enabled=false

值支持:

  • null、布尔值、整数和浮点数;
  • JSON 数组和对象;
  • JSON 引号字符串;
  • 普通字符串。

类似 007 的前导零字符串不会被转换成数字。需要保留 true、false 等字面字符串时,使用 JSON 引号:value='"true"'。

环境变量

配置文件会递归展开两种表达式:

api_key: ${LLM_API_KEY}
base_url: ${LLM_BASE_URL:-https://example.com/v1}

${VAR} 在变量未定义时会报错;${VAR:-default} 使用默认值。ReMe 还会从命令启动目录向上查找 .env,最多检查五级父目录。

不要把密钥提交到配置文件或 Git。推荐把密钥放在 .env 或进程环境中。

Application 字段

字段 默认值 作用
app_name ReMe 应用显示名称
workspace_dir .reme 用户拥有的 workspace 根目录,会规范化为绝对路径
metadata_dir metadata 索引、图谱和 catalog 等派生状态
session_dir session Agent 对话记录;标准 transcript 位于 session/dialog
mem_session_dir mem_session Agent wrapper 的会话和配置
resource_dir resource 外部资料
daily_dir daily Daily memory
digest_dir digest 长期整理后的记忆
timezone Asia/Shanghai Cron、日期和梦境流程使用的 IANA 时区
language 空 LLM 交互默认语言
plugins [] 为当前 Application 启用的已安装插件
service HTTP 服务端配置
jobs 默认 Job Job 名到 Job 配置的映射
components 默认组件 按类型和名称组织的组件配置

session_dir 必须保持 workspace-relative。其他 workspace 子目录也应使用清晰、稳定的相对名称。

LLM 配置

默认 LLM 使用 OpenAI-compatible 接口:

components:
  as_llm:
    default:
      backend: openai
      model: qwen3.7-plus
      context_size: 200000
      credential:
        api_key: ${LLM_API_KEY:-}
        base_url: ${LLM_BASE_URL:-}

可注册的内置 backend 包括 openai、anthropic、dashscope、deepseek、gemini、moonshot、ollama 和 xai。实际字段由对应 AgentScope model wrapper 决定。

基础文件操作、BM25 检索、wikilink 遍历和 proactive_read 不需要 LLM。auto_memory、auto_resource、 auto_dream 和 proactive refresh 等演化流程需要可用 LLM。

Embedding 配置

向量检索默认关闭。只设置 EMBEDDING_API_KEY 不会自动启用它;还需要同时启用 as_embedding、embedding_store,并把它连接到 file_store:

components:
  as_embedding:
    default:
      backend: openai
      model: text-embedding-v4
      dimensions: 1024
      credential:
        api_key: ${EMBEDDING_API_KEY}
        base_url: ${EMBEDDING_BASE_URL:-https://dashscope.aliyuncs.com/compatible-mode/v1}
  embedding_store:
    default:
      backend: local
      as_embedding: default
  file_store:
    default:
      backend: local
      embedding_store: default
      keyword_index: default
      file_graph: default

修改 embedding 模型或维度后,应重新构建 embedding 索引。

Service 和 Job

最小 HTTP 配置:

service:
  backend: http
  host: 127.0.0.1
  port: 2333
  web_enabled: true
  mcp_enabled: true
  mcp_path: /mcp

Job 由 backend、参数 schema 和顺序执行的 Step 组成:

jobs:
  example:
    backend: base
    description: Example job
    parameters:
      type: object
      properties:
        text: { type: string }
      required: [text]
    steps:
      - backend: example_step

设置 enable_serve: false 可以保留内部 Job、禁止 Service 暴露。后台和 Cron Job始终不会作为请求端点暴露。

查看生效配置

服务启动后运行:

reme app_config

返回的是已合并、已校验并隐藏密钥后的配置。排查覆盖顺序或插件配置时,应以它为准,而不是只查看某一个 YAML 文件。

完整字段定义以 reme/schema/application_config.py 和 reme/config/default.yaml 为准。