Skip to content

配置参考

xopc 所有配置集中在 ~/.xopc/xopc.json 文件中。

快速开始

运行交互式设置向导:

bash
xopc onboard

或手动创建:

json
{
  "agents": {
    "defaults": {
      "model": "anthropic/claude-sonnet-4-5",
      "max_tokens": 8192,
      "temperature": 0.7
    }
  },
  "providers": {
    "anthropic": "${ANTHROPIC_API_KEY}"
  }
}

完整配置示例

json
{
  "agents": {
    "defaults": {
      "workspace": "~/.xopc/workspace",
      "model": {
        "primary": "anthropic/claude-sonnet-4-5",
        "fallbacks": ["openai/gpt-4o", "minimax/minimax-m2.1"]
      },
      "max_tokens": 8192,
      "temperature": 0.7,
      "max_tool_iterations": 20
    }
  },
  "providers": {
    "openai": "${OPENAI_API_KEY}",
    "anthropic": "${ANTHROPIC_API_KEY}",
    "deepseek": "${DEEPSEEK_API_KEY}",
    "groq": "${GROQ_API_KEY}",
    "google": "${GOOGLE_API_KEY}",
    "minimax": "${MINIMAX_API_KEY}"
  },
  "channels": {
    "telegram": {
      "enabled": true,
      "accounts": {
        "personal": {
          "name": "Personal Bot",
          "botToken": "BOT_TOKEN",
          "dmPolicy": "allowlist",
          "groupPolicy": "open",
          "allowFrom": [123456789],
          "streamMode": "partial"
        }
      }
    }
  },
  "gateway": {
    "host": "0.0.0.0",
    "port": 18790
  },
  "tools": {
    "web": {
      "search": {
        "maxResults": 5,
        "providers": [{ "type": "brave", "apiKey": "BSA_your_key_here" }]
      }
    }
  },
  "stt": {
    "enabled": true,
    "provider": "alibaba",
    "alibaba": {
      "apiKey": "${DASHSCOPE_API_KEY}",
      "model": "paraformer-v1"
    }
  },
  "tts": {
    "enabled": true,
    "provider": "openai",
    "trigger": "auto",
    "openai": {
      "apiKey": "${OPENAI_API_KEY}",
      "model": "tts-1",
      "voice": "alloy"
    }
  },
  "heartbeat": {
    "enabled": true,
    "intervalMs": 300000
  }
}

配置章节

agents

智能体配置分为三部分:可选的顶层 default(默认 agent id)、共享的 defaults、以及 list 中的多条身份。路由与 session key 的第一段即为 agent id;运行时会把 agents.defaultslist 里匹配且 enabled 的条目合并成该会话的有效配置(模型、工作区、工具、提示词等)。

顶层 agents 字段

字段类型说明
defaultstring可选。未在会话键/API 中指定 agent 时使用的默认 id。未设置时:取 list 中带 default: true 的条目,否则 list 中第一个 enabled 的 id,否则 main
defaultsobject全局基线,见下文 agents.defaults
listarray多条 agent 身份;每条可覆盖字段,见 agents.list 条目

agents.list 条目

每条至少包含 id,其余字段均为可选覆盖(与 defaults 中同类字段形状一致)。

字段类型说明
idstring智能体 id(agentId,也是 session key 的第一段)。
defaultboolean可选。为 true 时,在设置顶层 agents.default 的情况下将该条目标记为默认 agent。
namestring显示名称。
enabledboolean默认 true。为 false 时该 id 不参与路由默认,且有效配置解析会回退到默认 agent。
workspacestring可选。该 agent 的 Markdown 工作区根路径(支持 ~)。工具 cwd、按日的 memory/ 与用户文件在此。引导 Markdown、入站/TTS 与托管 memories/ 解析在 agents/<id>/(agent 主目录),不在此目录内。
agentDirstring可选。覆盖 内部 agent 状态目录(凭证、agent.json、收件箱、pid 等),默认 <stateDir>/agents/<id>/agent
modelstring | objectagents.defaults.model(字符串或 { primary, fallbacks })。
thinkingDefaultstring可选:offminimallowmediumhighxhighadaptive
reasoningDefaultstring可选:offonstream
verboseDefaultstring可选:offonfull
systemPromptOverridestring可选。若设置,则替换常规基础系统提示词;技能 XML 仍会追加(受 skills 白名单约束)。
skillsstring[]可选。技能 名称 白名单,仅这些会出现在 <available_skills>
toolsobject可选。{ "disable": ["工具名", ...] },按内置工具的 name 禁用(如 shellweb_searchsession_searchimage;禁用扩展工具用 extensions)。
paramsobject可选,预留。

同类可选字段也可写在 agents.defaults 里作为全局默认(例如 agents.defaults.tools.disable 会与每条 list 的 disable 合并)。

说明: 磁盘路径(~/.xopc/agents/<id>/ 下的会话与内部状态、以及各 agent 的 Markdown 工作区)均按 config.json 解析(agents.listagents.defaults、可选的 agentDir)。请使用 xopc agents add / agents delete 管理列表与目录;不存在独立于配置之外的 agent「注册表」。

agents.defaults

字段类型默认值说明
workspacestring~/.xopc/workspace工作目录
modelstring/objectanthropic/claude-sonnet-4-5默认模型
max_tokensnumber8192最大输出 tokens
temperaturenumber0.7温度参数 (0-2)
max_tool_iterationsnumber20最大工具调用次数

agents.defaults.model

模型配置支持两种格式:

简单格式:

json
{
  "model": "anthropic/claude-sonnet-4-5"
}

对象格式(带备用模型):

json
{
  "model": {
    "primary": "anthropic/claude-sonnet-4-5",
    "fallbacks": ["openai/gpt-4o", "minimax/minimax-m2.1"]
  }
}

模型 ID 格式:provider/model-id(如 anthropic/claude-opus-4-5)。

agents.defaults.memory

agents/<agentId>/memories/ 下的托管长期记忆(MEMORY.md / USER.md)、可选的 stub 外部记忆后端(用于接线测试),以及用户轮次上 prefetch 注入(在用户消息前加 <memory-context> 围栏)的控制项。目录说明见 托管记忆

字段类型默认值说明
enabledbooleantrue总开关。为 false 时:无 curated 快照、无 curated_memory 工具、不加载外部 memory 提供方、不做 prefetch/sync。
useEnhancedSystembooleantruefalse 时:关闭 curated 快照与 curated_memory;工作区引导里的根目录 MEMORY.md 仍会通过 bootstrap 参与提示。
userProfileEnabledbooleantruefalse 时:系统提示不包含 USER.mdcurated_memory 不能修改 user 目标(仍可读)。
memoryCharLimitnumber2200MEMORY.md 条目合计字符上限。
userCharLimitnumber1375USER.md 条目合计字符上限。
providerstringnone外部提供方:nonestubenabledfalse 时不生效)。
injectionFrequencystringevery-turnPrefetch 注入策略:every-turnfirst-turn(仅会话中第一条用户消息)。
contextCadencenumber1injectionFrequencyevery-turn 时,在第 1、1+N、1+2N… 轮注入 prefetch(最小为 1)。
dialecticCadencenumber预留字段,供将来外部 dialectic 同步节奏使用(尚未接线)。

agents.defaults.sessionSearch

跨会话 transcript 检索(session_search 工具,需会话持久化可用时注册)。

字段类型默认值说明
summaryModelstring按会话摘要所用模型(如 openai/gpt-4o-mini)。设置后优先于环境变量 XOPC_SESSION_SEARCH_MODEL

providers

配置 LLM 服务商 API 密钥。使用环境变量引用:

json
{
  "providers": {
    "openai": "${OPENAI_API_KEY}",
    "anthropic": "${ANTHROPIC_API_KEY}",
    "deepseek": "sk-...",
    "groq": "${GROQ_API_KEY}"
  }
}

支持的服务商:

服务商环境变量
openaiOPENAI_API_KEY
anthropicANTHROPIC_API_KEY
googleGOOGLE_API_KEYGEMINI_API_KEY
groqGROQ_API_KEY
deepseekDEEPSEEK_API_KEY
minimaxMINIMAX_API_KEY
xaiXAI_API_KEY
mistralMISTRAL_API_KEY
cerebrasCEREBRAS_API_KEY
openrouterOPENROUTER_API_KEY
huggingfaceHF_TOKENHUGGINGFACE_TOKEN

注意: 环境变量优先于配置文件中的值。

查看 模型文档 了解自定义服务商配置。


bindings

可选的规则数组,用于将入站流量分配到指定 agentId。按 priority 从高到低匹配;每条 match 中的 channel 须为精确通道 id(如 telegram),peerId 可使用 * 通配。若无匹配,默认 agent id 为:已设置的 agents.default → 否则 agents.list 中第一个 enabled 的 id → 否则 main。详见 Session 路由系统


session

字段类型默认值说明
dmScopestringmainDM 会话合并/拆分策略:mainper-peerper-channel-peerper-account-channel-peer
identityLinksobject-规范 id → ["channel:peerId", …] 别名,用于跨通道身份
storageobject-可选会话存储调优(pruneAfterMsmaxEntries

更多说明与示例见 Session 路由系统


channels

通信通道配置。

channels.telegram

多账户 Telegram 配置:

json
{
  "channels": {
    "telegram": {
      "enabled": true,
      "accounts": {
        "personal": {
          "name": "Personal Bot",
          "botToken": "BOT_TOKEN",
          "dmPolicy": "allowlist",
          "groupPolicy": "open",
          "allowFrom": [123456789],
          "streamMode": "partial"
        }
      }
    }
  }
}
字段类型默认值说明
enabledbooleanfalse启用 Telegram
accountsobject-多账户配置
accounts.<id>.namestring-显示名称
accounts.<id>.botTokenstring-Bot token
accounts.<id>.dmPolicystringopenDM 策略
accounts.<id>.groupPolicystringopen群组策略
accounts.<id>.allowFromarray[]允许的用户 ID
accounts.<id>.streamModestringpartial流式模式

DM 策略: pairing | allowlist | open | disabled

群组策略: open | allowlist | disabled

流式模式: off | partial | block

channels.feishu

json
{
  "channels": {
    "feishu": {
      "enabled": true,
      "appId": "APP_ID",
      "appSecret": "APP_SECRET",
      "verificationToken": "VERIFICATION_TOKEN"
    }
  }
}

gateway

HTTP API 网关配置。

字段类型默认值说明
hoststring0.0.0.0绑定地址
portnumber18790端口号
authobject-认证配置
corsobject-CORS 设置

gateway.auth

字段类型默认值说明
enabledbooleanfalse启用认证
usernamestring-认证用户名
passwordstring-认证密码
api_keystring-API 密钥认证

gateway.cors

字段类型默认值说明
enabledbooleanfalse启用 CORS
originsarray[]允许的来源
credentialsbooleanfalse允许凭证

tools

工具配置。

tools.web

字段类型默认值说明
searchobject-网页搜索配置
browseobject-网页浏览配置
字段类型默认值说明
maxResultsnumber5工具未传 count 时的默认条数
providersarray[]按顺序尝试的搜索后端(bravetavilybingsearxng)。空数组则仅 HTML 兜底

每项可含 type、可选 apiKey、SearXNG 可选 url、可选 disabled


stt

语音转文字(STT)配置。

字段类型默认值说明
enabledbooleanfalse启用 STT
providerstringalibaba服务商:alibaba, openai
alibabaobject-阿里云 DashScope 配置
openaiobject-OpenAI Whisper 配置
fallbackobject-回退配置

stt.alibaba

字段类型默认值说明
apiKeystring-DashScope API 密钥
modelstringparaformer-v1模型:paraformer-v1, paraformer-8k-v1

stt.openai

字段类型默认值说明
apiKeystring-OpenAI API 密钥
modelstringwhisper-1模型:whisper-1

stt.fallback

字段类型默认值说明
enabledbooleantrue启用回退
orderarray["alibaba", "openai"]回退顺序

示例:

json
{
  "stt": {
    "enabled": true,
    "provider": "alibaba",
    "alibaba": {
      "apiKey": "${DASHSCOPE_API_KEY}",
      "model": "paraformer-v1"
    },
    "fallback": {
      "enabled": true,
      "order": ["alibaba", "openai"]
    }
  }
}

tts

文字转语音(TTS)配置。

字段类型默认值说明
enabledbooleanfalse启用 TTS
providerstringopenai服务商:openai, alibaba
triggerstringauto触发:auto, never
openaiobject-OpenAI TTS 配置
alibabaobject-阿里云 CosyVoice 配置

tts.openai

字段类型默认值说明
apiKeystring-OpenAI API 密钥
modelstringtts-1模型:tts-1, tts-1-hd
voicestringalloy音色:alloy, echo, fable, onyx, nova, shimmer

tts.alibaba

字段类型默认值说明
apiKeystring-DashScope API 密钥
modelstringcosyvoice-v1模型:cosyvoice-v1
voicestring-音色 ID

触发模式:

  • auto: 用户发语音时,智能体以语音回复
  • never: 禁用 TTS,只发送文字

heartbeat

定期健康检查配置。

字段类型默认值说明
enabledbooleantrue启用心跳
intervalMsnumber300000间隔毫秒数(5 分钟)

cron

定时任务配置。

字段类型默认值说明
enabledbooleantrue启用 cron
jobsarray[]定时任务列表

查看 Cron 文档 了解任务配置。


extensions

扩展启用/禁用配置。

json
{
  "extensions": {
    "enabled": ["telegram-channel", "weather-tool"],
    "disabled": ["deprecated-extension"],
    "telegram-channel": {
      "token": "bot-token-here"
    },
    "weather-tool": true
  }
}
字段类型说明
enabledstring[]要启用的扩展 ID 列表
disabledstring[](可选)禁用的扩展 ID 列表
[extension-id]object/boolean扩展特定配置

查看 扩展文档 了解详情。


环境变量

xopc 支持环境变量存储敏感数据:

变量说明
OPENAI_API_KEYOpenAI API 密钥
ANTHROPIC_API_KEYAnthropic API 密钥
GOOGLE_API_KEYGoogle AI API 密钥
GROQ_API_KEYGroq API 密钥
DEEPSEEK_API_KEYDeepSeek API 密钥
MINIMAX_API_KEYMiniMax API 密钥
DASHSCOPE_API_KEY阿里云 DashScope API 密钥(STT/TTS)
TELEGRAM_BOT_TOKENTelegram bot token
XOPC_CONFIG自定义配置文件路径
XOPC_WORKSPACE自定义工作区目录
XOPC_SESSION_SEARCH_MODEL未设置 agents.defaults.sessionSearch.summaryModel 时,session_search 摘要使用的默认模型
XOPC_LOG_LEVEL日志级别(trace/debug/info/warn/error/fatal)
XOPC_LOG_DIR日志目录路径
XOPC_LOG_CONSOLE启用控制台输出(true/false)
XOPC_LOG_FILE启用文件输出(true/false)
XOPC_LOG_RETENTION_DAYS日志文件保留天数
XOPC_PRETTY_LOGS开发环境美化日志输出

环境变量优先于配置文件中的值。


配置管理

验证配置

bash
xopc config --validate

查看配置

bash
xopc config --show

编辑配置

bash
xopc config --edit

常见问题

Q: 如何使用多个服务商?

使用 providers 配置定义多个 API 密钥。运行时将根据模型 ID 自动选择合适的服务商:

json
{
  "providers": {
    "openai": "${OPENAI_API_KEY}",
    "anthropic": "${ANTHROPIC_API_KEY}"
  },
  "agents": {
    "defaults": {
      "model": "anthropic/claude-sonnet-4-5"
    }
  }
}

Q: 如何使用 Ollama(本地模型)?

~/.xopc/models.json 中配置自定义服务商:

json
{
  "providers": {
    "ollama": {
      "baseUrl": "http://localhost:11434/v1",
      "api": "openai-completions",
      "apiKey": "ollama",
      "models": [
        { "id": "llama3.1:8b" }
      ]
    }
  }
}

查看 模型文档 了解详情。

Q: 如何配置 OAuth?

xopc 支持某些服务商的 OAuth 认证:

Kimi(设备码流程):

json
{
  "providers": {
    "kimi": {
      "auth": {
        "type": "oauth",
        "clientId": "your-client-id"
      }
    }
  }
}

Kimi 使用设备码流程 - CLI 会提示访问 auth.kimi.com 并输入代码。

Q: 如何使用环境变量?

在配置中使用 ${VAR_NAME} 语法:

json
{
  "providers": {
    "openai": "${OPENAI_API_KEY}",
    "anthropic": "${ANTHROPIC_API_KEY}"
  }
}

或直接设置环境变量而不添加到配置中。

基于 MIT 许可证发布