Skip to main content

配置章节参考

.moai/config/sections/ 的主要配置文件键参考 (handoff/delegation/llm/statusline/security)。

更新 2026-08-15 5 分钟阅读 在 GitHub 上编辑 ↗

MoAI-ADK的项目设置分为 .moai/config/sections/ 下的多个YAML文件。settings.json指南涵盖Claude Code运行时设置,而本页面记录控制MoAI-ADK自身行为的主要section文件的键。

信息
一句话总结: settings.json 定义允许Claude Code做什么,.moai/config/sections/*.yaml 定义MoAI-ADK如何编排。

handoff.yaml — 自动恢复交接

控制跨会话边界时如何处理已保存的交接。

yaml
handoff:
    mode: manual   # manual | auto
    guide: false
说明
modemanual (默认)不自动注入已保存的交接 (opt-in基准UX)
modeauto/clear 时将已保存的交接注入会话上下文,然后移动到audit-trail副本
guidefalse (默认)true 时,在非-/clear 会话开始(startup/resume/compact)时发出关于有待处理交接的best-effort stderr提示。仅信息性,不阻止会话

相关: 自主持续循环, moai handoff.

delegation.yaml — 代理路由SSOT

这是 /moai 子命令的默认技能/代理分配映射。当编排器构建执行计划(Analyze-First)时,它读取此映射以决定spawn哪些代理以及注入哪些技能。

yaml
delegation:
    version: 1
    learning:
        observe: routing-ledger
        propose_via: harness-tier-ladder
        auto_apply: false          # Tier-4网关 — 需要用户批准
    subcommands:
        plan:
            agents: [manager-spec, plan-auditor, Explore]
            skills: [moai-workflow-spec, moai-foundation-thinking]
        # run / sync / project / fix / loop / ...
    domain_skills:
        backend:  [moai-ref-api-patterns, moai-domain-backend]
        security: [moai-ref-owasp-checklist, moai-ref-llm-security, ...]
    agents:
        manager-spec: [moai-workflow-spec, moai-foundation-thinking]
说明
learning将路由使用管理为仅追加账本 (.moai/state/routing-ledger.jsonl, opt-in·fail-open),harness学习子系统通过4-tier阶梯提出更新。auto_apply: false — Tier-4变更需要 AskUserQuestion 用户批准
subcommands每个子命令的 agents (要spawn的11个retained代理) + skills (spawn时注入的workflow技能)。0个分配也有效 (编排器直接执行)
domain_skills按任务域注入的技能 (每次spawn 0-3个)。与域信号匹配
agents每个代理的条件技能 (触发时on-demand加载)

相关: 代理指南, 技能指南.

llm.yaml — 后端·配置矩阵

定义配置文件、配置矩阵、每个代理的 override 以及 GLM 模型映射。

yaml
llm:
  profile: "medium"            # high | medium | low (活动矩阵列; max 读作 high)
  performance_tier: "medium"   # legacy 别名 (profile 缺失时读取; 同一套词汇)
  profiles:                    # 配置文件列 → 11 个代理 → {model, effort}
    high: { ... }              # 详表: 配置矩阵页面
    medium: { ... }
    low: { ... }
  agent_overrides: {}          # 每个代理的 {model, effort} override (可选)
  glm:
    base_url: "https://api.z.ai/api/anthropic"
    models:
      high: "glm-5.3"          # 1M context — Opus 插槽
      medium: "glm-5.3"        # 1M context   — Sonnet 插槽
      low: "glm-5.3"          # 1M context   — 轻量插槽
      fable: "glm-5.3"
说明
profile活动配置矩阵列 (high/medium/low; 旧的 max 被读作 high 的别名)。为空时解释为 medium。所有子代理 spawn 的 model+effort 来源
performance_tierlegacy 别名字段。仅当 profile 缺失时读取; 与 profile 共享同一套 high/medium/low 词汇,因此不需要归一化步骤
profiles每个配置文件列的 per-agent → {model, effort} 矩阵 (11 个代理 × 3 列 = 33 格)。Go 默认值(template.DefaultProfileMatrix)是缺失格的权威 fallback
agent_overrides每个规范代理名称的 {model, effort} override。优先于活动配置文件的代理格 (目录+enum 校验)
glm.base_urlZ.AI Anthropic兼容代理端点
glm.models每个插槽的 GLM 模型映射。GLM将Claude的5步effort折叠为3个推理状态 (thinking-off / reasoning-high / reasoning-max)

相关: 配置矩阵, 3层代理架构.

statusline.yaml — 状态栏

控制statusline主题和16个段切换。

yaml
statusline:
  theme: "catppuccin-mocha"   # catppuccin-mocha | catppuccin-latte
  segments:
    model: true
    context: true
    # ... 共16个段 (全部默认on)
    task: true
    pr: true
说明
theme恰好存在2个主题: catppuccin-mocha (默认) 或 catppuccin-latte
segments16个段单独切换 (唯一的运行时控制杆)。全部默认on,非活动状态正常处理为无输出

段放置在3行中 — 行1(模型·版本·会话元数据),行2(上下文窗口·API使用量栏),行3(目录·git·工作流·PR)。

相关: Statusline系统 & PR段.

security.yaml — 安全加固

扩展(非替换)内置 DefaultSecurityPolicy 模式的额外安全设置。遵循SOLID的开闭原则 — 无core修改的config扩展。

yaml
security:
  extra_dangerous_bash_patterns:
    - 'curl\s+.*\|\s*(ba)?sh'
    - 'rm\s+-rf\s+/[^.]'
  extra_deny_patterns: []
  extra_ask_patterns: []
  permission:
    strict_mode: true
    session_rules: []
  sandbox:
    required: false
    network_allowlist: []
    env_scrub_extra: []
    docker_image: "alpine:latest"
说明
extra_dangerous_bash_patterns添加到内置deny模式的危险Bash命令正则表达式 (不区分大小写)
extra_deny_patterns / extra_ask_patterns额外文件deny/ask模式
permission.strict_modetrue 时,拒绝bypassPermissions模式的代理spawn
sandbox.requiredtrue 时,拒绝无 sandbox.justificationsandbox: none 代理 (默认false)
sandbox.network_allowlist添加到默认8个主机的允许网络主机
sandbox.env_scrub_extra添加到默认scrub列表的环境变量名 (AWS_*, GITHUB_TOKEN等)
sandbox.docker_imagedocker后端默认镜像

相关: 安全说明, settings.json指南.

workflow.yaml — branch_guard

守护主检出(primary checkout)分支状态的可选加入式防护。当多个会话共用一个检出时,其中一方执行的 git switch · git checkout · git reset --hard · git stash · git rebase 会在毫无提示的情况下改变另一个会话的工作树。该防护只在主检出中拒绝这些命令。

yaml
workflow:
    branch_guard:
        enabled: false   # 发布默认值
说明
enabledfalse(默认)防护完全处于惰性状态。连用于判定的 git rev-parse 都不会执行,因此没有附带开销
enabledtrue在主检出中拒绝改变分支状态的命令。在工作树内部照常允许

默认关闭的原因。 该防护所应对的风险只在多个会话共用一个检出时才会出现。单人使用的仓库不会遇到这个问题,因此发布版本以关闭状态出厂。同时运行多个会话的仓库维护者自行写入上面的键将其开启。

作用范围。 防护会区分主检出与工作树,不会阻拦工作树内部的分支操作。git status · git log · git diff · git fetch 这类只读命令,以及 git stash list · git merge-base,即使在开启时也会通过。

例外与失败方向。 需要创建分支的 git 负责代理按身份获得豁免,也可以通过 MOAI_BRANCH_GUARD_EXEMPT=1 环境变量绕过。判定不确定时(不是仓库、git rev-parse 执行失败等)不做拒绝而是放行,只写入审计日志 — 只有在证据确凿时才拒绝。

需要切换分支的工作,正统做法是移到工作树而不是让它被拒绝。具体步骤请参阅 moai worktree

相关文档