配置 LLM 后端

Alice 支持五种 LLM 后端。每个场景引用一个 llm_profile,指定使用哪个 provider、模型和设置。

支持的 Provider

ProviderCLI 工具备注
opencodeopencodeOpenCode CLI,用于 DeepSeek 及其他模型
codexcodexOpenAI Codex CLI。支持 reasoning_effortpersonalityprofile
claudeclaudeAnthropic Claude Code CLI。默认使用流式输出
geminigeminiGoogle Gemini CLI
kimikimiMoonshot Kimi CLI

每个 provider 需要单独安装和认证。Alice 不管理 provider 的认证。

Profile 配置

Profile 定义在 bots.<id>.llm_profiles 下:

bots:
  my_bot:
    llm_profiles:
      my_profile:
        provider: "opencode"
        model: "deepseek/deepseek-v4-pro"
        variant: "max"
        timeout_secs: 172800
        permissions:
          sandbox: "danger-full-access"
          ask_for_approval: "never"
          add_dirs: ["/data/corpus"]

通用字段

字段全部支持说明
provider后端名称:opencodecodexclaudegeminikimi
commandCLI 二进制路径。默认为 provider 名称(如 opencode
timeout_secs每次运行超时(秒)。默认:172800(48 小时)
model模型标识符(必填)
permissions.sandbox"read-only""workspace-write""danger-full-access"
permissions.ask_for_approval"untrusted""on-request""never"
permissions.add_dirsagent 可访问的额外目录
prompt_prefix每次 prompt 前添加的文本

Codex 专属字段

字段说明
reasoning_effort思考级别:"low""medium""high""xhigh"
personalityCodex CLI 配置中的命名人格预设
profileCodex CLI 配置中的命名子 profile

OpenCode 专属字段

字段说明
variantDeepSeek 变体:"max""high""minimal"

自定义二进制路径

如果你的 CLI 二进制不在 $PATH 中,请指定绝对路径:

llm_profiles:
  work:
    provider: "opencode"
    command: "/usr/local/bin/opencode"
    model: "deepseek/deepseek-v4-pro"

你也可以通过 env 扩展 $PATH

bots:
  my_bot:
    env:
      PATH: "/home/user/bin:/usr/local/bin:/usr/bin:/bin"

按 Profile 的覆盖

部分后端支持通过 profile_overrides 实现按 profile 的 runner 覆盖。这是一项高级功能,适用于同一个 provider 在不同场景下需要不同 CLI 配置的情况。

llm_profiles:
  executor:
    provider: "codex"
    model: "gpt-5.4-mini"
    profile: "executor"
    profile_overrides:
      executor:
        command: "/opt/bin/codex-executor"
        provider_profile: "executor-v2"
        timeout: 3600
        exec_policy:
          sandbox: "danger-full-access"
          ask_for_approval: "never"

后端进程的环境变量

bots.<id> 下的 env 字段将环境变量传递给每个 LLM 子进程:

bots:
  my_bot:
    env:
      HTTPS_PROXY: "http://127.0.0.1:8080"
      ALL_PROXY: "http://127.0.0.1:8080"

这对代理配置和 API 密钥管理特别有用。

示例

OpenCode + DeepSeek(chat)

llm_profiles:
  chat:
    provider: "opencode"
    model: "deepseek/deepseek-v4-flash"

Codex + reasoning

llm_profiles:
  work:
    provider: "codex"
    command: "codex"
    model: "gpt-5.4-mini"
    reasoning_effort: "high"
    permissions:
      sandbox: "danger-full-access"
      ask_for_approval: "never"

Claude

llm_profiles:
  work:
    provider: "claude"
    model: "claude-sonnet-4-6"
    prompt_prefix: "You are a senior software engineer. Be concise."
    permissions:
      sandbox: "danger-full-access"
      ask_for_approval: "never"

Gemini

llm_profiles:
  chat:
    provider: "gemini"
    model: "gemini-2.5-pro"

Kimi

llm_profiles:
  chat:
    provider: "kimi"
    model: "kimi-model-identifier"