Skip to content

自动生成配置字段参考 ​

本页由源码与 JSON Schema 自动生成,请勿手工编辑。叙事、示例与配置方法见配置参考。

  • 生成命令: pnpm docs:config
  • 漂移检查: pnpm check:config-reference

Host 顶层字段 ​

权威契约来自 Runtime 实际消费的 packages/im/runtime/src/host-config-schema.json;消费位置见 packages/host/gateway/src/config/configuration-projection.ts。

路径类型必填默认值说明
httpobject否—HTTP、Console、REST/RPC/SSE 与 Webhook Host。
http.readinessobject否—/pub/ready 要求就绪的运行时组件;不执行外部网络探测。
http.readiness.databaseboolean否true要求 Database Host 已初始化(不执行实时数据库查询)。
http.readiness.endpointsarray<object>否—必须开放入站的 Endpoint,按插件 owner 与稳定槽名精确选择。
http.readiness.endpoints[].ownerstring是——
http.readiness.endpoints[].namestring是——
http.readiness.agentsarray<string>否—必须存在的 Agent binding;不验证模型凭据或 Provider 网络可用性。
http.hoststring | null否—监听地址。
http.portinteger | string | null否—监听端口:1–65535 的整数,或展开后为该范围整数的 ${VAR} 环境变量引用(0 表示由系统分配空闲端口)。未配置时网关监听 8068。
http.tokenstring | null否—初始化令牌:创建第一个 Console 所有者之前用于登录初始化向导;之后失效(ADR 0049)。
http.corsOriginsarray | null否——
http.trustProxyboolean | integer | array<string> | string否—受信任的反向代理,其 X-Forwarded-For / Forwarded 头给出真实客户端地址(登录限流、审计 IP、仅本机套接字):false(默认)只用 TCP 对端地址;true 信任所有跳;数字表示信任离服务端最近的若干跳;列表表示只信任匹配的 IP / CIDR 或 loopback、private、linklocal。
http.basestring | null否—API 路径前缀。
http.tlsfalse | null | object否——
http.listenersarray<object>否——
http.listeners[].enabledboolean | string否—是否启用此监听器。
http.listeners[].hoststring否—监听地址。
http.listeners[].portinteger | string否—监听端口:1–65535 的整数,或展开后为该范围整数的 ${VAR} 环境变量引用。
http.listeners[].tlsfalse | null | object否——
consoleobject否—Console 宿主功能。
console.terminalobject否—Console 终端(宿主 Shell / SSH),仅持有 ops.terminal 的所有者可用;默认关闭。
console.terminal.enabledboolean否false注册终端路由。
console.terminal.shellstring否—本机 Shell;省略时用 $SHELL(Windows 为 powershell.exe)。
console.terminal.cwdstring否"."工作目录,相对项目根。
console.terminal.idleTimeoutinteger否900无输入多少秒后断开(0 表示不限)。
console.terminal.maxSessionsinteger否4所有用户合计的同时会话上限。
console.terminal.ssharray<object>否—Console 可连接的 SSH 目标。
console.terminal.ssh[].namestring是—目标 id,Console 按它选择(不能是 local)。
console.terminal.ssh[].labelstring否—显示名称。
console.terminal.ssh[].hoststring是—SSH 主机。
console.terminal.ssh[].portinteger否22SSH 端口。
console.terminal.ssh[].usernamestring是—SSH 用户。
console.terminal.ssh[].privateKeyPathstring否—私钥文件(相对项目根,可用 ~);与 privateKeyEnv 互斥。
console.terminal.ssh[].privateKeyEnvstring否—保存私钥的环境变量名。
console.terminal.ssh[].passwordEnvstring否—保存密码的环境变量名。
console.terminal.ssh[].passphraseEnvstring否—保存私钥口令的环境变量名。
console.terminal.ssh[].hostFingerprintstring否—必填的主机密钥指纹(SHA256:…),严格校验;在可信网络中用 ssh-keyscan -t ed25519 &lt;host&gt; | ssh-keygen -lf - 获取。
console.terminal.ssh[].insecureAcceptAnyHostKeyboolean否—不校验主机密钥、接受任意密钥(不安全,可被中间人攻击);仅在不填 hostFingerprint 时使用,Console 会把该目标标为不安全。
console.loginAssistobject否—Console 中的登录辅助(ADR 0058)。
console.loginAssist.captchaHelperUrlstring否—独立源上的验证码辅助页;默认 https://zhin.js.org/login-assist/tcaptcha.html。
gatewayobject否—管理网关(zhin start):实例监管与依赖事务。
gateway.readyTimeoutinteger否60实例启动、重启或依赖事务后报告就绪的最长秒数;超时视为启动失败(依赖事务随之回滚)。每次启动、重启与事务前重新读取,修改后无需重启网关。
databaseobject否—Database Host 与方言连接参数。
database.dialectstring否—数据库方言。
database.filenamestring否—SQLite 文件路径。
database.modestring否—SQLite 兼容模式字段。
database.hoststring否—数据库主机。
database.portnumber | string否—网络数据库端口。
database.userstring否—MySQL / PostgreSQL 用户名。
database.usernamestring否—Redis 用户名。
database.passwordstring否—连接密码。
database.databasestring | number否—MySQL / PostgreSQL 数据库名,或 Redis 数据库索引。
database.uristring否—MySQL 连接 URI(可能含凭据)。
database.connectionStringstring否—PostgreSQL 连接串(可能含凭据)。
database.urlstring否—MongoDB / Redis 连接 URL(可能含凭据)。
database.dbNamestring否—MongoDB 数据库名。
database.poolobject | null否——
database.pool.minnumber | string | null否—最少连接数。
database.pool.maxnumber | string | null否—最多连接数。
database.pool.acquireTimeoutMillisnumber | string | null否—获取连接超时毫秒。
database.pool.idleTimeoutMillisnumber | string | null否—空闲连接超时毫秒。
database.socketobject否——
database.socket.hoststring否—Redis 主机。
database.socket.portnumber | string否—Redis 端口。
database.socket.pathstring否—Unix socket 路径。
database.socket.connectTimeoutnumber | string否—连接超时毫秒。
database.socket.tlsboolean | string否—启用 TLS。
database.socket.keepAlivenumber | string否—TCP keep-alive 毫秒。
database.socket.noDelayboolean | string否—TCP noDelay。
database.sslboolean | string | object否——
database.charsetstring否—MySQL 字符集。
database.timezonestring否—MySQL 时区。
database.connectTimeoutnumber | string否—MySQL 连接超时毫秒。
database.connectionTimeoutMillisnumber | string否—PostgreSQL 连接超时毫秒。
database.query_timeoutnumber | string否—PostgreSQL 查询超时毫秒。
database.statement_timeoutnumber | string否—PostgreSQL statement 超时毫秒。
database.application_namestring否—PostgreSQL 应用名称。
database.maxPoolSizenumber | string否—MongoDB 最大连接池大小。
database.minPoolSizenumber | string否—MongoDB 最小连接池大小。
database.serverSelectionTimeoutMSnumber | string否—MongoDB server 选择超时毫秒。
database.connectTimeoutMSnumber | string否—MongoDB 连接超时毫秒。
database.socketTimeoutMSnumber | string否—MongoDB socket 超时毫秒。
database.authSourcestring否—MongoDB 认证数据库。
database.replicaSetstring否—MongoDB 副本集。
database.authobject否——
database.auth.usernamestring否—MongoDB 用户名。
database.auth.passwordstring否—MongoDB 密码。
database.disableOfflineQueueboolean | string否—Redis 禁止离线队列。
database.pingIntervalnumber | string否—Redis 心跳间隔毫秒。
database.consoleobject否—PostgreSQL / MySQL:Console SQL 控制台使用的受限账号(ADR 0059;zhin db console-role 创建)。未配置时原始 SQL 关闭。
database.console.userstring否—受限账号用户名,通常写 ${ZHIN_DB_CONSOLE_USER}。
database.console.passwordstring否—受限账号密码,写 ${ZHIN_DB_CONSOLE_PASSWORD},值只放 .env。
aiobject否—Provider、Agent、会话、记忆、工具与执行安全策略。
ai.venuesarray<object>否—多 Bot 共享 IM 房间(ADR 0048 §3.2)。
ai.venues[].idstring是——
ai.venues[].labelstring否——
ai.venues[].conversationobject是——
ai.venues[].conversation.platformstring是——
ai.venues[].conversation.sceneTypestring: "private", "group", "channel"否——
ai.venues[].conversation.sceneIdstring是——
ai.venues[].conversation.threadIdstring否——
ai.venues[].membersarray<object>是——
ai.venues[].members[].agentstring是——
ai.venues[].members[].botEndpointstring是——
ai.venues[].members[].aliasesarray<string>否——
ai.venues[].entrystring否——
ai.venues[].visibilitystring: "visible", "summary", "backstage"否——
ai.externalPeersarray<object>否—显式声明的外部第三方 Bot 账号(ADR 0043/0048)。
ai.externalPeers[].platformstring是——
ai.externalPeers[].userIdstring是——
ai.externalPeers[].labelstring否——
ai.agentobject否—Agent 执行、排队、工具与模型策略。
ai.agent.mailboxobject否—Agent 收件箱(Mailbox)的 IM 收件策略(ADR 0048 H3;由 inboundQueue 改名,旧键会导致启动失败)。
ai.agent.mailbox.groupModestring: "supersede", "fifo"否—supersede(默认):同一发起人的新消息会替换他自己尚未回复的回合;fifo:全部按到达顺序排队。其他成员的消息总是排队。
ai.agent.mailbox.ttlMsinteger否180000排队超过该时长的回合会被丢弃并简短提示;0 表示不过期。
ai.agent.mailbox.maxQueuedTurnsinteger否5同一会话中允许排在当前回合之后的回合数;超出时回复一句“正在忙”。
ai.agent.mailbox.mergeobject否—群聊合流窗口(ADR 0038):短时间内多人点名 Bot 时合并为一次回复。私聊、主人、指令、叫停以及带媒体 / 引用 / 转发的消息不参与合流。
ai.agent.mailbox.merge.enabledboolean否true开启群聊合流(仅群聊)。设为 false 则恢复逐人逐条回复。
ai.agent.mailbox.merge.quietMsinteger否1500窗口内最后一条消息后安静多久就发车。
ai.agent.mailbox.merge.maxWaitMsinteger否6000窗口从第一条消息起最多等多久。
ai.agent.mailbox.merge.maxSendersinteger否5一次合并回复最多容纳的发送者数;超出的人留到下一个窗口。
ai.agent.mailbox.liveobject否—弹幕模式(ADR 0038):声明了 liveDanmaku 的直播适配器把一段时间内的弹幕收进窗口后只回一次;只开放只读工具,不出审批卡。
ai.agent.mailbox.live.modestring: "pick-one", "summary"否"pick-one"pick-one:从窗口里挑一条回;summary:概括整个窗口后回一次。
ai.agent.mailbox.live.windowMsinteger否10000弹幕窗口从第一条弹幕起收集多久。
ai.agent.mailbox.live.minIntervalMsinteger否15000同一直播间两次弹幕回复的最小间隔。
ai.agent.mailbox.coalesceWindowMsnumber | string否——
ai.agent.execSecuritystring: "deny", "allowlist", "full"否—Shell 命令安全边界。
ai.agent.execPresetstring: "readonly", "network", "development", "custom"否—非 full 模式使用的命令白名单预设。
ai.agent.networkobject否—IM 回合的出网权限(web_fetch / web_search 与联网命令)。默认关闭;enabled 开启 HTTPS 出网,allowedDomains 非空时只允许这些域名。未设置 enabled 时兼容旧配置:execPreset: network 视为开启。
ai.agent.network.enabledboolean否false是否允许 IM 回合 HTTPS 出网。
ai.agent.network.allowedDomainsarray<string>否—非空时只允许访问这些域名(含子域名)。
ai.agent.masterShellstring: "off", "isolated"否"off"IM 私聊中 master 的 Shell 权限。off:IM 会话不提供 bash;isolated:master 私聊在 Docker 容器内执行 bash(工作区可写、无网络、development 白名单、其余命令需审批),宿主无 Docker 时直接失败。
ai.agent.masterShellApprovalModestring: "ask", "auto", "inherit"否"ask"masterShell: isolated 时 master 私聊里需审批的调用怎么批。ask(默认):弹确认卡给 master;auto:自动审核(审核拒绝时转问 master);inherit:沿用 execApprovalMode。
ai.agent.toolBudgetobject否—交互运行时及其同步子任务不设固定轮数和总时长上限,共享配置的 token 额度。步数、时间和续跑设置用于有界任务及旧兼容入口。
ai.agent.toolBudget.extendByinteger否10有进展时每次延长的步数;0 关闭。
ai.agent.toolBudget.progressWindowinteger否5最近多少步内有进展才延长。
ai.agent.toolBudget.maxTotalIterationsinteger否40每段回合的硬步数上限。
ai.agent.toolBudget.maxSubagentTotalIterationsinteger否30回合内子 Agent 的硬步数上限。
ai.agent.toolBudget.maxWallClockMsinteger否600000整个回合的时间上限(毫秒);0 关闭。
ai.agent.toolBudget.maxTotalTokensinteger否0整个回合的 Token 上限;0 关闭。
ai.agent.toolBudget.failureStreakLimitinteger否3连续失败多少次后不再延长。
ai.agent.toolBudget.repeatLimitinteger否2连续重复相同调用多少次后不再延长。
ai.agent.toolBudget.autoContinuestring: "off", "master_dm", "on"否"master_dm"回合有进展但预算用尽时自动续跑:off 关闭;master_dm 仅主人私聊;on 总是。续跑沿用同一回合的策略与审批。
ai.agent.toolBudget.maxContinuationsinteger否2每回合最多自动续跑次数。
ai.agent.toolBudget.progressUpdatesstring: "off", "private", "all"否"private"off 关闭进度;持续交互任务在当前会话报告。private/all 用于选择有界任务的通知范围。
ai.agent.toolBudget.progressMinIntervalMsinteger否45000两次进度更新的最小间隔(毫秒)。
ai.agent.toolBudget.progressMaxUpdatesinteger否30 关闭进度。正数仅限制有界任务的更新次数;持续交互任务按配置的间隔报告,不限次数。
ai.agent.injectionGuardobject否—注入防护。外部内容(工具结果、网页、文件、子 agent 报告、群聊背景消息)进入回合后,高危动作(执行命令、向其他会话发消息、改配置、定时任务)必须审批;出站回复检查系统提示、密钥与其他会话记忆泄露。
ai.agent.injectionGuard.confirmHighRiskstring: "external_content", "off"否"external_content"external_content:读取外部内容后的高危动作一律审批(无人值守回合直接拒绝);off:关闭。
ai.agent.injectionGuard.outboundCheckstring: "redact", "off"否"redact"redact:在回复和外发工具消息中屏蔽泄露的系统提示、密钥和其他会话记忆;off:关闭。
ai.agent.injectionGuard.trustedOutputToolsarray<string>否[]结果不算外部内容的工具。
ai.agent.toolHardGateobject否—危险工具硬闸(ADR 0036)。始终开启,独立于 execApprovalMode:成员管理、内容发布、资金、改 Bot 身份类工具(核心名单 + 声明 risk: dangerous 的工具),以及写宿主自身配置 / 依赖 / git 钩子的调用(zhin.config.、.env、package.json、锁文件、node_modules/、.git/ 等)没有新鲜的人工批准或 Console 已批准的卡片就不执行,bypass 也不例外;被拒即 fail closed,同一回合不再重试。配置只能更严。
ai.agent.toolHardGate.dangerousToolsarray<string>否[]额外按危险工具处理的工具(本地名或限定名);不能把核心危险工具调成安全。
ai.agent.toolHardGate.allowFundsboolean否false允许资金类工具(红包、转账、付款)。默认关闭;开启后仍需审批。
ai.agent.toolHardGate.approvalTimeoutMsinteger否300000危险调用等待审批的上限(毫秒),超时即拒绝。
ai.agent.toolHardGate.maxPendingPerSceneinteger否3同一群(场景)同时待审批的卡片上限(ADR 0038)。超出后危险调用直接拒绝、不生成新卡;对已有待审卡的重复请求不计数。
ai.agent.toolHardGate.imApprovalobject否—硬闸 IM 审批通道(#1013),默认关闭。开启后每张新审批卡片同时投递给 allowlist 审批人,审批人在私聊(或专用审批群)发送 approve &lt;id&gt; / deny &lt;id&gt; 结算;与 Console 共用审批队列,先到先得。业务群内的消息不能结算卡片,也没有本会话 / 永久授权。
ai.agent.toolHardGate.imApproval.enabledboolean否false开启 IM 审批通道。
ai.agent.toolHardGate.imApproval.approverIdsarray<string> | object否[]审批人的平台用户 id:扁平列表对所有平台生效;对象形式为 平台(adapter 名)→ 用户 id 列表。不在名单里的人不能通过 IM 结算卡片。
ai.agent.toolHardGate.imApproval.deliverystring: "dm", "approver_group"否"dm"dm:私聊发给每位审批人;approver_group:发到 approverGroupId,且不能是触发调用的会话。
ai.agent.toolHardGate.imApproval.approverGroupIdstring否—专用审批群 id,delivery 为 approver_group 时必填;未配置时 IM 通道不可用,只能在 Console 审批。
ai.agent.reactionsobject否—按会话限制表情回应的频率。模型每轮都可能提出回应,宿主只在距该会话上次已发出的回应满 cooldownMs 且随机掷骰通过 probability 时才发出;计数保存在内存中。
ai.agent.reactions.cooldownMsinteger否600000同一会话两次已发出回应之间的最小间隔(毫秒)。
ai.agent.reactions.probabilitynumber否0.35允许发出的回应实际发出的概率;0 表示关闭表情回应。
ai.agent.usageQuotaobject否—按用户 / 按群的 token 配额与群速率限制。默认全部关闭(0),主人默认不受限;计数保存在内存中。
ai.agent.usageQuota.windowMsinteger否86400000配额周期(毫秒)。
ai.agent.usageQuota.perUserTokensinteger否0每个用户每周期可用的 token;0 不限。
ai.agent.usageQuota.perGroupTokensinteger否0每个群每周期可用的 token;0 不限。
ai.agent.usageQuota.perGroupRequestsPerMinuteinteger否0每个群每分钟可发起的回合数;0 不限。
ai.agent.usageQuota.exemptOwnerboolean否true主人不受限制。
ai.agent.execApprovalModestring: "ask", "bypass", "auto"否—主 Agent 命令的审批策略。
ai.agent.approvalobject否—IM 审批选项。
ai.agent.approval.adminSelfApproveboolean否false允许端点层或以上的 zhin admin 在自己的私聊里、主人无法作答时,本人一次性批准策略标为管理员可批的操作(标了 admin_approvable 的工具,如 schedule_add;session 记忆)。默认 false:只有主人能批。敏感文件、Shell 命令、global / platform 记忆、仅限人工与危险工具、无主人的群聊始终不在此列。
ai.agent.toolExecutionstring: "parallel", "sequential", "tiered"否—同一模型步骤中的工具调用调度方式。
ai.agent.modelSizeHintstring: "", "small", "medium", "large"否—可选模型尺寸提示;空字符串表示清除提示。
ai.agent.promptCacheRetentionstring: "in_memory", "24h"否—Provider Prompt Cache 保留策略。
ai.agent.steeringModestring: "one-at-a-time", "all"否—逐条处理 Steering 消息,或一次取出全部待处理消息。
ai.agent.followUpModestring: "one-at-a-time", "all"否—逐条处理 Follow-up 消息,或一次取出全部待处理消息。
ai.agent.outputSchemaboolean | string: "segments" | object否—最终输出默认在 IM 会话使用 segments:false 显式使用文本,true 或 segments 使用有序规范消息段,也可传入自定义 JSON Schema。隔离及非 IM 调用不应用 IM 预设。
ai.agent.scheduleobject否—无人值守 Schedule 执行策略。
ai.agent.schedule.securityobject否—Schedule 命令安全策略。
ai.agent.schedule.security.execPresetstring: "readonly", "network"否—Schedule Job 只能使用只读或网络预设。
ai.agent.schedule.security.allowedDomainsarray<string>否——
ai.agent.schedule.budgetobject否——
ai.agent.schedule.budget.maxTokensnumber | string否——
ai.agent.schedule.budget.maxToolCallsnumber | string否——
ai.agent.schedule.budget.timeoutMsnumber | string否——
ai.agent.execAllowlistarray<string>否—allowlist 模式下允许的命令(支持正则字符串,如 "^ls "、"^cat "),与 preset 合并
ai.agent.phaseTraceboolean | string否—观测主回合阶段日志(或通过 ZHIN_AGENT_PHASE_TRACE=1 开启)
ai.agent.modelHarnessobject否—按模型 / provider 模式覆盖 model harness
ai.agent.modelHarness.servicesobject否—Exact runtime Service id; native-model entries override that Service default.
ai.agent.modelHarness.services.<key>.defaultsobject否——
ai.agent.modelHarness.services.<key>.defaults.maxIterationsnumber | string否——
ai.agent.modelHarness.services.<key>.defaults.explorationBudgetnumber | string否—连续只读探索调用达到该次数时注入提示;0 关闭
ai.agent.modelHarness.services.<key>.defaults.explorationGuidanceboolean | string否—在系统提示中加入"先规划、限定目标文件"的探索纪律
ai.agent.modelHarness.services.<key>.defaults.iterationExtensionnumber | string否—每次有进展时延长的步数(覆盖 toolBudget.extendBy)
ai.agent.modelHarness.services.<key>.defaults.maxTotalIterationsnumber | string否—单段回合的硬步数上限(覆盖 toolBudget.maxTotalIterations)
ai.agent.modelHarness.services.<key>.defaults.emptyReplyRetriesnumber | string否—空回复(无文本且无工具调用)时额外重试次数;默认 0
ai.agent.modelHarness.services.<key>.defaults.requestTimeoutMsnumber | string否—单次模型请求超时(毫秒);0 关闭
ai.agent.modelHarness.services.<key>.modelsobject否——
ai.agent.modelHarness.services.<key>.models.<key>.maxIterationsnumber | string否——
ai.agent.modelHarness.services.<key>.models.<key>.explorationBudgetnumber | string否—连续只读探索调用达到该次数时注入提示;0 关闭
ai.agent.modelHarness.services.<key>.models.<key>.explorationGuidanceboolean | string否—在系统提示中加入"先规划、限定目标文件"的探索纪律
ai.agent.modelHarness.services.<key>.models.<key>.iterationExtensionnumber | string否—每次有进展时延长的步数(覆盖 toolBudget.extendBy)
ai.agent.modelHarness.services.<key>.models.<key>.maxTotalIterationsnumber | string否—单段回合的硬步数上限(覆盖 toolBudget.maxTotalIterations)
ai.agent.modelHarness.services.<key>.models.<key>.emptyReplyRetriesnumber | string否—空回复(无文本且无工具调用)时额外重试次数;默认 0
ai.agent.modelHarness.services.<key>.models.<key>.requestTimeoutMsnumber | string否—单次模型请求超时(毫秒);0 关闭
ai.agent.providerResilienceobject否—固定模型韧性:重试 / 退避 / 超时(见 ProviderResilienceConfig)
ai.agent.providerResilience.maxRetriesnumber | string否—Retries per model after the first attempt. Default 2. 0 disables retry.
ai.agent.providerResilience.baseDelayMsnumber | string否—First backoff delay in ms; doubles each retry. Default 1000.
ai.agent.providerResilience.maxDelayMsnumber | string否—Upper bound for one backoff delay in ms. Default 10000.
ai.agent.providerResilience.maxRetryAfterMsnumber | string否—A Retry-After longer than this stops retry. Default 30000.
ai.agent.providerResilience.requestTimeoutMsnumber | string否—Per-attempt timeout in ms (whole streamed completion). Default 120000. 0 disables.
ai.agent.providerResilience.firstResponseTimeoutMsnumber | string否—Per-attempt wait in ms for the provider's first response (response headers or the first stream event). Default 30000. 0 disables. A service that does not answer in time is not re-asked on the same model: the attempt fails as no_response.
ai.agent.providerResilience.emptyReplyRetriesnumber | string否—Extra attempts when the model returns neither text nor tool calls (or a tool call without a name). Default 0: the reply is passed through unchanged. Quirk presets (see model harness) raise this for models known to emit spurious empty replies.
ai.agent.deferredToolsobject否—工具 schema 按需加载
ai.agent.deferredTools.maxLoadedPerSessionnumber | string否——
ai.agent.deferredTools.discoverTopKnumber | string否——
ai.agent.deferredTools.alwaysLoadedToolsarray<string>否—额外常驻工具;在当前场景档(群聊、私聊、主人私聊)的常驻集合基础上追加
ai.agent.deferredTools.alwaysLoadedModestring否—extend(默认)追加到内置常驻集合;replace 完全替换
ai.agent.deferredTools.mcpServersobject否——
ai.agent.deferredTools.mcpServers.<key>.alwaysLoadedarray<string>否——
ai.agent.personastring否——
ai.agent.maxIterationsnumber | string否——
ai.agent.timeoutnumber | string否——
ai.agent.preExecTimeoutnumber | string否——
ai.agent.maxToolsnumber | string否——
ai.agent.contextTailMessageLimitnumber | string否——
ai.agent.rateLimitobject否——
ai.agent.rateLimit.maxRequestsPerMinutenumber | string否—每分钟最大请求数(默认 20)
ai.agent.rateLimit.cooldownSecondsnumber | string否—冷却时间(秒),超限后需等待(默认 10)
ai.agent.toneAwarenessboolean | string否——
ai.agent.contextTokensnumber | string否——
ai.agent.maxHistorySharenumber | string否——
ai.agent.compactionobject否——
ai.agent.compaction.enabledboolean | string否——
ai.agent.compaction.autoboolean | string否——
ai.agent.compaction.keepRecentTokensnumber | string否——
ai.agent.compaction.minKeepCountnumber | string否——
ai.agent.compaction.thresholdRationumber | string否—Share of the model context window (system prompt and tools included) at which auto-compaction runs. Default 0.7 (#730).
ai.agent.disabledToolsarray<string>否——
ai.agent.allowedToolsarray<string>否——
ai.agent.maxSubagentIterationsnumber | string否——
ai.agent.skillInstructionMaxCharsnumber | string否——
ai.agent.promptTraceboolean | string否——
ai.agent.promptTraceVerboseboolean | string否——
ai.agent.recordRequestBodiesboolean否——
ai.agent.promptCacheboolean | string否——
ai.agent.promptCacheKeyPrefixstring否——
ai.agent.gitStatusboolean | string否—§1 Runtime 注入单行 git 状态摘要(非 git 仓库自动跳过)
ai.agent.contextPathsarray<string>否—追加的上下文文件路径(支持 ~ 与相对路径;默认另加载 ~/.config/zhin/AGENTS.md 等全局路径)
ai.agent.systemPromptMaxCharsnumber | string否—系统提示词总字符上限;按 retention/order 让出预算,required 内容放不下则失败。
ai.agent.thinkingPreviewboolean | string否—Activity feedback 展示 LLM 实际 thinking 内容(截断),而非静态 "思考中..."。
ai.agent.thinkingPreviewMaxLengthnumber | string否—thinkingPreview 展示的最大字符数。
ai.enabledboolean | string否——
ai.agentsobject | null否—Agent authority and display metadata. Model selection belongs to runtime Profile purposes.
ai.agents.<key>.mcpServersarray | null否——
ai.agents.<key>.nicknamestring否—Fallback nickname when the Endpoint does not provide account profile data.
ai.sessionsobject | null否——
ai.sessions.maxHistorynumber | string否—最大历史消息数(数据库模式默认200,内存模式默认100)
ai.sessions.expireMsnumber | string否—会话过期时间(毫秒,数据库模式默认7天,内存模式默认24小时)
ai.sessions.useDatabaseboolean | string否—是否使用数据库持久化存储(默认 true)
ai.sessions.coldStartMaxMessagesnumber | string否—无摘要时冷启动最多条数(默认 50)
ai.sessions.coldStartMaxAgeMsnumber | string否—冷启动时间窗(毫秒,默认 24h)
ai.sessions.sessionIdleArchiveMsnumber | string否—空闲后自动归档 active 会话(毫秒,默认 7 天;0=关闭)
ai.contextobject | null否——
ai.context.enabledboolean | string否—是否启用消息记录(默认 true)
ai.context.maxRecentMessagesnumber | string否—历史消息条数上限(默认 100);与 historyTokens 取先到者
ai.context.historyTokensnumber | string | object否—每轮发给模型的历史 token 预算:数字对所有场景生效,也可写 { group, private, masterPrivate };默认群聊 8000、普通私聊 12000、主人私聊 24000;0 = 不按 token 限制
ai.context.historyTokens.groupnumber | string否—群聊 / 频道(默认 8000)
ai.context.historyTokens.privatenumber | string否—普通私聊(默认 12000)
ai.context.historyTokens.masterPrivatenumber | string否—主人私聊(默认 24000)
ai.context.summaryThresholdnumber | string否—触发总结的消息数量阈值(默认 50)
ai.context.keepAfterSummarynumber | string否—总结后保留的消息数量(默认 10)
ai.context.maxContextTokensnumber | string否—上下文最大 token 估算(默认 4000)
ai.context.summaryPromptstring否—自定义总结提示词
ai.multimodalobject | null否—入站/出站多模态(base64 契约;平台 adapter 负责编解码与发送)
ai.multimodal.enabledboolean | string否——
ai.multimodal.maxFileBytesnumber | string否——
ai.multimodal.inboundDirstring否——
ai.multimodal.outboundDirstring否——
ai.multimodal.imageobject否——
ai.multimodal.image.maxDimensionnumber | string否——
ai.multimodal.image.preferNativeVisionboolean | string否——
ai.multimodal.audioobject否——
ai.multimodal.audio.strategystring否——
ai.multimodal.videoobject否——
ai.multimodal.video.strategystring否——
ai.multimodal.video.mcpServerstring否——
ai.multimodal.video.maxFramesnumber | string否——
ai.multimodal.outboundobject否——
ai.multimodal.outbound.splitMessagesstring否——
ai.multimodal.perceptionobject | null否—Perception pre-pass: when the turn's model cannot take an image / video / PDF, this media-capable model describes it and the description is injected as untrusted text ([图片描述] …). Unset = off (placeholders as before).
ai.multimodal.perception.kindsarray<string>否—Kinds to describe. Default ['image']; file covers PDFs only.
ai.multimodal.perception.maxCharsnumber | string否—Description length cap in characters. Default 800.
ai.multimodal.perception.timeoutMsnumber | string否—Per-attempt timeout in ms. Default 30000.
ai.multimodal.perception.maxItemsPerTurnnumber | string否—Media described per turn; the rest keep the placeholder. Default 4.
ai.memoryobject | null否—三层 Markdown 文件记忆(global / platform / session)。 默认启用;设 enabled: false 可关闭注入。
ai.memory.enabledboolean | string否——
ai.memory.semanticobject | null否—L4 语义记忆:memory_entries 表 + memory_search/upsert 工具
ai.memory.semantic.enabledboolean | string否——
ai.memory.semantic.autoConsolidateboolean | string否——
ai.memory.semantic.recallobject | null否—Per-turn recall (#734): BM25 top-k entries relevant to the current message are added to the turn context. Default on when semantic memory is enabled; topK 5, maxTokens 400.
ai.memory.semantic.recall.enabledboolean | string否——
ai.memory.semantic.recall.topKnumber | string | null否——
ai.memory.semantic.recall.maxTokensnumber | string | null否——
ai.memory.budgetsobject否——
ai.memory.budgets.sessionnumber | string否——
ai.memory.budgets.platformnumber | string否——
ai.memory.budgets.globalnumber | string否——
ai.memory.budgets.dailynumber | string否——
ai.knowledgeobject否—本地知识库(knowledge_search 工具数据源)。 放置 .md / .txt 文件到 baseDir,Agent 可通过 knowledge_search 工具检索。
ai.knowledge.baseDirstring否—项目根目录内的知识库目录路径。配置该段时必须显式声明。
ai.githubMcpobject否—PAT for adapter-github auto-registered server-github MCP (overrides env when set).
ai.githubMcp.tokenstring否——
ai.githubMcp.enabledboolean | string否—为 true 时注册 server-github MCP(PAT,人身份);默认 false,Bot 写操作用 adapter github_* 工具
ai.mcpServersarray | null否—External MCP servers for the Agent MCP client (global, all bots). Listed servers are exposed to ZhinAgent tool pool when connected.
ai.accessobject | null否—AI 访问控制(平台 AIGC 合规;Endpoint 可用 aiAccess 覆盖)
ai.access.modestring否—open | closed | whitelist,默认 open
ai.access.usersarray<string>否—允许触发 AI 的 sender.id
ai.access.groupsarray<string>否—允许触发 AI 的 group/channel id
ai.access.denyMessagestring否—私聊拒绝时的回复文案
ai.triggerobject | null否—AI 触发配置
ai.trigger.enabledboolean | string否—是否启用(默认 true)
ai.trigger.prefixesarray<string>否—触发前缀列表(默认 ['#', 'AI:'])
ai.trigger.respondToAtboolean | string否—是否响应 @ 机器人(默认 true)
ai.trigger.respondToPrivateboolean | string否—是否响应私聊(默认 true)
ai.trigger.keywordsarray<string>否—触发关键词(可选)
ai.trigger.ignorePrefixesarray<string>否—忽略的前缀(命令前缀,避免与命令冲突,默认 ['/', '!', '!'])
ai.trigger.timeoutnumber | string否—超时时间(毫秒,默认 60000)
ai.trigger.thinkingMessagestring否—思考中提示语(可选,设置后会在处理前发送)
ai.trigger.errorTemplatestring否—入口层错误提示模板,{error} 为错误信息(可选;不配置时用聊天口吻说"刚卡了一下",主人额外看到原因)
ai.trigger.ambientobject否—群聊旁听:群里没人叫机器人时,由判断模型决定是否接话。被 @、引用和私聊不经过这里,总会交给 Agent(Agent 也可以选择不回复)。
ai.trigger.ambient.conversationsarray<string>否—开启旁听的群,格式 platform:groupId;* 表示所有群。默认为空(关闭)
ai.trigger.ambient.quietMsnumber | string否—群安静多久后才判断一次(毫秒,默认 4000)
ai.trigger.ambient.cooldownMsnumber | string否—两次主动插话之间的最短间隔(毫秒,默认 120000);对话进行中不受限制
ai.trigger.ambient.maxPerHournumber | string否—每个群每小时最多主动插话次数(默认 3);对话进行中不计入
ai.trigger.ambient.conversationWindowMsnumber | string否—机器人说话后,这段时间内算作对话进行中:群友接它的话只由判断模型决定,不受冷却和每小时次数限制(毫秒,默认 180000)
ai.trigger.ambient.judgeIntervalMsnumber | string否—没在对话时,同一个群至少隔这么久才判断一次(毫秒,默认 30000),节省判断模型的额度;窗口内的消息顺延到窗口结束再判,不会丢
ai.trigger.ambient.minConfidencenumber | string否—判断模型置信度门槛 0..1(默认 0.7)
ai.trigger.ambient.modestring: "active", "shadow"否—shadow 只记录判断结果、不回复(默认 active)
ai.trigger.sceneEventsobject否—状态感知:禁言/解禁、入群申请、成员进出、公告变更、戳 Bot 等高优先社交事件独立唤醒一次回合(不必等下一条人话);表情回应、名片/头衔变更等低优先事件不单独唤醒,只在下一轮 [Scene events] 摘要里出现。Bot 不能发言时只更新会话画像,不调用模型。
ai.trigger.sceneEvents.conversationsarray<string>否—允许被社交事件唤醒的群/频道,格式 platform:sceneId;* 表示所有群。缺省沿用 ai.trigger.ambient.conversations(都没配则不唤醒)
ai.trigger.sceneEvents.coalesceMsnumber | string否—同一场景的合并窗口(毫秒,限定 3000~5000,默认 4000)
ai.trigger.sceneEvents.minIntervalMsnumber | string否—同一场景两次唤醒的最短间隔(毫秒,默认 15000);未到时间的批次顺延,不丢
ai.usageobject | null否—结构化用量存储(SQLite、MySQL、PostgreSQL);独立于日志级别,不保存正文或工具参数。
ai.usage.retentionDaysinteger | string否30用量明细保留天数,正整数,默认 30 天;按回合结束时间清理,子调用与所属回合一起删除。
ai.auditobject | null否—决策审计 ai_decision_events(ADR 0036):每次进不进模型、说不说话、调不调工具都记一行,在 Console「机器人状态 → 决策回放」查看与导出;不保存正文、提示词或密钥。
ai.audit.retentionDaysinteger | string否14决策审计保留天数,正整数,默认 14 天;启动时与之后每小时按事件时间清理过期行。
ai.imageStorageobject否—Optional public R2 storage for generated images. Bucket access and lifecycle are managed by the operator.
ai.imageStorage.accountIdstring是——
ai.imageStorage.bucketstring是——
ai.imageStorage.accessKeyIdstring是——
ai.imageStorage.secretAccessKeystring是——
ai.imageStorage.publicBaseUrlstring是—Public HTTPS base URL; not the S3 upload endpoint.
ai.imageStorage.prefixstring是—Object directory ending in /; must be covered by the bucket lifecycle.
ai.personalPrincipalsobject否—Administrator mapping from authenticated Console principal ids to exact IM owners; never inferred from client input.
menuKeywordstring | false否—内置指令菜单关键词;默认 菜单,false 或空字符串关闭菜单。
commandSuggestionboolean | object否—未命中但与已注册指令名/别名高度相似的消息(私聊、@机器人或带指令前缀)直接回复「没有这个指令,你是不是想用:…」,不交给 AI;false 关闭。
menuStyleobject否—HTML 渲染可用时的指令菜单外观;始终保留纯文本降级。
menuStyle.titlestring否—菜单标题。
menuStyle.subtitlestring否—菜单副标题。
menuStyle.accentColorstring否—六位十六进制强调色;无效值使用渲染器默认值。
menuStyle.backgroundImagestring否—HTTP(S) 图片或 PNG/JPEG/WebP data URL;不支持的值使用渲染器默认值。
mcpobject否—把 Bot 工具公开为 MCP Server。
mcp.enabledboolean | string否——
mcp.pathstring | null否——
mcp.tokenstring | null否——
mcp.allowUnauthenticatedLocalhostboolean | string否——
a2aobject否—A2A Agent Card、远程执行与跨进程 Mailbox 传输。
a2a.enabledboolean | string否——
a2a.pathstring | null否——
a2a.tokenstring | null否——
a2a.publicUrlstring | null否——
a2a.mailboxobject | null否—跨进程 A2A Mailbox 传输(携带签名 Mail、Authority 与 Budget,ADR 0048 §3.6)。
a2a.mailbox.enabledboolean | string否——
a2a.mailbox.pathstring否—Inbound HTTP route path (defaults to /a2a/mailbox).
a2a.mailbox.secretstring否——
a2a.mailbox.maxBodyBytesnumber | string否——
a2a.mailbox.peersarray<object>否——
a2a.mailbox.peers[].actorstring是——
a2a.mailbox.peers[].urlstring是——
a2a.mailbox.peers[].tokenstring否——
a2a.mailbox.peers[].secretstring否——
a2a.mailbox.peers[].timeoutMsnumber | string否——
speechobject否—语音识别与语音合成 Host。
speech.sttobject | null否——
speech.stt.enabledboolean | string否——
speech.stt.providerstring否——
speech.stt.modelstring否——
speech.stt.hoststring否——
speech.stt.apiKeystring否——
speech.ttsobject | null否——
speech.tts.enabledboolean | string否——
speech.tts.providerstring否——
speech.tts.voicestring否——
speech.tts.modelstring否——
speech.tts.hoststring否——
speech.tts.apiKeystring否——
speech.tts.ratestring否—edge-tts
speech.tts.pitchstring否——
speech.tts.edgeTtsCommandstring否——
speech.tts.regionstring否—azure
speech.tts.subscriptionKeystring否——
speech.tts.baseUrlstring否—custom OpenAI-compatible
speech.tts.headersobject否——
speech.tts.speednumber | string否——
htmlRendererobject否—基于 Shotium 的 HTML/图片渲染参数。
htmlRenderer.widthnumber否—默认排版宽度(CSS 像素)。
htmlRenderer.defaultWidthnumber否—width 的旧别名。
htmlRenderer.viewportobject否—Shotium 渲染默认视窗。
htmlRenderer.viewport.widthnumber否—视窗宽度(CSS 像素)。
htmlRenderer.viewport.heightnumber否—视窗高度(CSS 像素)。
htmlRenderer.backgroundColorstring否—HTML 片段背景色。
htmlRenderer.defaultBackgroundColorstring否—backgroundColor 的旧别名。
htmlRenderer.scalenumber否—设备像素比。
htmlRenderer.typestring: "png", "jpeg", "webp"否—默认位图输出格式。
htmlRenderer.qualitynumber否—jpeg/webp 输出质量。
htmlRenderer.timeoutnumber否—导航超时(毫秒)。
htmlRenderer.waitUntilstring: "load", "networkidle"否—导航等待策略。
htmlRenderer.fontFamilystring否—HTML 片段默认字体栈。
htmlRenderer.maxImageHeightnumber否—超过该高度时切分 PNG;0 表示不切分。
htmlRenderer.sliceCompressionnumber否—PNG 切片时使用的压缩级别。
htmlRenderer.allowFileAccessboolean否—允许访问本地文件子资源。
htmlRenderer.takeOverHtmlSegmentsboolean否—接管 html/markdown 富媒体段转图。
htmlRenderer.cacheDirstring否—HTTP 缓存目录;off 表示关闭。
htmlRenderer.cacheMaxBytesnumber否—HTTP 缓存最大字节数。
htmlRenderer.userAgentstring否—自定义 User-Agent。
htmlRenderer.idleTimeoutMsnumber否—daemon 空闲退出超时(毫秒)。
htmlRenderer.logStatsboolean否—记录渲染耗时统计。
htmlRenderer.modestring: "inprocess", "daemon"否—Shotium 在进程内运行还是以 daemon 运行。
assistantobject否—调度任务、事件入口和失败通知。
assistant.enabledboolean | string否—启用统一 JobStore(默认 false,Stable 行为不变)
assistant.defaultsobject | null否——
assistant.defaults.notifyobject | object | object | object | null否—未显式指定 notify 时的默认投递目标(M3)
assistant.defaults.notifyOnFailureboolean | string否—Job 失败时是否通知(默认 false)
assistant.profileobject | null否——
assistant.profile.enabledboolean | string否—启用 Profile 覆盖 Bootstrap(默认 false)
assistant.profile.filestring | null否—相对项目根路径,默认 assistant.profile.yml
assistant.homeobject | null否——
assistant.home.enabledboolean | string否——
assistant.home.restUrlstring否—HA REST 基址,如 http://homeassistant.local:8123
assistant.home.restTokenstring否—HA 长期访问令牌
assistant.home.mcpServerstring否—可选:ai.mcpServers 中的名称(REST 为主,MCP 仅校验)
assistant.home.aliasesobject | null否—中文/友好名 → entity_id
assistant.home.policyobject | null否——
assistant.home.policy.requireMasterboolean | string否—仅 master 可调用 home_*(默认 true)
assistant.home.policy.confirmServicesarray | null否—写操作需 Owner 审批的 HA domain(默认 lock、alarm_control_panel)
assistant.home.policy.allowedServiceDomainsarray | null否—home_call_service 允许的 domain 白名单(默认 light/climate/scene/cover/script)
assistant.home.watcharray | null否—要通过 HA WebSocket 订阅状态变化的设备别名列表
assistant.home.debounceMsnumber | string | null否—同实体状态变化推送的防抖间隔(毫秒,默认 5000)
assistant.eventsobject | null否——
assistant.events.enabledboolean | string否—启用 POST /api/assistant/events(需 assistant.enabled)
assistant.events.tokenstring否—可选专用 Bearer;未设时复用 http.token(路由仍在 /api 下受全局鉴权保护)。
assistant.events.allowedSourcesarray<string>否—允许的来源白名单;空数组表示不限制
assistant.events.rateLimitPerMinutenumber | string | null否—每来源每分钟最大请求数(默认 60)
log_levelstring | number否—Runtime 日志级别。
pluginobject否—Root Plugin 配置;组合时由项目 Schema 替换。
localestring: "zh-CN", "en"否—未设置个人偏好时使用的语言;未配置时使用简体中文,语言与时区独立。
featuresobject否—插件配置块之外的功能配置(ADR 0055):群内自助。修改后需重启。
features.selfServiceobject否—聊天角色 admin 在聊天中使用的 功能 / feature 与 角色 / role 命令(ADR 0055 / 0056),默认关闭。平台群主 / 管理员不是 zhin 角色,需要显式授予 admin。
features.selfService.enabledboolean否false注册群内功能自助与角色命令。

独立 AI 导入提案 ​

ai.plan.yml 仅供显式预览、应用和导出,不是启动配置,不会自动加载或覆盖运行时图。

packages/im/ai/provider-plan.schema.json

路径类型必填默认值说明
version1是——
servicesobject否——
services.<key>.driverstring | object是——
services.<key>.labelstring否——
services.<key>.optionsobject否——
services.<key>.modelsobject否——
services.<key>.models.<key>.idstring是——
services.<key>.models.<key>.kindsarray<string: "language", "decision", "image">是——
services.<key>.models.<key>.protocolstring是——
services.<key>.models.<key>.inputarray<string: "text", "image", "audio", "video", "file">否——
services.<key>.models.<key>.streamingboolean否——
services.<key>.models.<key>.toolCallingboolean否——
services.<key>.models.<key>.thinkingboolean否——
services.<key>.models.<key>.contextWindowinteger否——
services.<key>.models.<key>.maxOutputTokensinteger否——
accountsobject否——
accounts.<key>.servicestring是——
accounts.<key>.labelstring否——
accounts.<key>.authobject | object | object是——
profilesobject否——
profiles.<key>.accountstring是——
profiles.<key>.modelstring是——
profiles.<key>.labelstring否——
profiles.<key>.parametersobject否——
purposesobject否——
purposes.chatstring | object | null否——
purposes.summarystring | object | null否——
purposes.ambientstring | object | null否——
purposes.imagestring | object | null否——
purposes.perceptionobject | null否——
purposes.decisionsobject否——
purposes.decisions.skillsobject | null否——
purposes.decisions.toolsobject | null否——
purposes.decisions.memoryobject | null否——
purposes.decisions.agentsobject | null否——
purposes.decisions.approvalobject | null否——
purposes.decisions.ambientobject | null否——
purposes.agentsobject否——
purposes.adaptersobject否——
purposes.endpointsobject否——
purposes.scenesobject否——
removeobject否——
remove.servicesarray<string>否——
remove.accountsarray<string>否——
remove.profilesarray<string>否——

插件实例字段 ​

以下字段通过 Runtime 的统一读取器从 trusted 插件的 config: Schema.object(...) 声明或 schema.json 生成;isolated 插件只能使用 schema.json。顶层 <name> 是默认 instanceKey;plugins.<name> 仅保存包引用。

bilibili ​

plugins/adapters/bilibili/schema.json

路径类型必填默认值说明
bilibili.apiBaseUrlstring否"https://api.bilibili.com"—
bilibili.pollIntervalSecnumber否60轮询间隔(秒),最小 60,实际会加 0–20% 随机抖动
bilibili.sendModestring: "review", "off"否"review"出站模式:review=AI 回复只进草稿队列,master 用 bili-draft send <id> 审批后才发出(默认);off=禁止出站。不提供自动直发
bilibili.minSendIntervalSecnumber否30审批后两次真实发送的最小间隔(秒),最小 10;不足时拒绝发送,不排队
bilibili.notificationsarray<string: "reply", "at">否[]额外轮询的通知:reply=回复我的,at=@我的(需要 Cookie;收视频评论,配置了 dynamics / articles 时也收动态 / 专栏评论)。默认不开
bilibili.notificationScopestring: "whitelist", "all"否"whitelist"通知入站范围:whitelist=只收 videos / dynamics / articles 白名单下的通知(默认);all=所有视频评论通知,以及配置了 dynamics / articles 时对应种类的全部评论通知
bilibili.dataDirstring否"data/bilibili"本地数据目录:待审草稿与扫码登录凭据存在 <dataDir>/<endpoint id>/ 下(相对进程工作目录),重启不丢。不要放进仓库
bilibili.notifyobject否—有新草稿或登录失效时,主动发消息提醒到这个聊天会话(通常是你和机器人的私聊)。不填则只在 Console「评论审批」页和日志里看到
bilibili.notify.adapterstring是—适配器名,如 icqq、telegram
bilibili.notify.endpointstring是—该适配器的 endpoint id
bilibili.notify.kindstring: "private", "group", "channel"否"private"会话类型
bilibili.notify.idstring | number是—会话 id:私聊填你的账号,群聊填群号
bilibili.videosarray<string | number>否—白名单视频:BV 号或 av 号。只轮询这些视频的评论,不做全站搜索
bilibili.dynamicsarray<string>否—白名单动态:动态 id(t.bilibili.com/<id> 或 bilibili.com/opus/<id> 里的数字,请写成字符串)。启动时经动态详情解析出评论区(图文动态 type=11 / 文字动态 type=17),无法解析的动态会跳过。不做全站搜索
bilibili.articlesarray<string | number>否—白名单专栏:cv 号(cv123 或 123),评论区 type=12。不做全站搜索
bilibili.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
bilibili.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
bilibili.endpoints[].idstring是—Endpoint 名称(本地标识,不是 B 站账号)
bilibili.endpoints[].sessdatastring否—Cookie SESSDATA(以你的账号身份操作;请用 ${BILIBILI_SESSDATA} 注入,切勿写入仓库)
bilibili.endpoints[].biliJctstring否—Cookie bili_jct(csrf token;请用 ${BILIBILI_BILI_JCT} 注入)
bilibili.endpoints[].videosarray<string | number>否—白名单视频:BV 号或 av 号。只轮询这些视频的评论,不做全站搜索
bilibili.endpoints[].dynamicsarray<string>否—白名单动态:动态 id(t.bilibili.com/<id> 或 bilibili.com/opus/<id> 里的数字,请写成字符串)。启动时经动态详情解析出评论区(图文动态 type=11 / 文字动态 type=17),无法解析的动态会跳过。不做全站搜索
bilibili.endpoints[].articlesarray<string | number>否—白名单专栏:cv 号(cv123 或 123),评论区 type=12。不做全站搜索
bilibili.endpoints[].pollIntervalSecnumber否60轮询间隔(秒),最小 60,实际会加 0–20% 随机抖动
bilibili.endpoints[].sendModestring: "review", "off"否"review"出站模式:review=AI 回复只进草稿队列,master 用 bili-draft send <id> 审批后才发出(默认);off=禁止出站。不提供自动直发
bilibili.endpoints[].minSendIntervalSecnumber否30审批后两次真实发送的最小间隔(秒),最小 10;不足时拒绝发送,不排队
bilibili.endpoints[].notificationsarray<string: "reply", "at">否[]额外轮询的通知:reply=回复我的,at=@我的(需要 Cookie;收视频评论,配置了 dynamics / articles 时也收动态 / 专栏评论)。默认不开
bilibili.endpoints[].notificationScopestring: "whitelist", "all"否"whitelist"通知入站范围:whitelist=只收 videos / dynamics / articles 白名单下的通知(默认);all=所有视频评论通知,以及配置了 dynamics / articles 时对应种类的全部评论通知
bilibili.endpoints[].dataDirstring否"data/bilibili"本地数据目录:待审草稿与扫码登录凭据存在 <dataDir>/<endpoint id>/ 下(相对进程工作目录),重启不丢。不要放进仓库
bilibili.endpoints[].notifyobject否—有新草稿或登录失效时,主动发消息提醒到这个聊天会话(通常是你和机器人的私聊)。不填则只在 Console「评论审批」页和日志里看到
bilibili.endpoints[].notify.adapterstring是—适配器名,如 icqq、telegram
bilibili.endpoints[].notify.endpointstring是—该适配器的 endpoint id
bilibili.endpoints[].notify.kindstring: "private", "group", "channel"否"private"会话类型
bilibili.endpoints[].notify.idstring | number是—会话 id:私聊填你的账号,群聊填群号
bilibili.endpoints[].apiBaseUrlstring否"https://api.bilibili.com"—
bilibili.endpoints[].commandPrefixstring否——
bilibili.endpoints[].nicknamestring | null否—账号昵称兜底
bilibili.endpoints[].profileobject否—账号资料兜底
bilibili.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
bilibili.endpoints[].profile.ageinteger | null否——
bilibili.endpoints[].profile.birthdaystring | null否——
bilibili.endpoints[].profile.signaturestring | null否——
bilibili.endpoints[].profile.avatarstring | null否——
bilibili.endpoints[].profile.interestsarray | null否——
bilibili.endpoints[].profile.biostring | null否——
bilibili.nicknamestring | null否—账号昵称兜底
bilibili.profileobject否—账号资料兜底
bilibili.profile.genderstring | null: "male", "female", "other", "unknown", null否——
bilibili.profile.ageinteger | null否——
bilibili.profile.birthdaystring | null否——
bilibili.profile.signaturestring | null否——
bilibili.profile.avatarstring | null否——
bilibili.profile.interestsarray | null否——
bilibili.profile.biostring | null否——

bilibili-live ​

plugins/adapters/bilibili-live/schema.json

路径类型必填默认值说明
bilibili-live.roomIdstring | number否—直播间号(短号或长号都可以);只填你自己的直播间
bilibili-live.sendModestring: "direct", "off"否"direct"出站模式:direct=回合结束直接发弹幕(默认,需登录);off=只听不说
bilibili-live.maxLengthnumber否20单条弹幕最多字符数(默认 20,直播等级高的账号可调大)
bilibili-live.maxChunksnumber否2一次回复最多拆成几条弹幕(默认 2),放不下的截断
bilibili-live.minSendIntervalSecnumber否5两次回复的最小间隔(秒),最小 2;不足时拒绝发送,不排队
bilibili-live.apiBaseUrlstring否"https://api.bilibili.com"—
bilibili-live.liveApiBaseUrlstring否"https://api.live.bilibili.com"—
bilibili-live.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
bilibili-live.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
bilibili-live.endpoints[].idstring是—Endpoint 名称(本地标识,不是 B 站账号)
bilibili-live.endpoints[].sessdatastring否—Cookie SESSDATA(以你的账号身份发弹幕;请用 ${BILIBILI_SESSDATA} 注入,切勿写入仓库)。不填则匿名只读
bilibili-live.endpoints[].biliJctstring否—Cookie bili_jct(csrf token,发弹幕需要;请用 ${BILIBILI_BILI_JCT} 注入)
bilibili-live.endpoints[].buvid3string否—Cookie buvid3(可选;不填时启动时向平台申请)
bilibili-live.endpoints[].roomIdstring | number否—直播间号(短号或长号都可以);只填你自己的直播间
bilibili-live.endpoints[].sendModestring: "direct", "off"否"direct"出站模式:direct=回合结束直接发弹幕(默认,需登录);off=只听不说
bilibili-live.endpoints[].maxLengthnumber否20单条弹幕最多字符数(默认 20,直播等级高的账号可调大)
bilibili-live.endpoints[].maxChunksnumber否2一次回复最多拆成几条弹幕(默认 2),放不下的截断
bilibili-live.endpoints[].minSendIntervalSecnumber否5两次回复的最小间隔(秒),最小 2;不足时拒绝发送,不排队
bilibili-live.endpoints[].apiBaseUrlstring否"https://api.bilibili.com"—
bilibili-live.endpoints[].liveApiBaseUrlstring否"https://api.live.bilibili.com"—
bilibili-live.endpoints[].commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
bilibili-live.endpoints[].nicknamestring | null否—账号昵称兜底
bilibili-live.endpoints[].profileobject否—账号资料兜底
bilibili-live.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
bilibili-live.endpoints[].profile.ageinteger | null否——
bilibili-live.endpoints[].profile.birthdaystring | null否——
bilibili-live.endpoints[].profile.signaturestring | null否——
bilibili-live.endpoints[].profile.avatarstring | null否——
bilibili-live.endpoints[].profile.interestsarray | null否——
bilibili-live.endpoints[].profile.biostring | null否——
bilibili-live.nicknamestring | null否—账号昵称兜底
bilibili-live.profileobject否—账号资料兜底
bilibili-live.profile.genderstring | null: "male", "female", "other", "unknown", null否——
bilibili-live.profile.ageinteger | null否——
bilibili-live.profile.birthdaystring | null否——
bilibili-live.profile.signaturestring | null否——
bilibili-live.profile.avatarstring | null否——
bilibili-live.profile.interestsarray | null否——
bilibili-live.profile.biostring | null否——

dingtalk ​

plugins/adapters/dingtalk/schema.json

路径类型必填默认值说明
dingtalk.apiBaseUrlstring否"https://oapi.dingtalk.com"—
dingtalk.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
dingtalk.endpoints[].appKeystring是—Dingtalk app key
dingtalk.endpoints[].appSecretstring是—Dingtalk app secret
dingtalk.endpoints[].webhookPathstring否—Dingtalk webhook path
dingtalk.endpoints[].robotCodestring否—Dingtalk robot code
dingtalk.endpoints[].apiBaseUrlstring否——
dingtalk.endpoints[].commandPrefixstring否——
dingtalk.endpoints[].idstring是—Dingtalk bot name
dingtalk.endpoints[].modestring: "webhook", "stream"否"webhook"—
dingtalk.endpoints[].cardTemplateIdstring否—Stream interactive card template ID
dingtalk.endpoints[].cardButtonCountinteger否2Fixed button count in the card template
dingtalk.endpoints[].streamProxyobject否—故障验收专用:TCP固定127.0.0.1,保留真实WSS TLS身份
dingtalk.endpoints[].streamProxy.portinteger是——
dingtalk.endpoints[].streamProxy.serverNamestring是——
dingtalk.endpoints[].nicknamestring | null否—账号昵称兜底
dingtalk.endpoints[].profileobject否—账号资料兜底
dingtalk.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
dingtalk.endpoints[].profile.ageinteger | null否——
dingtalk.endpoints[].profile.birthdaystring | null否——
dingtalk.endpoints[].profile.signaturestring | null否——
dingtalk.endpoints[].profile.avatarstring | null否——
dingtalk.endpoints[].profile.interestsarray | null否——
dingtalk.endpoints[].profile.biostring | null否——
dingtalk.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
dingtalk.modestring: "webhook", "stream"否"webhook"—
dingtalk.cardTemplateIdstring否—Stream interactive card template ID
dingtalk.cardButtonCountinteger否2Fixed button count in the card template
dingtalk.nicknamestring | null否—账号昵称兜底
dingtalk.profileobject否—账号资料兜底
dingtalk.profile.genderstring | null: "male", "female", "other", "unknown", null否——
dingtalk.profile.ageinteger | null否——
dingtalk.profile.birthdaystring | null否——
dingtalk.profile.signaturestring | null否——
dingtalk.profile.avatarstring | null否——
dingtalk.profile.interestsarray | null否——
dingtalk.profile.biostring | null否——

discord ​

plugins/adapters/discord/schema.json

路径类型必填默认值说明
discord.connectionstring: "gateway", "interactions"否"gateway"Gateway WebSocket (default). interactions uses httpHostToken POST + Ed25519 verify.
discord.intentsarray<number>否——
discord.enableSlashCommandsboolean否false—
discord.globalCommandsboolean否false—
discord.defaultActivityobject否——
discord.defaultActivity.namestring是——
discord.defaultActivity.typestring: "PLAYING", "STREAMING", "LISTENING", "WATCHING", "COMPETING"是——
discord.defaultActivity.urlstring否——
discord.slashCommandsarray<object>否——
discord.applicationIdstring否—Required when connection is interactions.
discord.publicKeystring否—Required when connection is interactions (hex Ed25519 public key).
discord.interactionsPathstring否"/discord/interactions"POST path on httpHostToken when connection is interactions.
discord.endpointsarray<object>是—多账号:每项定义一个 endpoint,id/token 必填,其余字段覆盖实例默认值
discord.endpoints[].tokenstring是—Discord bot token
discord.endpoints[].connectionstring: "gateway", "interactions"否——
discord.endpoints[].intentsarray<number>否——
discord.endpoints[].enableSlashCommandsboolean否——
discord.endpoints[].globalCommandsboolean否——
discord.endpoints[].defaultActivityobject否——
discord.endpoints[].defaultActivity.namestring是——
discord.endpoints[].defaultActivity.typestring: "PLAYING", "STREAMING", "LISTENING", "WATCHING", "COMPETING"是——
discord.endpoints[].defaultActivity.urlstring否——
discord.endpoints[].slashCommandsarray<object>否——
discord.endpoints[].applicationIdstring否——
discord.endpoints[].publicKeystring否——
discord.endpoints[].interactionsPathstring否——
discord.endpoints[].commandPrefixstring否——
discord.endpoints[].idstring是—Discord bot name
discord.endpoints[].gatewayFaultProxyUrlstring否—Isolated acceptance only: loopback Gateway fault proxy; REST unchanged.
discord.endpoints[].restApiProxyobject否—Gateway测试实例REST专用故障代理:discord.com:443固定loopback TCP,保留SNI/证书校验,独立于Gateway代理
discord.endpoints[].restApiProxy.portinteger是——
discord.endpoints[].nicknamestring | null否—账号昵称兜底
discord.endpoints[].profileobject否—账号资料兜底
discord.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
discord.endpoints[].profile.ageinteger | null否——
discord.endpoints[].profile.birthdaystring | null否——
discord.endpoints[].profile.signaturestring | null否——
discord.endpoints[].profile.avatarstring | null否——
discord.endpoints[].profile.interestsarray | null否——
discord.endpoints[].profile.biostring | null否——
discord.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
discord.gatewayFaultProxyUrlstring否—Isolated acceptance only: loopback Gateway fault proxy; REST unchanged.
discord.nicknamestring | null否—账号昵称兜底
discord.profileobject否—账号资料兜底
discord.profile.genderstring | null: "male", "female", "other", "unknown", null否——
discord.profile.ageinteger | null否——
discord.profile.birthdaystring | null否——
discord.profile.signaturestring | null否——
discord.profile.avatarstring | null否——
discord.profile.interestsarray | null否——
discord.profile.biostring | null否——

douyin-live ​

plugins/adapters/douyin-live/schema.json

路径类型必填默认值说明
douyin-live.sendModestring: "off", "direct"否"off"出站模式:off=只听不说(默认);direct=尚未实现,发送返回 not_implemented
douyin-live.maxLengthnumber否50单条弹幕最多字符数(默认 50,为后续 direct 发送预留)
douyin-live.maxChunksnumber否2一次回复最多拆成几条弹幕(默认 2)
douyin-live.minSendIntervalSecnumber否5两次回复的最小间隔(秒),最小 2
douyin-live.signerUrlstring否—可选:外部签名服务(GET ?stub=<X-MS-STUB> 返回 signature)。本包不内置平台签名脚本;不填时不带签名连接,平台可能拒绝
douyin-live.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
douyin-live.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
douyin-live.endpoints[].idstring是—Endpoint 名称(本地标识,不是抖音账号)
douyin-live.endpoints[].cookiestring否—浏览器 Cookie 整串(请用 ${DOUYIN_LIVE_COOKIE} 注入,切勿写入仓库)。不填时启动时申请游客 ttwid
douyin-live.endpoints[].roomIdstring | integer是—直播间 web_rid(live.douyin.com/ 后面的数字);只填你自己的直播间
douyin-live.endpoints[].sendModestring: "off", "direct"否"off"出站模式:off=只听不说(默认);direct=尚未实现,发送返回 not_implemented
douyin-live.endpoints[].maxLengthnumber否50单条弹幕最多字符数(默认 50,为后续 direct 发送预留)
douyin-live.endpoints[].maxChunksnumber否2一次回复最多拆成几条弹幕(默认 2)
douyin-live.endpoints[].minSendIntervalSecnumber否5两次回复的最小间隔(秒),最小 2
douyin-live.endpoints[].signerUrlstring否—可选:外部签名服务(GET ?stub=<X-MS-STUB> 返回 signature)。本包不内置平台签名脚本;不填时不带签名连接,平台可能拒绝
douyin-live.endpoints[].commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
douyin-live.endpoints[].nicknamestring | null否—账号昵称兜底
douyin-live.endpoints[].profileobject否—账号资料兜底
douyin-live.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
douyin-live.endpoints[].profile.ageinteger | null否——
douyin-live.endpoints[].profile.birthdaystring | null否——
douyin-live.endpoints[].profile.signaturestring | null否——
douyin-live.endpoints[].profile.avatarstring | null否——
douyin-live.endpoints[].profile.interestsarray | null否——
douyin-live.endpoints[].profile.biostring | null否——
douyin-live.nicknamestring | null否—账号昵称兜底
douyin-live.profileobject否—账号资料兜底
douyin-live.profile.genderstring | null: "male", "female", "other", "unknown", null否——
douyin-live.profile.ageinteger | null否——
douyin-live.profile.birthdaystring | null否——
douyin-live.profile.signaturestring | null否——
douyin-live.profile.avatarstring | null否——
douyin-live.profile.interestsarray | null否——
douyin-live.profile.biostring | null否——

email ​

plugins/adapters/email/schema.json

路径类型必填默认值说明
email.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
email.endpoints[].smtpobject是——
email.endpoints[].smtp.hoststring是——
email.endpoints[].smtp.portnumber是——
email.endpoints[].smtp.secureboolean是——
email.endpoints[].smtp.authobject是——
email.endpoints[].smtp.auth.userstring是——
email.endpoints[].smtp.auth.passstring是——
email.endpoints[].smtp.serverNamestring否—TLS SNI 与证书主机名校验,代理场景保留原服务域名;不改变证书校验策略
email.endpoints[].imapobject是——
email.endpoints[].imap.hoststring是——
email.endpoints[].imap.portnumber是——
email.endpoints[].imap.tlsboolean是——
email.endpoints[].imap.userstring是——
email.endpoints[].imap.passwordstring是——
email.endpoints[].imap.checkIntervalnumber否60000—
email.endpoints[].imap.reconnectIntervalnumber否5000—
email.endpoints[].imap.mailboxstring否"INBOX"—
email.endpoints[].imap.markSeenboolean否true—
email.endpoints[].imap.serverNamestring否—TLS SNI 与证书主机名校验,代理场景保留原服务域名;不改变证书校验策略
email.endpoints[].attachmentsobject否——
email.endpoints[].attachments.enabledboolean否false—
email.endpoints[].attachments.downloadPathstring否——
email.endpoints[].attachments.maxFileSizenumber否——
email.endpoints[].attachments.allowedTypesarray<string>否——
email.endpoints[].commandPrefixstring否——
email.endpoints[].idstring是—Email bot name
email.endpoints[].nicknamestring | null否—账号昵称兜底
email.endpoints[].profileobject否—账号资料兜底
email.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
email.endpoints[].profile.ageinteger | null否——
email.endpoints[].profile.birthdaystring | null否——
email.endpoints[].profile.signaturestring | null否——
email.endpoints[].profile.avatarstring | null否——
email.endpoints[].profile.interestsarray | null否——
email.endpoints[].profile.biostring | null否——
email.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
email.nicknamestring | null否—账号昵称兜底
email.profileobject否—账号资料兜底
email.profile.genderstring | null: "male", "female", "other", "unknown", null否——
email.profile.ageinteger | null否——
email.profile.birthdaystring | null否——
email.profile.signaturestring | null否——
email.profile.avatarstring | null否——
email.profile.interestsarray | null否——
email.profile.biostring | null否——

github ​

plugins/adapters/github/schema.json

路径类型必填默认值说明
github.hoststring否—GitHub Enterprise hostname (default github.com)
github.webhook_pathstring否"/github/webhook"—
github.auto_reply_reposarray<string>否—Repos whose Issue/PR comments auto-trigger AI without @bot
github.bot_loginstring否—Override App bot login (default {slug}[bot])
github.workspace_rootstring否—Managed git workspace root
github.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint
github.endpoints[].app_idstring | number是—GitHub App ID
github.endpoints[].private_keystring是—GitHub App private key (PEM content or file path)
github.endpoints[].webhook_secretstring否—Webhook HMAC secret; enables httpHostToken POST route
github.endpoints[].idstring是—GitHub App bot name
github.endpoints[].hoststring否—GitHub Enterprise hostname
github.endpoints[].webhook_pathstring否—Webhook route path
github.endpoints[].auto_reply_reposarray<string>否—Repos whose comments auto-trigger AI
github.endpoints[].bot_loginstring否—Override App bot login
github.endpoints[].workspace_rootstring否—Managed git workspace root
github.endpoints[].commandPrefixstring否—本 endpoint 的命令前缀
github.endpoints[].nicknamestring | null否—账号昵称兜底
github.endpoints[].profileobject否—账号资料兜底
github.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
github.endpoints[].profile.ageinteger | null否——
github.endpoints[].profile.birthdaystring | null否——
github.endpoints[].profile.signaturestring | null否——
github.endpoints[].profile.avatarstring | null否——
github.endpoints[].profile.interestsarray | null否——
github.endpoints[].profile.biostring | null否——
github.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
github.nicknamestring | null否—账号昵称兜底
github.profileobject否—账号资料兜底
github.profile.genderstring | null: "male", "female", "other", "unknown", null否——
github.profile.ageinteger | null否——
github.profile.birthdaystring | null否——
github.profile.signaturestring | null否——
github.profile.avatarstring | null否——
github.profile.interestsarray | null否——
github.profile.biostring | null否——

icqq ​

plugins/adapters/icqq/schema.json

路径类型必填默认值说明
icqq.passwordstring否—QQ 密码(可选,不填则扫码登录)
icqq.platformnumber: 1, 2, 3, 4, 5, 6, 7否1登录设备平台:1=Android, 2=aPad, 3=Watch, 4=iMac, 5=iPad, 6=Tim, 7=Custom
icqq.verstring否—协议版本号,仅在对应 platform 有多个版本时有效,不填则使用最新版本
icqq.signApiAddrstring否—签名服务器地址;未配置时若安装了 @icqqjs/qqsign 则自动使用本地签名
icqq.dataDirstring否—数据存储文件夹路径,默认为主模块下的 data 文件夹
icqq.autoReconnectboolean否true断线后是否自动重连(默认 true)
icqq.outboundMediastring: "file", "base64"否"file"出站媒体模式:file=落盘本地路径(默认); base64=CQ base64:// 内联
icqq.ignoreSelfboolean否true群聊和频道中是否过滤自己的消息(默认 true)
icqq.resendboolean否false被风控时是否尝试用分片发送(默认 false)
icqq.cacheGroupMemberboolean否true是否缓存群员列表(默认 true);群多时(500+)会多占约 100MB+ 内存
icqq.autoServerboolean否true是否自动选择最优服务器(默认 true)
icqq.qqntboolean否true是否使用 QQNT 协议(默认 true)
icqq.ntLoginboolean否—是否使用 NT 登录方式
icqq.logLevelstring: "trace", "debug", "info", "warn", "error", "fatal", "mark", "off"否"warn"ICQQ SDK 自身日志的级别(默认 warn);它逐条打印的收发消息原文(recv from / succeed to send)只在 debug 及以下出现,且转义为单行
icqq.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
icqq.endpoints[].idstring是—QQ uin
icqq.endpoints[].passwordstring否—本 endpoint 的 QQ 密码
icqq.endpoints[].platformnumber: 1, 2, 3, 4, 5, 6, 7否—登录设备平台:1=Android, 2=aPad, 3=Watch, 4=iMac, 5=iPad, 6=Tim, 7=Custom
icqq.endpoints[].verstring否—协议版本号
icqq.endpoints[].signApiAddrstring否—签名服务器地址
icqq.endpoints[].dataDirstring否—数据存储文件夹路径
icqq.endpoints[].autoReconnectboolean否—断线后是否自动重连
icqq.endpoints[].outboundMediastring: "file", "base64"否—出站媒体模式
icqq.endpoints[].ignoreSelfboolean否—是否过滤自己的消息
icqq.endpoints[].resendboolean否—被风控时是否分片发送
icqq.endpoints[].cacheGroupMemberboolean否—是否缓存群员列表
icqq.endpoints[].autoServerboolean否—是否自动选择最优服务器
icqq.endpoints[].qqntboolean否—是否使用 QQNT 协议
icqq.endpoints[].ntLoginboolean否—是否使用 NT 登录方式
icqq.endpoints[].logLevelstring: "trace", "debug", "info", "warn", "error", "fatal", "mark", "off"否—ICQQ SDK 自身日志的级别
icqq.endpoints[].commandPrefixstring否—本 endpoint 的命令前缀
icqq.endpoints[].notifyobject否—掉线/登录失败时通过另一个适配器实例给 master 发通知(adapter/endpoint/kind/id 指向实际会话)
icqq.endpoints[].notify.adapterstring是—通知使用的适配器类型,如 qq / icqq
icqq.endpoints[].notify.endpointstring是—该适配器的 endpoint id
icqq.endpoints[].notify.kindstring: "private", "group", "channel"否"private"会话类型,默认 private
icqq.endpoints[].notify.idstring | number是—master 在该平台上的会话 id(QQ 官方为 openid,ICQQ 为 QQ 号)
icqq.endpoints[].notify.parentobject否—可选的父频道/群容器
icqq.endpoints[].notify.parent.kindstring: "private", "group", "channel"是——
icqq.endpoints[].notify.parent.idstring | number是——
icqq.endpoints[].nicknamestring | null否—账号昵称兜底
icqq.endpoints[].profileobject否—账号资料兜底
icqq.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
icqq.endpoints[].profile.ageinteger | null否——
icqq.endpoints[].profile.birthdaystring | null否——
icqq.endpoints[].profile.signaturestring | null否——
icqq.endpoints[].profile.avatarstring | null否——
icqq.endpoints[].profile.interestsarray | null否——
icqq.endpoints[].profile.biostring | null否——
icqq.commandPrefixstring否""命令前缀(默认 '' 无前缀)。endpoints[i] 可逐项覆盖
icqq.notifyobject否—掉线/登录失败时通过另一个适配器实例给 master 发通知(adapter/endpoint/kind/id 指向实际会话)
icqq.notify.adapterstring是—通知使用的适配器类型,如 qq / icqq
icqq.notify.endpointstring是—该适配器的 endpoint id
icqq.notify.kindstring: "private", "group", "channel"否"private"会话类型,默认 private
icqq.notify.idstring | number是—master 在该平台上的会话 id(QQ 官方为 openid,ICQQ 为 QQ 号)
icqq.notify.parentobject否—可选的父频道/群容器
icqq.notify.parent.kindstring: "private", "group", "channel"是——
icqq.notify.parent.idstring | number是——
icqq.nicknamestring | null否—账号昵称兜底
icqq.profileobject否—账号资料兜底
icqq.profile.genderstring | null: "male", "female", "other", "unknown", null否——
icqq.profile.ageinteger | null否——
icqq.profile.birthdaystring | null否——
icqq.profile.signaturestring | null否——
icqq.profile.avatarstring | null否——
icqq.profile.interestsarray | null否——
icqq.profile.biostring | null否——

juejin ​

plugins/adapters/juejin/schema.json

路径类型必填默认值说明
juejin.apiBaseUrlstring否"https://api.juejin.cn"—
juejin.pollIntervalSecnumber否60轮询间隔(秒),最小 60,实际会加 0–20% 随机抖动
juejin.sendModestring: "review", "off"否"review"出站模式:review=AI 回复只进草稿队列,master 在 Console 或用 juejin-draft send <id> 审批后才发出(默认);off=禁止出站。不提供自动直发
juejin.minSendIntervalSecnumber否30审批后两次真实发送的最小间隔(秒),最小 10;不足时拒绝发送,不排队
juejin.dataDirstring否"data/juejin"本地数据目录:待审草稿存在 <dataDir>/<endpoint id>/drafts.json(权限 600,相对进程工作目录),重启不丢。不要放进仓库
juejin.notifyobject否—有新草稿或登录失效时,主动发消息提醒到这个聊天会话(通常是你和机器人的私聊)。不填则只在 Console「掘金评论审批」页和日志里看到
juejin.notify.adapterstring是—适配器名,如 icqq、telegram
juejin.notify.endpointstring是—该适配器的 endpoint id
juejin.notify.kindstring: "private", "group", "channel"否"private"会话类型
juejin.notify.idstring | number是—会话 id:私聊填你的账号,群聊填群号
juejin.articlesarray<string>否—白名单文章:文章 id(请写成带引号的字符串)或 https://juejin.cn/post/<id&gt; 链接。只轮询这些文章的评论,不做全站搜索;留空 = 不轮询
juejin.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
juejin.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
juejin.endpoints[].idstring是—Endpoint 名称(本地标识,不是掘金账号)
juejin.endpoints[].cookiestring否—掘金网页登录态 Cookie 整串(至少含 sessionid;以你的账号身份操作;请用 ${JUEJIN_COOKIE} 注入,切勿写入仓库)
juejin.endpoints[].articlesarray<string>否—白名单文章:文章 id(请写成带引号的字符串)或 https://juejin.cn/post/<id&gt; 链接。只轮询这些文章的评论,不做全站搜索;留空 = 不轮询
juejin.endpoints[].pollIntervalSecnumber否60轮询间隔(秒),最小 60,实际会加 0–20% 随机抖动
juejin.endpoints[].sendModestring: "review", "off"否"review"出站模式:review=AI 回复只进草稿队列,master 在 Console 或用 juejin-draft send <id> 审批后才发出(默认);off=禁止出站。不提供自动直发
juejin.endpoints[].minSendIntervalSecnumber否30审批后两次真实发送的最小间隔(秒),最小 10;不足时拒绝发送,不排队
juejin.endpoints[].dataDirstring否"data/juejin"本地数据目录:待审草稿存在 <dataDir>/<endpoint id>/drafts.json(权限 600,相对进程工作目录),重启不丢。不要放进仓库
juejin.endpoints[].notifyobject否—有新草稿或登录失效时,主动发消息提醒到这个聊天会话(通常是你和机器人的私聊)。不填则只在 Console「掘金评论审批」页和日志里看到
juejin.endpoints[].notify.adapterstring是—适配器名,如 icqq、telegram
juejin.endpoints[].notify.endpointstring是—该适配器的 endpoint id
juejin.endpoints[].notify.kindstring: "private", "group", "channel"否"private"会话类型
juejin.endpoints[].notify.idstring | number是—会话 id:私聊填你的账号,群聊填群号
juejin.endpoints[].apiBaseUrlstring否"https://api.juejin.cn"—
juejin.endpoints[].commandPrefixstring否——
juejin.endpoints[].nicknamestring | null否—账号昵称兜底
juejin.endpoints[].profileobject否—账号资料兜底
juejin.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
juejin.endpoints[].profile.ageinteger | null否——
juejin.endpoints[].profile.birthdaystring | null否——
juejin.endpoints[].profile.signaturestring | null否——
juejin.endpoints[].profile.avatarstring | null否——
juejin.endpoints[].profile.interestsarray | null否——
juejin.endpoints[].profile.biostring | null否——
juejin.nicknamestring | null否—账号昵称兜底
juejin.profileobject否—账号资料兜底
juejin.profile.genderstring | null: "male", "female", "other", "unknown", null否——
juejin.profile.ageinteger | null否——
juejin.profile.birthdaystring | null否——
juejin.profile.signaturestring | null否——
juejin.profile.avatarstring | null否——
juejin.profile.interestsarray | null否——
juejin.profile.biostring | null否——

kook ​

plugins/adapters/kook/schema.json

路径类型必填默认值说明
kook.connectionstring: "websocket", "webhook"否"websocket"WebSocket gateway (default). webhook requires httpHostToken, verify_token, and a public HTTPS callback URL.
kook.webhookPathstring否"/kook/webhook"POST path registered via httpHostToken when connection is webhook.
kook.data_dirstring否——
kook.timeoutnumber否10000—
kook.max_retrynumber否3—
kook.ignorestring: "bot", "self"否"bot"—
kook.logLevelstring: "trace", "debug", "info", "warn", "error", "fatal", "mark", "off"否"info"—
kook.endpointsarray<object>是—多账号:每项定义一个 endpoint,id/token 必填,其余字段覆盖实例默认值
kook.endpoints[].tokenstring是—KOOK bot token
kook.endpoints[].connectionstring: "websocket", "webhook"否——
kook.endpoints[].webhookPathstring否——
kook.endpoints[].verify_tokenstring否—KOOK developer console verify token (required for webhook mode).
kook.endpoints[].encrypt_keystring否—Optional Encrypt Key when message encryption is enabled in KOOK console.
kook.endpoints[].data_dirstring否——
kook.endpoints[].timeoutnumber否——
kook.endpoints[].max_retrynumber否——
kook.endpoints[].ignorestring: "bot", "self"否——
kook.endpoints[].logLevelstring: "trace", "debug", "info", "warn", "error", "fatal", "mark", "off"否——
kook.endpoints[].commandPrefixstring否——
kook.endpoints[].idstring是—KOOK bot name
kook.endpoints[].streamProxyobject否—WSS故障验收固定loopback,保持真实TLS身份
kook.endpoints[].streamProxy.portinteger是——
kook.endpoints[].streamProxy.serverNamestring是——
kook.endpoints[].apiProxyobject否—Optional fixed loopback TCP route for www.kookapp.cn JSON API only; verified TLS remains enabled.
kook.endpoints[].apiProxy.portinteger是——
kook.endpoints[].nicknamestring | null否—账号昵称兜底
kook.endpoints[].profileobject否—账号资料兜底
kook.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
kook.endpoints[].profile.ageinteger | null否——
kook.endpoints[].profile.birthdaystring | null否——
kook.endpoints[].profile.signaturestring | null否——
kook.endpoints[].profile.avatarstring | null否——
kook.endpoints[].profile.interestsarray | null否——
kook.endpoints[].profile.biostring | null否——
kook.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
kook.nicknamestring | null否—账号昵称兜底
kook.profileobject否—账号资料兜底
kook.profile.genderstring | null: "male", "female", "other", "unknown", null否——
kook.profile.ageinteger | null否——
kook.profile.birthdaystring | null否——
kook.profile.signaturestring | null否——
kook.profile.avatarstring | null否——
kook.profile.interestsarray | null否——
kook.profile.biostring | null否——

lark ​

plugins/adapters/lark/schema.json

路径类型必填默认值说明
lark.webhookPathstring否"/lark/webhook"—
lark.apiBaseUrlstring否——
lark.isFeishuboolean否true—
lark.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
lark.endpoints[].appIdstring是—Lark app ID
lark.endpoints[].appSecretstring是—Lark app secret
lark.endpoints[].encryptKeystring否—Lark encrypt key
lark.endpoints[].verificationTokenstring否—Lark verification token
lark.endpoints[].webhookPathstring否——
lark.endpoints[].apiBaseUrlstring否——
lark.endpoints[].isFeishuboolean否——
lark.endpoints[].commandPrefixstring否——
lark.endpoints[].idstring是—Lark bot name
lark.endpoints[].modestring: "webhook", "websocket"否"webhook"—
lark.endpoints[].streamProxyobject否—WSS故障验收:仅TCP固定loopback,保留TLS身份
lark.endpoints[].streamProxy.portinteger是——
lark.endpoints[].streamProxy.serverNamestring是——
lark.endpoints[].webApiProxyobject否—默认关闭;仅飞书出站API的loopback TLS故障代理,保留官方Host/SNI和证书校验,与streamProxy独立
lark.endpoints[].webApiProxy.portinteger是——
lark.endpoints[].streamingboolean否—Use native streaming cards for progressive replies.
lark.endpoints[].streamingIntervalMsinteger否—Reply stream update interval in milliseconds.
lark.endpoints[].nicknamestring | null否—账号昵称兜底
lark.endpoints[].profileobject否—账号资料兜底
lark.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
lark.endpoints[].profile.ageinteger | null否——
lark.endpoints[].profile.birthdaystring | null否——
lark.endpoints[].profile.signaturestring | null否——
lark.endpoints[].profile.avatarstring | null否——
lark.endpoints[].profile.interestsarray | null否——
lark.endpoints[].profile.biostring | null否——
lark.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
lark.modestring: "webhook", "websocket"否"webhook"—
lark.webApiProxyobject否—默认关闭;仅飞书出站API的loopback TLS故障代理,保留官方Host/SNI和证书校验,与streamProxy独立
lark.webApiProxy.portinteger是——
lark.streamingboolean否trueUse native streaming cards for progressive replies.
lark.streamingIntervalMsinteger否1000Reply stream update interval in milliseconds.
lark.nicknamestring | null否—账号昵称兜底
lark.profileobject否—账号资料兜底
lark.profile.genderstring | null: "male", "female", "other", "unknown", null否——
lark.profile.ageinteger | null否——
lark.profile.birthdaystring | null否——
lark.profile.signaturestring | null否——
lark.profile.avatarstring | null否——
lark.profile.interestsarray | null否——
lark.profile.biostring | null否——

line ​

plugins/adapters/line/schema.json

路径类型必填默认值说明
line.webhookPathstring否"/line/webhook"—
line.apiBaseUrlstring否"https://api.line.me"—
line.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
line.endpoints[].channelSecretstring是—LINE channel secret
line.endpoints[].channelAccessTokenstring是—LINE channel access token
line.endpoints[].webhookPathstring否——
line.endpoints[].apiBaseUrlstring否——
line.endpoints[].commandPrefixstring否——
line.endpoints[].idstring是—LINE bot name
line.endpoints[].nicknamestring | null否—账号昵称兜底
line.endpoints[].profileobject否—账号资料兜底
line.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
line.endpoints[].profile.ageinteger | null否——
line.endpoints[].profile.birthdaystring | null否——
line.endpoints[].profile.signaturestring | null否——
line.endpoints[].profile.avatarstring | null否——
line.endpoints[].profile.interestsarray | null否——
line.endpoints[].profile.biostring | null否——
line.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
line.nicknamestring | null否—账号昵称兜底
line.profileobject否—账号资料兜底
line.profile.genderstring | null: "male", "female", "other", "unknown", null否——
line.profile.ageinteger | null否——
line.profile.birthdaystring | null否——
line.profile.signaturestring | null否——
line.profile.avatarstring | null否——
line.profile.interestsarray | null否——
line.profile.biostring | null否——

milky ​

plugins/adapters/milky/schema.json

路径类型必填默认值说明
milky.connectionstring: "ws", "sse", "webhook", "wss"否"ws"ws (default), sse (EventSource client), webhook or wss (webhook/wss via httpHostToken)
milky.reconnect_intervalnumber否5000—
milky.heartbeat_intervalnumber否30000—
milky.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
milky.endpoints[].connectionstring: "ws", "sse", "webhook", "wss"否——
milky.endpoints[].baseUrlstring是—Milky HTTP API base URL (required); WS event path is derived as ws(s)😕/host/event
milky.endpoints[].pathstring否—Path for webhook / reverse-wss
milky.endpoints[].access_tokenstring否—Milky access token
milky.endpoints[].reconnect_intervalnumber否——
milky.endpoints[].heartbeat_intervalnumber否——
milky.endpoints[].commandPrefixstring否——
milky.endpoints[].idstring是—Milky bot name
milky.endpoints[].nicknamestring | null否—账号昵称兜底
milky.endpoints[].profileobject否—账号资料兜底
milky.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
milky.endpoints[].profile.ageinteger | null否——
milky.endpoints[].profile.birthdaystring | null否——
milky.endpoints[].profile.signaturestring | null否——
milky.endpoints[].profile.avatarstring | null否——
milky.endpoints[].profile.interestsarray | null否——
milky.endpoints[].profile.biostring | null否——
milky.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
milky.nicknamestring | null否—账号昵称兜底
milky.profileobject否—账号资料兜底
milky.profile.genderstring | null: "male", "female", "other", "unknown", null否——
milky.profile.ageinteger | null否——
milky.profile.birthdaystring | null否——
milky.profile.signaturestring | null否——
milky.profile.avatarstring | null否——
milky.profile.interestsarray | null否——
milky.profile.biostring | null否——

napcat ​

plugins/adapters/napcat/schema.json

路径类型必填默认值说明
napcat.connectionstring: "ws", "wss", "http"否"ws"ws (default), wss (reverse WS), or http (POST webhook + HTTP API outbound)
napcat.reconnect_intervalnumber否5000—
napcat.heartbeat_intervalnumber否30000—
napcat.poll_intervalnumber否30000—
napcat.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
napcat.endpoints[].connectionstring: "ws", "wss", "http"否——
napcat.endpoints[].urlstring否—NapCat WebSocket URL (required for connection: ws)
napcat.endpoints[].pathstring否—WS path for reverse-wss
napcat.endpoints[].http_urlstring否—HTTP API base URL (connection: http outbound)
napcat.endpoints[].post_pathstring否—HTTP POST event path (connection: http inbound)
napcat.endpoints[].access_tokenstring否—NapCat access token
napcat.endpoints[].reconnect_intervalnumber否——
napcat.endpoints[].heartbeat_intervalnumber否——
napcat.endpoints[].poll_intervalnumber否——
napcat.endpoints[].commandPrefixstring否——
napcat.endpoints[].idstring是—NapCat bot name
napcat.endpoints[].nicknamestring | null否—账号昵称兜底
napcat.endpoints[].profileobject否—账号资料兜底
napcat.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
napcat.endpoints[].profile.ageinteger | null否——
napcat.endpoints[].profile.birthdaystring | null否——
napcat.endpoints[].profile.signaturestring | null否——
napcat.endpoints[].profile.avatarstring | null否——
napcat.endpoints[].profile.interestsarray | null否——
napcat.endpoints[].profile.biostring | null否——
napcat.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
napcat.nicknamestring | null否—账号昵称兜底
napcat.profileobject否—账号资料兜底
napcat.profile.genderstring | null: "male", "female", "other", "unknown", null否——
napcat.profile.ageinteger | null否——
napcat.profile.birthdaystring | null否——
napcat.profile.signaturestring | null否——
napcat.profile.avatarstring | null否——
napcat.profile.interestsarray | null否——
napcat.profile.biostring | null否——

onebot11 ​

plugins/adapters/onebot11/schema.json

路径类型必填默认值说明
onebot11.connectionstring: "ws", "wss"否"ws"connection: ws (forward WS client, default) or wss (reverse WS via httpHostToken)
onebot11.reconnect_intervalnumber否5000—
onebot11.heartbeat_intervalnumber否30000—
onebot11.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
onebot11.endpoints[].connectionstring: "ws", "wss"否——
onebot11.endpoints[].urlstring否—OneBot implementation WebSocket URL (required for connection: ws)
onebot11.endpoints[].pathstring否—WS path for reverse-wss (connection: wss)
onebot11.endpoints[].access_tokenstring否—OneBot access token
onebot11.endpoints[].reconnect_intervalnumber否——
onebot11.endpoints[].heartbeat_intervalnumber否——
onebot11.endpoints[].commandPrefixstring否——
onebot11.endpoints[].idstring是—OneBot11 bot name
onebot11.endpoints[].nicknamestring | null否—账号昵称兜底
onebot11.endpoints[].profileobject否—账号资料兜底
onebot11.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
onebot11.endpoints[].profile.ageinteger | null否——
onebot11.endpoints[].profile.birthdaystring | null否——
onebot11.endpoints[].profile.signaturestring | null否——
onebot11.endpoints[].profile.avatarstring | null否——
onebot11.endpoints[].profile.interestsarray | null否——
onebot11.endpoints[].profile.biostring | null否——
onebot11.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
onebot11.nicknamestring | null否—账号昵称兜底
onebot11.profileobject否—账号资料兜底
onebot11.profile.genderstring | null: "male", "female", "other", "unknown", null否——
onebot11.profile.ageinteger | null否——
onebot11.profile.birthdaystring | null否——
onebot11.profile.signaturestring | null否——
onebot11.profile.avatarstring | null否——
onebot11.profile.interestsarray | null否——
onebot11.profile.biostring | null否——

onebot12 ​

plugins/adapters/onebot12/schema.json

路径类型必填默认值说明
onebot12.connectionstring: "ws", "webhook", "wss"否"ws"ws (default), webhook (httpHostToken POST), or wss (reverse WS via httpHostToken)
onebot12.reconnect_intervalnumber否5000—
onebot12.heartbeat_intervalnumber否30000—
onebot12.endpointsarray<object>是—多账号:每项明确选择 platform/userId,id 为本地账号名称,其余连接字段覆盖实例默认值
onebot12.endpoints[].connectionstring: "ws", "webhook", "wss"否——
onebot12.endpoints[].urlstring否—OneBot implementation WebSocket URL (required for connection: ws)
onebot12.endpoints[].pathstring否—HTTP/WS path for webhook or reverse-wss
onebot12.endpoints[].api_urlstring否—HTTP action endpoint for webhook outbound (required for connection: webhook send)
onebot12.endpoints[].access_tokenstring否—OneBot access token
onebot12.endpoints[].reconnect_intervalnumber否——
onebot12.endpoints[].heartbeat_intervalnumber否——
onebot12.endpoints[].commandPrefixstring否——
onebot12.endpoints[].idstring是—OneBot12 bot name
onebot12.endpoints[].platformstring是—Selected OneBot12 bot platform
onebot12.endpoints[].userIdstring是—Selected OneBot12 bot user ID
onebot12.endpoints[].nicknamestring | null否—账号昵称兜底
onebot12.endpoints[].profileobject否—账号资料兜底
onebot12.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
onebot12.endpoints[].profile.ageinteger | null否——
onebot12.endpoints[].profile.birthdaystring | null否——
onebot12.endpoints[].profile.signaturestring | null否——
onebot12.endpoints[].profile.avatarstring | null否——
onebot12.endpoints[].profile.interestsarray | null否——
onebot12.endpoints[].profile.biostring | null否——
onebot12.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
onebot12.nicknamestring | null否—账号昵称兜底
onebot12.profileobject否—账号资料兜底
onebot12.profile.genderstring | null: "male", "female", "other", "unknown", null否——
onebot12.profile.ageinteger | null否——
onebot12.profile.birthdaystring | null否——
onebot12.profile.signaturestring | null否——
onebot12.profile.avatarstring | null否——
onebot12.profile.interestsarray | null否——
onebot12.profile.biostring | null否——

qq ​

plugins/adapters/qq/schema.json

路径类型必填默认值说明
qq.modestring: "websocket", "webhook", "middleware"否"websocket"WebSocket gateway (default). webhook/middleware use httpHostToken POST.
qq.sandboxboolean否false—
qq.botKindstring: "public", "private"否"public"公域/私域:均含 GROUP_AND_C2C_EVENT;频道消息分别为 PUBLIC_GUILD_MESSAGES / GUILD_MESSAGES。未显式配置 intents 时按此展开
qq.intentsarray<string>否—WebSocket Identify intents;省略时按 botKind 自动生成(public→含 PUBLIC_GUILD_MESSAGES)
qq.accessTokenUrlstring否——
qq.gatewayUrlstring否——
qq.webhookPathstring否"/qq/webhook"POST path on httpHostToken for webhook/middleware modes.
qq.endpointsarray<object>是—多账号:每项定义一个 endpoint,id/appid/secret 必填,其余字段覆盖实例默认值
qq.endpoints[].appidstring是—QQ official bot app ID
qq.endpoints[].secretstring是—QQ official bot secret
qq.endpoints[].modestring: "websocket", "webhook", "middleware"否——
qq.endpoints[].sandboxboolean否——
qq.endpoints[].botKindstring: "public", "private"否—覆盖顶层 botKind(公域/私域),用于按 endpoint 生成 intents
qq.endpoints[].intentsarray<string>否—覆盖顶层 intents
qq.endpoints[].accessTokenUrlstring否——
qq.endpoints[].gatewayUrlstring否——
qq.endpoints[].webhookPathstring否——
qq.endpoints[].commandPrefixstring否——
qq.endpoints[].idstring是—QQ bot name
qq.endpoints[].streamProxyobject否—Optional fixed loopback TCP fault proxy for WSS only; original gateway TLS identity must match serverName.
qq.endpoints[].streamProxy.portinteger是——
qq.endpoints[].streamProxy.serverNamestring是——
qq.endpoints[].notifyobject否—掉线/登录失败时通过另一个适配器实例给 master 发通知(adapter/endpoint/kind/id 指向实际会话)
qq.endpoints[].notify.adapterstring是—通知使用的适配器类型,如 qq / icqq
qq.endpoints[].notify.endpointstring是—该适配器的 endpoint id
qq.endpoints[].notify.kindstring: "private", "group", "channel"否"private"会话类型,默认 private
qq.endpoints[].notify.idstring | number是—master 在该平台上的会话 id(QQ 官方为 openid,ICQQ 为 QQ 号)
qq.endpoints[].notify.parentobject否—可选的父频道/群容器
qq.endpoints[].notify.parent.kindstring: "private", "group", "channel"是——
qq.endpoints[].notify.parent.idstring | number是——
qq.endpoints[].streamingboolean否—在支持的会话中渐进发送回复。设为 false 时仅发送完整回复。
qq.endpoints[].streamingIntervalMsnumber否—后续回复更新的最小间隔(毫秒);首段立即发送。
qq.endpoints[].nicknamestring | null否—账号昵称兜底
qq.endpoints[].profileobject否—账号资料兜底
qq.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
qq.endpoints[].profile.ageinteger | null否——
qq.endpoints[].profile.birthdaystring | null否——
qq.endpoints[].profile.signaturestring | null否——
qq.endpoints[].profile.avatarstring | null否——
qq.endpoints[].profile.interestsarray | null否——
qq.endpoints[].profile.biostring | null否——
qq.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
qq.streamProxyobject否—Optional fixed loopback TCP fault proxy for WSS only; original gateway TLS identity must match serverName.
qq.streamProxy.portinteger是——
qq.streamProxy.serverNamestring是——
qq.notifyobject否—掉线/登录失败时通过另一个适配器实例给 master 发通知(adapter/endpoint/kind/id 指向实际会话)
qq.notify.adapterstring是—通知使用的适配器类型,如 qq / icqq
qq.notify.endpointstring是—该适配器的 endpoint id
qq.notify.kindstring: "private", "group", "channel"否"private"会话类型,默认 private
qq.notify.idstring | number是—master 在该平台上的会话 id(QQ 官方为 openid,ICQQ 为 QQ 号)
qq.notify.parentobject否—可选的父频道/群容器
qq.notify.parent.kindstring: "private", "group", "channel"是——
qq.notify.parent.idstring | number是——
qq.streamingboolean否true在支持的会话中渐进发送回复。设为 false 时仅发送完整回复。
qq.streamingIntervalMsnumber否500后续回复更新的最小间隔(毫秒);首段立即发送。
qq.nicknamestring | null否—账号昵称兜底
qq.profileobject否—账号资料兜底
qq.profile.genderstring | null: "male", "female", "other", "unknown", null否——
qq.profile.ageinteger | null否——
qq.profile.birthdaystring | null否——
qq.profile.signaturestring | null否——
qq.profile.avatarstring | null否——
qq.profile.interestsarray | null否——
qq.profile.biostring | null否——

sandbox ​

plugins/adapters/sandbox/schema.json

路径类型必填默认值说明
sandbox.streamingboolean否truePublish supported replies while generating. Set false to send only complete replies.
sandbox.streamingIntervalMsnumber否500Minimum delay in milliseconds between reply updates; the first update is immediate.
sandbox.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
sandbox.endpoints[].ownerstring否—Sandbox owner user ID
sandbox.endpoints[].streamingboolean否—Publish supported replies while generating. Set false to send only complete replies.
sandbox.endpoints[].streamingIntervalMsnumber否—Minimum delay in milliseconds between reply updates; the first update is immediate.
sandbox.endpoints[].commandPrefixstring否——
sandbox.endpoints[].idstring是—Sandbox bot name
sandbox.endpoints[].nicknamestring | null否—账号昵称兜底
sandbox.endpoints[].profileobject否—账号资料兜底
sandbox.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
sandbox.endpoints[].profile.ageinteger | null否——
sandbox.endpoints[].profile.birthdaystring | null否——
sandbox.endpoints[].profile.signaturestring | null否——
sandbox.endpoints[].profile.avatarstring | null否——
sandbox.endpoints[].profile.interestsarray | null否——
sandbox.endpoints[].profile.biostring | null否——
sandbox.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
sandbox.nicknamestring | null否—账号昵称兜底
sandbox.profileobject否—账号资料兜底
sandbox.profile.genderstring | null: "male", "female", "other", "unknown", null否——
sandbox.profile.ageinteger | null否——
sandbox.profile.birthdaystring | null否——
sandbox.profile.signaturestring | null否——
sandbox.profile.avatarstring | null否——
sandbox.profile.interestsarray | null否——
sandbox.profile.biostring | null否——

satori ​

plugins/adapters/satori/schema.json

路径类型必填默认值说明
satori.connectionstring: "ws", "webhook"否"ws"ws (default) or webhook (httpHostToken POST route)
satori.heartbeat_intervalnumber否10000WS PING interval in milliseconds
satori.endpointsarray<object>是—多账号:每项明确选择 platform/userId,id/baseUrl 必填,其余字段覆盖实例默认值
satori.endpoints[].baseUrlstring是—Satori SDK HTTP/WS base URL (e.g. http://127.0.0.1:5140)
satori.endpoints[].connectionstring: "ws", "webhook"否——
satori.endpoints[].tokenstring否—Bearer token for API and WS IDENTIFY
satori.endpoints[].pathstring否—Webhook POST path (connection: webhook)
satori.endpoints[].heartbeat_intervalnumber否——
satori.endpoints[].commandPrefixstring否——
satori.endpoints[].idstring是—Satori bot name
satori.endpoints[].platformstring是—Selected Satori login platform
satori.endpoints[].userIdstring是—Selected Satori login user ID
satori.endpoints[].nicknamestring | null否—账号昵称兜底
satori.endpoints[].profileobject否—账号资料兜底
satori.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
satori.endpoints[].profile.ageinteger | null否——
satori.endpoints[].profile.birthdaystring | null否——
satori.endpoints[].profile.signaturestring | null否——
satori.endpoints[].profile.avatarstring | null否——
satori.endpoints[].profile.interestsarray | null否——
satori.endpoints[].profile.biostring | null否——
satori.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
satori.nicknamestring | null否—账号昵称兜底
satori.profileobject否—账号资料兜底
satori.profile.genderstring | null: "male", "female", "other", "unknown", null否——
satori.profile.ageinteger | null否——
satori.profile.birthdaystring | null否——
satori.profile.signaturestring | null否——
satori.profile.avatarstring | null否——
satori.profile.interestsarray | null否——
satori.profile.biostring | null否——

slack ​

plugins/adapters/slack/schema.json

路径类型必填默认值说明
slack.socketModeboolean否truePrefer Socket Mode (default). Set false for HTTP Events via httpHostToken.
slack.webhookPathstring否"/slack/events"—
slack.clientPingTimeoutnumber否15000Socket Mode client ping timeout (ms)
slack.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
slack.endpoints[].tokenstring是—Bot User OAuth Token (xoxb-...)
slack.endpoints[].signingSecretstring否—Required for HTTP Events API (socketMode: false)
slack.endpoints[].appTokenstring否—App-Level Token (xapp-...) for Socket Mode
slack.endpoints[].socketModeboolean否——
slack.endpoints[].webhookPathstring否——
slack.endpoints[].clientPingTimeoutnumber否——
slack.endpoints[].commandPrefixstring否——
slack.endpoints[].idstring是—Slack bot name
slack.endpoints[].streamProxyobject否—Socket故障验收:WSS固定loopback TCP,API仍标准TLS直连
slack.endpoints[].streamProxy.portinteger是——
slack.endpoints[].streamProxy.serverNamestring是——
slack.endpoints[].webApiProxyobject否—出站JSON Web API专用故障代理:仅slack.com:443,固定loopbackTCP,保留SNI和证书校验,与Socket代理独立;上传域名不适用
slack.endpoints[].webApiProxy.portinteger是——
slack.endpoints[].streamingboolean否—Use native streaming replies when the target supports them.
slack.endpoints[].streamingIntervalMsinteger否—Reply stream update interval in milliseconds.
slack.endpoints[].nicknamestring | null否—账号昵称兜底
slack.endpoints[].profileobject否—账号资料兜底
slack.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
slack.endpoints[].profile.ageinteger | null否——
slack.endpoints[].profile.birthdaystring | null否——
slack.endpoints[].profile.signaturestring | null否——
slack.endpoints[].profile.avatarstring | null否——
slack.endpoints[].profile.interestsarray | null否——
slack.endpoints[].profile.biostring | null否——
slack.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
slack.streamingboolean否trueUse native streaming replies when the target supports them.
slack.streamingIntervalMsinteger否1000Reply stream update interval in milliseconds.
slack.nicknamestring | null否—账号昵称兜底
slack.profileobject否—账号资料兜底
slack.profile.genderstring | null: "male", "female", "other", "unknown", null否——
slack.profile.ageinteger | null否——
slack.profile.birthdaystring | null否——
slack.profile.signaturestring | null否——
slack.profile.avatarstring | null否——
slack.profile.interestsarray | null否——
slack.profile.biostring | null否——

telegram ​

plugins/adapters/telegram/schema.json

路径类型必填默认值说明
telegram.pollingboolean否trueLong-poll getUpdates (default). Set false for webhook via httpHostToken.
telegram.webhookobject否—Webhook settings when polling is false.
telegram.webhook.domainstring否——
telegram.webhook.pathstring否"/telegram/webhook"—
telegram.webhook.secretTokenstring否—Verified via X-Telegram-Bot-Api-Secret-Token.
telegram.allowedUpdatesarray<string>否["message","callback_query"]—
telegram.apiBaseUrlstring否"https://api.telegram.org"—
telegram.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
telegram.endpoints[].tokenstring是—Telegram bot token
telegram.endpoints[].pollingboolean否——
telegram.endpoints[].webhookobject否——
telegram.endpoints[].webhook.domainstring否——
telegram.endpoints[].webhook.pathstring否——
telegram.endpoints[].webhook.secretTokenstring否——
telegram.endpoints[].allowedUpdatesarray<string>否——
telegram.endpoints[].apiBaseUrlstring否——
telegram.endpoints[].commandPrefixstring否——
telegram.endpoints[].idstring是—Telegram bot name
telegram.endpoints[].streamingboolean否—Publish supported replies while generating. Set false to send only complete replies.
telegram.endpoints[].streamingIntervalMsnumber否—Minimum delay in milliseconds between reply updates; the first update is immediate.
telegram.endpoints[].nicknamestring | null否—账号昵称兜底
telegram.endpoints[].profileobject否—账号资料兜底
telegram.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
telegram.endpoints[].profile.ageinteger | null否——
telegram.endpoints[].profile.birthdaystring | null否——
telegram.endpoints[].profile.signaturestring | null否——
telegram.endpoints[].profile.avatarstring | null否——
telegram.endpoints[].profile.interestsarray | null否——
telegram.endpoints[].profile.biostring | null否——
telegram.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
telegram.streamingboolean否truePublish supported replies while generating. Set false to send only complete replies.
telegram.streamingIntervalMsnumber否500Minimum delay in milliseconds between reply updates; the first update is immediate.
telegram.nicknamestring | null否—账号昵称兜底
telegram.profileobject否—账号资料兜底
telegram.profile.genderstring | null: "male", "female", "other", "unknown", null否——
telegram.profile.ageinteger | null否——
telegram.profile.birthdaystring | null否——
telegram.profile.signaturestring | null否——
telegram.profile.avatarstring | null否——
telegram.profile.interestsarray | null否——
telegram.profile.biostring | null否——

wechat-mp ​

plugins/adapters/wechat-mp/schema.json

路径类型必填默认值说明
wechat-mp.pathstring否"/wechat/webhook"—
wechat-mp.encryptboolean否false—
wechat-mp.encryptModestring: "plain", "compatible", "secure"否—Default follows encrypt: 'plain' when encrypt=false, 'compatible' when encrypt=true
wechat-mp.replyModestring: "passive", "customer_service"否"passive"—
wechat-mp.passiveReplyTimeoutMsnumber否4500—
wechat-mp.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
wechat-mp.endpoints[].appIdstring是—WeChat MP app ID
wechat-mp.endpoints[].appSecretstring是—WeChat MP app secret
wechat-mp.endpoints[].tokenstring是—WeChat MP callback token
wechat-mp.endpoints[].encodingAESKeystring否—WeChat MP encoding AES key
wechat-mp.endpoints[].pathstring否——
wechat-mp.endpoints[].encryptboolean否——
wechat-mp.endpoints[].encryptModestring: "plain", "compatible", "secure"否——
wechat-mp.endpoints[].replyModestring: "passive", "customer_service"否——
wechat-mp.endpoints[].passiveReplyTimeoutMsnumber否——
wechat-mp.endpoints[].commandPrefixstring否——
wechat-mp.endpoints[].idstring是—WeChat MP bot name
wechat-mp.endpoints[].nicknamestring | null否—账号昵称兜底
wechat-mp.endpoints[].profileobject否—账号资料兜底
wechat-mp.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
wechat-mp.endpoints[].profile.ageinteger | null否——
wechat-mp.endpoints[].profile.birthdaystring | null否——
wechat-mp.endpoints[].profile.signaturestring | null否——
wechat-mp.endpoints[].profile.avatarstring | null否——
wechat-mp.endpoints[].profile.interestsarray | null否——
wechat-mp.endpoints[].profile.biostring | null否——
wechat-mp.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
wechat-mp.nicknamestring | null否—账号昵称兜底
wechat-mp.profileobject否—账号资料兜底
wechat-mp.profile.genderstring | null: "male", "female", "other", "unknown", null否——
wechat-mp.profile.ageinteger | null否——
wechat-mp.profile.birthdaystring | null否——
wechat-mp.profile.signaturestring | null否——
wechat-mp.profile.avatarstring | null否——
wechat-mp.profile.interestsarray | null否——
wechat-mp.profile.biostring | null否——

wecom ​

plugins/adapters/wecom/schema.json

路径类型必填默认值说明
wecom.webhookPathstring否"/wecom/callback"—
wecom.apiBaseUrlstring否"https://qyapi.weixin.qq.com"—
wecom.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
wecom.endpoints[].corpIdstring是—WeCom corp ID
wecom.endpoints[].agentSecretstring是—WeCom agent secret
wecom.endpoints[].tokenstring是—WeCom callback token
wecom.endpoints[].encodingAESKeystring是—WeCom encoding AES key
wecom.endpoints[].webhookPathstring否——
wecom.endpoints[].apiBaseUrlstring否——
wecom.endpoints[].commandPrefixstring否——
wecom.endpoints[].idstring是—WeCom bot name
wecom.endpoints[].agentIdstring是—企业微信应用 AgentId(非应用 Secret)
wecom.endpoints[].nicknamestring | null否—账号昵称兜底
wecom.endpoints[].profileobject否—账号资料兜底
wecom.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
wecom.endpoints[].profile.ageinteger | null否——
wecom.endpoints[].profile.birthdaystring | null否——
wecom.endpoints[].profile.signaturestring | null否——
wecom.endpoints[].profile.avatarstring | null否——
wecom.endpoints[].profile.interestsarray | null否——
wecom.endpoints[].profile.biostring | null否——
wecom.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
wecom.nicknamestring | null否—账号昵称兜底
wecom.profileobject否—账号资料兜底
wecom.profile.genderstring | null: "male", "female", "other", "unknown", null否——
wecom.profile.ageinteger | null否——
wecom.profile.birthdaystring | null否——
wecom.profile.signaturestring | null否——
wecom.profile.avatarstring | null否——
wecom.profile.interestsarray | null否——
wecom.profile.biostring | null否——

plugins/adapters/weixin-ilink/schema.json

路径类型必填默认值说明
weixin-ilink.botAgentstring否——
weixin-ilink.baseUrlstring否"https://ilinkai.weixin.qq.com"—
weixin-ilink.cdnBaseUrlstring否"https://novac2c.cdn.weixin.qq.com/c2c"—
weixin-ilink.longPollTimeoutMsnumber否35000—
weixin-ilink.dataDirstring否"data/weixin-ilink"Endpoint state root for credentials, cursors, context tokens, and media
weixin-ilink.endpointsarray<object>是—多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(id 必填,其余覆盖顶层)
weixin-ilink.endpoints[].botTokenstring否—iLink bot token; omit to load endpoint state or start QR login
weixin-ilink.endpoints[].idstring是—Weixin iLink bot name
weixin-ilink.endpoints[].botAgentstring否——
weixin-ilink.endpoints[].baseUrlstring否——
weixin-ilink.endpoints[].cdnBaseUrlstring否——
weixin-ilink.endpoints[].longPollTimeoutMsnumber否——
weixin-ilink.endpoints[].dataDirstring否—Endpoint state root
weixin-ilink.endpoints[].commandPrefixstring否—本 endpoint 的命令前缀
weixin-ilink.endpoints[].nicknamestring | null否—账号昵称兜底
weixin-ilink.endpoints[].profileobject否—账号资料兜底
weixin-ilink.endpoints[].profile.genderstring | null: "male", "female", "other", "unknown", null否——
weixin-ilink.endpoints[].profile.ageinteger | null否——
weixin-ilink.endpoints[].profile.birthdaystring | null否——
weixin-ilink.endpoints[].profile.signaturestring | null否——
weixin-ilink.endpoints[].profile.avatarstring | null否——
weixin-ilink.endpoints[].profile.interestsarray | null否——
weixin-ilink.endpoints[].profile.biostring | null否——
weixin-ilink.commandPrefixstring否""命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖
weixin-ilink.nicknamestring | null否—账号昵称兜底
weixin-ilink.profileobject否—账号资料兜底
weixin-ilink.profile.genderstring | null: "male", "female", "other", "unknown", null否——
weixin-ilink.profile.ageinteger | null否——
weixin-ilink.profile.birthdaystring | null否——
weixin-ilink.profile.signaturestring | null否——
weixin-ilink.profile.avatarstring | null否——
weixin-ilink.profile.interestsarray | null否——
weixin-ilink.profile.biostring | null否——

process-monitor ​

plugins/features/process-monitor/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;字段仅全局;会话层字段: 仅开关

路径类型必填默认值说明
process-monitor.enabledboolean否true是否启用进程监控
process-monitor.notifyOnStartboolean否true首次启动时通知
process-monitor.notifyOnRestartboolean否true正常重启时通知
process-monitor.notifyOnCrashboolean否true异常崩溃重启时通知
process-monitor.notifyChannelsarray<object>否[]通知渠道(slice-1 仅 webhook 生效)
process-monitor.notifyChannels[].typestring: "webhook"是—目前只支持 webhook
process-monitor.notifyChannels[].targetstring是—Webhook 地址

blackjack ​

plugins/games/blackjack/schema.json

该 Schema 没有声明字段。

dice-duel ​

plugins/games/dice-duel/schema.json

该 Schema 没有声明字段。

dungeon-expedition ​

plugins/games/dungeon-expedition/schema.json

该 Schema 没有声明字段。

guess-number ​

plugins/games/guess-number/schema.json

该 Schema 没有声明字段。

hub ​

plugins/games/hub/schema.json

该 Schema 没有声明字段。

idiom-chain ​

plugins/games/idiom-chain/schema.json

该 Schema 没有声明字段。

roulette ​

plugins/games/roulette/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;字段仅全局;会话层字段: 仅开关

路径类型必填默认值说明
roulette.chambersinteger否6弹巢数量,其中一发是实弹
roulette.maxPlayersinteger否6单局最多玩家数
roulette.turnTimeoutSecondsinteger否60轮到的玩家超过这个秒数不开枪,判负
roulette.lobbyTimeoutSecondsinteger否300开局后超过这个秒数仍未开始,自动解散
roulette.muteSecondsinteger否60开启禁言惩罚的群里,输家被禁言的秒数(每个群默认关闭)

rps ​

plugins/games/rps/schema.json

该 Schema 没有声明字段。

text-adventure ​

plugins/games/text-adventure/schema.json

该 Schema 没有声明字段。

tic-tac-toe ​

plugins/games/tic-tac-toe/schema.json

该 Schema 没有声明字段。

word-riddle ​

plugins/games/word-riddle/schema.json

该 Schema 没有声明字段。

activity-feedback ​

plugins/services/activity-feedback/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;字段仅全局;会话层字段: 仅开关

路径类型必填默认值说明
activity-feedback.enabledboolean否true是否启用当前活动反馈插件实例。
activity-feedback.defaultsobject否—所有平台与 Endpoint 的默认策略。
activity-feedback.defaults.enabledboolean否true是否启用当前策略层。
activity-feedback.defaults.phasesobject否—按生命周期 phase 配置反馈策略。
activity-feedback.defaults.phases.queuedobject否——
activity-feedback.defaults.phases.queued.privateobject否——
activity-feedback.defaults.phases.queued.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.queued.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.queued.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.queued.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.queued.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.queued.private.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.queued.groupobject否——
activity-feedback.defaults.phases.queued.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.queued.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.queued.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.queued.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.queued.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.queued.group.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.queued.channelobject否——
activity-feedback.defaults.phases.queued.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.queued.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.queued.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.queued.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.queued.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.queued.channel.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.activeobject否——
activity-feedback.defaults.phases.active.privateobject否——
activity-feedback.defaults.phases.active.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.active.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.active.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.active.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.active.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.active.private.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.active.groupobject否——
activity-feedback.defaults.phases.active.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.active.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.active.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.active.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.active.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.active.group.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.active.channelobject否——
activity-feedback.defaults.phases.active.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.active.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.active.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.active.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.active.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.active.channel.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.thinkingobject否——
activity-feedback.defaults.phases.thinking.privateobject否——
activity-feedback.defaults.phases.thinking.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.thinking.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.thinking.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.thinking.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.thinking.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.thinking.private.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.thinking.groupobject否——
activity-feedback.defaults.phases.thinking.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.thinking.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.thinking.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.thinking.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.thinking.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.thinking.group.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.thinking.channelobject否——
activity-feedback.defaults.phases.thinking.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.thinking.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.thinking.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.thinking.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.thinking.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.thinking.channel.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.schedule_startobject否——
activity-feedback.defaults.phases.schedule_start.privateobject否——
activity-feedback.defaults.phases.schedule_start.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.schedule_start.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.schedule_start.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.schedule_start.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.schedule_start.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.schedule_start.private.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.schedule_start.groupobject否——
activity-feedback.defaults.phases.schedule_start.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.schedule_start.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.schedule_start.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.schedule_start.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.schedule_start.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.schedule_start.group.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.schedule_start.channelobject否——
activity-feedback.defaults.phases.schedule_start.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.schedule_start.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.schedule_start.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.schedule_start.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.schedule_start.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.schedule_start.channel.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.schedule_finishobject否——
activity-feedback.defaults.phases.schedule_finish.privateobject否——
activity-feedback.defaults.phases.schedule_finish.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.schedule_finish.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.schedule_finish.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.schedule_finish.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.schedule_finish.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.schedule_finish.private.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.schedule_finish.groupobject否——
activity-feedback.defaults.phases.schedule_finish.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.schedule_finish.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.schedule_finish.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.schedule_finish.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.schedule_finish.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.schedule_finish.group.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.schedule_finish.channelobject否——
activity-feedback.defaults.phases.schedule_finish.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.schedule_finish.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.schedule_finish.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.schedule_finish.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.schedule_finish.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.schedule_finish.channel.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.schedule_errorobject否——
activity-feedback.defaults.phases.schedule_error.privateobject否——
activity-feedback.defaults.phases.schedule_error.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.schedule_error.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.schedule_error.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.schedule_error.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.schedule_error.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.schedule_error.private.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.schedule_error.groupobject否——
activity-feedback.defaults.phases.schedule_error.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.schedule_error.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.schedule_error.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.schedule_error.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.schedule_error.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.schedule_error.group.platformConfigobject否—平台特定选项。
activity-feedback.defaults.phases.schedule_error.channelobject否——
activity-feedback.defaults.phases.schedule_error.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.defaults.phases.schedule_error.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.defaults.phases.schedule_error.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.defaults.phases.schedule_error.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.defaults.phases.schedule_error.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.defaults.phases.schedule_error.channel.platformConfigobject否—平台特定选项。
activity-feedback.platformsobject否—按平台名覆盖;值的结构与 defaults 相同。
activity-feedback.platforms.<platform>.enabledboolean否true是否启用当前策略层。
activity-feedback.platforms.<platform>.phasesobject否—按生命周期 phase 配置反馈策略。
activity-feedback.platforms.<platform>.phases.queuedobject否——
activity-feedback.platforms.<platform>.phases.queued.privateobject否——
activity-feedback.platforms.<platform>.phases.queued.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.queued.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.queued.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.queued.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.queued.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.queued.private.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.queued.groupobject否——
activity-feedback.platforms.<platform>.phases.queued.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.queued.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.queued.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.queued.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.queued.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.queued.group.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.queued.channelobject否——
activity-feedback.platforms.<platform>.phases.queued.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.queued.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.queued.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.queued.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.queued.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.queued.channel.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.activeobject否——
activity-feedback.platforms.<platform>.phases.active.privateobject否——
activity-feedback.platforms.<platform>.phases.active.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.active.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.active.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.active.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.active.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.active.private.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.active.groupobject否——
activity-feedback.platforms.<platform>.phases.active.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.active.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.active.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.active.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.active.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.active.group.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.active.channelobject否——
activity-feedback.platforms.<platform>.phases.active.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.active.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.active.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.active.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.active.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.active.channel.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.thinkingobject否——
activity-feedback.platforms.<platform>.phases.thinking.privateobject否——
activity-feedback.platforms.<platform>.phases.thinking.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.thinking.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.thinking.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.thinking.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.thinking.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.thinking.private.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.thinking.groupobject否——
activity-feedback.platforms.<platform>.phases.thinking.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.thinking.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.thinking.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.thinking.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.thinking.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.thinking.group.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.thinking.channelobject否——
activity-feedback.platforms.<platform>.phases.thinking.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.thinking.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.thinking.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.thinking.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.thinking.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.thinking.channel.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.schedule_startobject否——
activity-feedback.platforms.<platform>.phases.schedule_start.privateobject否——
activity-feedback.platforms.<platform>.phases.schedule_start.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.schedule_start.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.schedule_start.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.schedule_start.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.schedule_start.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.schedule_start.private.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.schedule_start.groupobject否——
activity-feedback.platforms.<platform>.phases.schedule_start.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.schedule_start.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.schedule_start.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.schedule_start.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.schedule_start.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.schedule_start.group.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.schedule_start.channelobject否——
activity-feedback.platforms.<platform>.phases.schedule_start.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.schedule_start.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.schedule_start.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.schedule_start.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.schedule_start.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.schedule_start.channel.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.schedule_finishobject否——
activity-feedback.platforms.<platform>.phases.schedule_finish.privateobject否——
activity-feedback.platforms.<platform>.phases.schedule_finish.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.schedule_finish.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.schedule_finish.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.schedule_finish.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.schedule_finish.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.schedule_finish.private.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.schedule_finish.groupobject否——
activity-feedback.platforms.<platform>.phases.schedule_finish.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.schedule_finish.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.schedule_finish.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.schedule_finish.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.schedule_finish.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.schedule_finish.group.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.schedule_finish.channelobject否——
activity-feedback.platforms.<platform>.phases.schedule_finish.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.schedule_finish.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.schedule_finish.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.schedule_finish.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.schedule_finish.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.schedule_finish.channel.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.schedule_errorobject否——
activity-feedback.platforms.<platform>.phases.schedule_error.privateobject否——
activity-feedback.platforms.<platform>.phases.schedule_error.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.schedule_error.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.schedule_error.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.schedule_error.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.schedule_error.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.schedule_error.private.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.schedule_error.groupobject否——
activity-feedback.platforms.<platform>.phases.schedule_error.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.schedule_error.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.schedule_error.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.schedule_error.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.schedule_error.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.schedule_error.group.platformConfigobject否—平台特定选项。
activity-feedback.platforms.<platform>.phases.schedule_error.channelobject否——
activity-feedback.platforms.<platform>.phases.schedule_error.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.platforms.<platform>.phases.schedule_error.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.platforms.<platform>.phases.schedule_error.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.platforms.<platform>.phases.schedule_error.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.platforms.<platform>.phases.schedule_error.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.platforms.<platform>.phases.schedule_error.channel.platformConfigobject否—平台特定选项。
activity-feedback.endpointsobject否—按 platform:endpointKey 覆盖;值的结构与 defaults 相同。
activity-feedback.endpoints.<platform:endpointKey>.enabledboolean否true是否启用当前策略层。
activity-feedback.endpoints.<platform:endpointKey>.phasesobject否—按生命周期 phase 配置反馈策略。
activity-feedback.endpoints.<platform:endpointKey>.phases.queuedobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.privateobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.private.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.groupobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.group.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.channelobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.queued.channel.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.activeobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.active.privateobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.active.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.private.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.groupobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.active.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.group.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.channelobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.active.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.active.channel.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinkingobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.privateobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.private.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.groupobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.group.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.channelobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.thinking.channel.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_startobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.privateobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.private.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.groupobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.group.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.channelobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_start.channel.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finishobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.privateobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.private.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.groupobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.group.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.channelobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_finish.channel.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_errorobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.privateobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.private.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.groupobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.group.platformConfigobject否—平台特定选项。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.channelobject否——
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.endpoints.<platform:endpointKey>.phases.schedule_error.channel.platformConfigobject否—平台特定选项。
activity-feedback.scheduleobject否—仅用于 Schedule 的开始、完成与失败反馈。
activity-feedback.schedule.phasesobject否——
activity-feedback.schedule.phases.startobject否——
activity-feedback.schedule.phases.start.privateobject否——
activity-feedback.schedule.phases.start.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.schedule.phases.start.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.schedule.phases.start.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.schedule.phases.start.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.schedule.phases.start.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.schedule.phases.start.private.platformConfigobject否—平台特定选项。
activity-feedback.schedule.phases.start.groupobject否——
activity-feedback.schedule.phases.start.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.schedule.phases.start.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.schedule.phases.start.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.schedule.phases.start.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.schedule.phases.start.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.schedule.phases.start.group.platformConfigobject否—平台特定选项。
activity-feedback.schedule.phases.start.channelobject否——
activity-feedback.schedule.phases.start.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.schedule.phases.start.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.schedule.phases.start.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.schedule.phases.start.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.schedule.phases.start.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.schedule.phases.start.channel.platformConfigobject否—平台特定选项。
activity-feedback.schedule.phases.finishobject否——
activity-feedback.schedule.phases.finish.privateobject否——
activity-feedback.schedule.phases.finish.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.schedule.phases.finish.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.schedule.phases.finish.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.schedule.phases.finish.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.schedule.phases.finish.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.schedule.phases.finish.private.platformConfigobject否—平台特定选项。
activity-feedback.schedule.phases.finish.groupobject否——
activity-feedback.schedule.phases.finish.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.schedule.phases.finish.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.schedule.phases.finish.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.schedule.phases.finish.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.schedule.phases.finish.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.schedule.phases.finish.group.platformConfigobject否—平台特定选项。
activity-feedback.schedule.phases.finish.channelobject否——
activity-feedback.schedule.phases.finish.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.schedule.phases.finish.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.schedule.phases.finish.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.schedule.phases.finish.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.schedule.phases.finish.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.schedule.phases.finish.channel.platformConfigobject否—平台特定选项。
activity-feedback.schedule.phases.errorobject否——
activity-feedback.schedule.phases.error.privateobject否——
activity-feedback.schedule.phases.error.private.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.schedule.phases.error.private.emojistring否—type=reaction 时使用的回应值。
activity-feedback.schedule.phases.error.private.messagestring否—type=message 时使用的状态文本。
activity-feedback.schedule.phases.error.private.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.schedule.phases.error.private.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.schedule.phases.error.private.platformConfigobject否—平台特定选项。
activity-feedback.schedule.phases.error.groupobject否——
activity-feedback.schedule.phases.error.group.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.schedule.phases.error.group.emojistring否—type=reaction 时使用的回应值。
activity-feedback.schedule.phases.error.group.messagestring否—type=message 时使用的状态文本。
activity-feedback.schedule.phases.error.group.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.schedule.phases.error.group.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.schedule.phases.error.group.platformConfigobject否—平台特定选项。
activity-feedback.schedule.phases.error.channelobject否——
activity-feedback.schedule.phases.error.channel.typestring: "reaction", "message", "typing", "none"否—该 phase 的呈现方式。
activity-feedback.schedule.phases.error.channel.emojistring否—type=reaction 时使用的回应值。
activity-feedback.schedule.phases.error.channel.messagestring否—type=message 时使用的状态文本。
activity-feedback.schedule.phases.error.channel.autoRemoveboolean否truephase 停止后是否自动移除反馈。
activity-feedback.schedule.phases.error.channel.removeDelaynumber否—自动移除前等待的毫秒数;负值会在运行时归一化为 0。
activity-feedback.schedule.phases.error.channel.platformConfigobject否—平台特定选项。

typesafe ​

plugins/services/typesafe/schema.json

该 Schema 没有声明字段。

60s ​

plugins/utils/60s/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;字段仅全局;会话层字段: 仅开关

路径类型必填默认值说明
60s.apiBasestring否"https://60s.viki.moe"60s API 服务的基础地址

answers ​

plugins/utils/answers/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;全部字段可在适配器 / 账号层覆盖;会话层字段: dailyStable、quizTimeoutSeconds、enableDrivingQuiz;群内自助: quizTimeoutSeconds、enableDrivingQuiz

路径类型必填默认值说明
answers.dailyStableboolean否false同一用户同一天问同一个问题时,答案之书给出相同答案
answers.timezonestring否"Asia/Shanghai"dailyStable 判断「同一天」所用的 IANA 时区
answers.quizTimeoutSecondsnumber否120出题后等待作答的秒数,超时题目作废
answers.enableDrivingQuizboolean否true启用「科目一」交规小测(原创题面,仅供娱乐参考)

bilibili ​

plugins/utils/bilibili/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;字段仅全局;会话层字段: 仅开关

路径类型必填默认值说明
bilibili.pollCronstring否"0 * * * * *"轮询频率(6 段 Cron,默认每 60 秒)
bilibili.jitterMsnumber否15000每轮轮询前的随机延迟上限(毫秒)
bilibili.requestGapMsnumber否1500同一轮内相邻动态请求的间隔(毫秒)
bilibili.maxBackoffMinutesnumber否30接口失败或风控时指数退避的上限(分钟)
bilibili.maxPerChannelnumber否20每个会话最多订阅的 UP 主数量
bilibili.timeoutnumber否10000单次 HTTP 请求超时(毫秒)
bilibili.liveboolean否true是否轮询开播状态
bilibili.dynamicboolean否true是否轮询 UP 主动态
bilibili.cookiestring否""可选的 B 站 Cookie(如 SESSDATA=...),风控严格时使用;请写成 ${BILIBILI_COOKIE},不要把凭据直接写进配置

calendar ​

plugins/utils/calendar/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;字段仅全局;会话层字段: 仅开关

路径类型必填默认值说明
calendar.provider"none" | "caldav" | "google" | "microsoft"否"none"日历后端;none 时工具返回未启用提示
calendar.timezonestring否"Asia/Manila"解释无偏移时间与展示用的 IANA 时区
calendar.work_day_startstring否"09:00"空闲时段计算使用的每日开始时间(HH:MM)
calendar.work_day_endstring否"18:00"空闲时段计算使用的每日结束时间(HH:MM)
calendar.oauth_redirect_base_urlstring否""聊天授权回调的外部基础地址(如 https://bot.example.com);留空时使用 zhin HTTP Host 的本机地址
calendar.oauth_callback_pathstring否"/calendar/oauth/callback"聊天授权回调路由,挂在 zhin HTTP Host 上;反向代理/隧道只转发部分路径时可调整
calendar.caldavobject否——
calendar.caldav.enabledboolean否false—
calendar.caldav.calendar_urlstring否""日历 collection URL
calendar.caldav.usernamestring否""—
calendar.caldav.passwordstring否""建议写成环境变量引用
calendar.googleobject否——
calendar.google.enabledboolean否false—
calendar.google.client_idstring否""$
calendar.google.client_secretstring否""$
calendar.google.refresh_tokenstring否""${GOOGLE_CALENDAR_REFRESH_TOKEN};用 auth google 获取
calendar.google.calendar_idstring否"primary"日历 ID,默认 primary;可换成其它日历的 id
calendar.google.token_filestring否""可选:持久化轮换后的 refresh_token 的 JSON 路径(如 data/calendar-google-token.json)
calendar.microsoftobject否——
calendar.microsoft.enabledboolean否false—
calendar.microsoft.client_idstring否""$
calendar.microsoft.client_secretstring否""可选;公共客户端可留空。$
calendar.microsoft.refresh_tokenstring否""${MS_GRAPH_REFRESH_TOKEN};用 auth microsoft 获取
calendar.microsoft.tenantstring否"common"Azure tenant,默认 common
calendar.microsoft.calendar_idstring否""留空或 primary/me = 默认日历;否则为 Graph calendar id
calendar.microsoft.token_filestring否""可选:持久化轮换后的 refresh_token 的 JSON 路径(如 data/calendar-ms-token.json)

code-runner ​

plugins/utils/code-runner/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;字段仅全局;会话层字段: 仅开关

路径类型必填默认值说明
code-runner.provider"piston" | "glot"否"piston"代码运行后端协议:piston(自建 Piston 的 /api/v2/execute)或 glot(glot.io 兼容的 /api/run)
code-runner.endpointstring否""代码运行后端地址。piston 填完整执行地址(如 http://127.0.0.1:2000/api/v2/execute);glot 填 run 前缀(如 https://glot.io/api/run)。留空时命令提示未配置;可写 $
code-runner.tokenstring否—后端访问令牌(可选),建议写 ${CODE_RUNNER_TOKEN}。piston 作为 Authorization 头原样发送,glot 发送 Authorization: Token <token>

content-moderation ​

plugins/utils/content-moderation/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;字段仅全局;会话层字段: 仅开关

路径类型必填默认值说明
content-moderation.groupModerationarray<object>否[]自动广告/辱骂审核的精确范围;未配置时关闭。需要 AI、原子持久状态和适配器群管支持。禁言 / 踢人交给 Agent 群规(ADR 0039),名单内的群会生成待确认的默认规则,确认前只提醒 / 警告。
content-moderation.groupModeration[].adapterstring是——
content-moderation.groupModeration[].endpointstring是——
content-moderation.groupModeration[].accountstring是——
content-moderation.groupModeration[].groupstring是——
content-moderation.enabledboolean否true总开关
content-moderation.onErrorstring: "open", "closed"否"open"审查源失败时的全局默认策略:open=视为通过,closed=视为 critical
content-moderation.maskCharstring否"*"文本打码字符
content-moderation.replyTemplatestring否—reply 动作时的提示文案;省略时按本次消息语言选择默认文案,显式文本保持原样
content-moderation.inboundobject否——
content-moderation.inbound.enabledboolean否true—
content-moderation.inbound.bypassarray<string>否["owner","platform:admin"]满足任一 permit 表达式的发送者跳过入站审查(ADR 0056 §5 内置 DSL,与命令 / 工具同一评估器)。内容审核是平台功能,默认 zhin owner 或平台群主 / 管理员(platform:admin);[] 表示都审
content-moderation.inbound.whitelistobject否——
content-moderation.inbound.whitelist.userIdsarray<string>否[]这些用户发送的消息不审查
content-moderation.inbound.whitelist.conversationIdsarray<string>否[]这些会话中的消息不审查
content-moderation.outboundobject否——
content-moderation.outbound.enabledboolean否true—
content-moderation.outbound.bypassboolean否false为 true 时跳过出站审查
content-moderation.actionsobject否—severity → 动作(字符串或数组);缺省用偏严默认表
content-moderation.actions.passstring: "allow", "log", "reply", "redact", "drop", "recall" | array<string: "allow", "log", "reply", "redact", "drop", "recall">否——
content-moderation.actions.lowstring: "allow", "log", "reply", "redact", "drop", "recall" | array<string: "allow", "log", "reply", "redact", "drop", "recall">否——
content-moderation.actions.mediumstring: "allow", "log", "reply", "redact", "drop", "recall" | array<string: "allow", "log", "reply", "redact", "drop", "recall">否——
content-moderation.actions.highstring: "allow", "log", "reply", "redact", "drop", "recall" | array<string: "allow", "log", "reply", "redact", "drop", "recall">否——
content-moderation.actions.criticalstring: "allow", "log", "reply", "redact", "drop", "recall" | array<string: "allow", "log", "reply", "redact", "drop", "recall">否——
content-moderation.sourcesarray<object>否[]按顺序执行的审查源:本地词库或 HTTP 审查服务
content-moderation.sources[].idstring是——
content-moderation.sources[].typestring: "local", "http"是—local 为本地词库,http 为外部审查服务
content-moderation.sources[].enabledboolean否true—
content-moderation.sources[].onErrorstring: "open", "closed"否—此审查源失败时的策略,未填写时使用全局设置
content-moderation.sources[].includeBuiltinboolean否true是否合并内置分级违禁词词库
content-moderation.sources[].wordsarray<string | object>否[]自定义词:字符串(用 defaultSeverity)或
content-moderation.sources[].wordFilesarray<string>否[]词库文件;行格式 word / severity:word / word|severity
content-moderation.sources[].defaultSeveritystring: "low", "medium", "high", "critical"否"high"未标注分级的自定义词默认 severity
content-moderation.sources[].severitystring: "low", "medium", "high", "critical"否"high"兼容旧字段,等同 defaultSeverity
content-moderation.sources[].urlstring否—HTTP 审查服务的地址
content-moderation.sources[].headersobject否—发送给审查服务的附加请求头
content-moderation.sources[].timeoutMsnumber否5000单次审查请求的超时
content-moderation.sources[].forceUploadboolean否false强制下载图片后上传,不传 URL

earthquake ​

plugins/utils/earthquake/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;字段仅全局;会话层字段: 仅开关

路径类型必填默认值说明
earthquake.sourcesarray<string: "cenc", "usgs">否["cenc","usgs"]启用的数据源及优先顺序;合并同一地震时排在前面的数据源提供地点文字,某个数据源失败时由其余数据源兜底
earthquake.cencUrlsarray<string>否["https://api.wolfx.jp/cenc_eqlist.json","https://ceic.ac.cn/data/data.json"]CENC 地震目录地址,按顺序尝试(首个为主源,其余为备用镜像);仅支持 HTTPS,最多 5 个
earthquake.usgsFeedstring: "significant_hour", "significant_day", "4.5_hour", "4.5_day", "2.5_hour", "2.5_day", "1.0_hour", "1.0_day"否"2.5_day"USGS GeoJSON 汇总源名称(震级下限_时间范围)
earthquake.pollCronstring否"0 */2 * * * *"订阅轮询频率(6 段 Cron:秒 分 时 日 月 周)
earthquake.timezonestring否"Asia/Shanghai"显示发震时刻使用的 IANA 时区
earthquake.requestTimeoutMsnumber否10000单次 HTTP 请求超时(毫秒)
earthquake.maxRetriesnumber否2网络错误、超时、429 与 5xx 的重试次数(不含首次请求)
earthquake.retryBaseDelayMsnumber否1000指数退避的首次等待(毫秒),每次重试翻倍并加入随机抖动
earthquake.retryMaxDelayMsnumber否30000单次退避或 Retry-After 等待上限(毫秒);服务端要求更久时本轮放弃并冷却该数据源
earthquake.defaultMinMagnitudenumber否5订阅未指定震级时使用的最小震级
earthquake.queryMinMagnitudenumber否3「地震」查询未指定震级时使用的最小震级
earthquake.queryLimitnumber否5「地震」查询默认列出的条数
earthquake.maxEventAgeMinutesnumber否60只推送发震时间在此分钟数以内的地震,避免推送迟到或重放的旧事件
earthquake.pushLimitnumber否3每个会话在一个限流窗口内最多推送的消息数
earthquake.pushWindowMinutesnumber否10推送限流窗口长度(分钟)
earthquake.maxEventsPerMessagenumber否5单条推送消息最多列出的地震数,其余以数量概括
earthquake.maxSubscriptionsnumber否100本实例所有会话的订阅总数上限(每个会话最多一个订阅)

group-suite ​

plugins/utils/group-suite/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;仅全局(其余字段可在适配器 / 账号层覆盖): keywordReply、teachAllowRegex、welcomeConversations、ephemeralKeywords;会话层字段: welcomeMessage、basePointsMin、basePointsMax、streakBonus、streakCap、rankSize、teachMaxPerGroup、teachCooldownMs、teachPageSize;群内自助: welcomeMessage、rankSize、teachCooldownMs、teachPageSize

路径类型必填默认值说明
group-suite.keywordReplyboolean否false开启后按词库自动回复匹配的消息(只能在全局修改)
group-suite.basePointsMinnumber否10每次签到随机获得的基础积分下限
group-suite.basePointsMaxnumber否30每次签到随机获得的基础积分上限
group-suite.streakBonusnumber否5连续签到每多一天额外奖励的积分
group-suite.streakCapnumber否50连续签到额外奖励的最高积分
group-suite.rankSizenumber否10签到与发言排行榜显示的人数
group-suite.teachMaxPerGroupnumber否200每个群最多保存的问答条数
group-suite.teachCooldownMsnumber否3000同一成员两次教学之间的最短间隔
group-suite.teachAllowRegexboolean否false允许成员教学正则表达式规则。默认关闭:正则会对每条入站消息执行;只接受结构安全的表达式,并且只对不超过 200 字的消息尝试匹配。
group-suite.teachPageSizenumber否10teach-list 每页显示的问答条数
group-suite.welcomeMessagestring否""新成员入群时发送的文本,留空则关闭;{name} 和 {id} 代表新成员。
group-suite.welcomeConversationsarray<object>否—发送欢迎语的精确会话名单。不填写时欢迎所有群;填 [] 则不欢迎任何会话。未填写父容器或话题时只匹配没有它们的会话,不支持通配。
group-suite.welcomeConversations[].endpointobject是——
group-suite.welcomeConversations[].endpoint.adapterstring是——
group-suite.welcomeConversations[].endpoint.idstring是——
group-suite.welcomeConversations[].kindstring: "group"是——
group-suite.welcomeConversations[].idstring是——
group-suite.welcomeConversations[].parentobject否——
group-suite.welcomeConversations[].parent.kindstring: "private", "group", "channel"是——
group-suite.welcomeConversations[].parent.idstring是——
group-suite.welcomeConversations[].threadIdstring否——
group-suite.ephemeralKeywordsboolean否false显式使用不持久化的临时词库。为 false 时,自动回复要求启动时有数据库服务,词库管理在使用时要求持久状态服务。

ledger ​

plugins/utils/ledger/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;仅全局(其余字段可在适配器 / 账号层覆盖): timezone、reportTime;会话层字段: reportWhenEmpty

路径类型必填默认值说明
ledger.timezonestring否"Asia/Shanghai"计算今日、本周(周一开始)、本月与日报日期所用的 IANA 时区
ledger.reportTimestring否"22:00"记账日报的发送时间(HH:MM,按 timezone);只发给用「记账日报 开启」订阅的用户
ledger.reportWhenEmptyboolean否false当天没有记账时是否仍发送日报

plugins/utils/link-poster/schema.json

该 Schema 没有声明字段。

lottery ​

plugins/utils/lottery/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;字段仅全局;会话层字段: 仅开关

路径类型必填默认值说明
lottery.pickCountnumber否5每组推荐号码的个数
lottery.scheduleCronstring否"0 0 18 * * *"定时生成推荐的 6 段 Cron 表达式
lottery.historyLimitnumber否500分析时读取的最多历史开奖期数
lottery.scheduleEnabledboolean否true按定时推荐时间自动生成并推送推荐
lottery.backtestEnabledboolean否true生成推荐前用历史数据回测模型
lottery.backtestWindownumber否50回测抽样的最近期数
lottery.backtestRandomTrialsnumber否64回测时随机基线的模拟次数
lottery.backtestMinHistorynumber否30历史期数少于此值时不回测
lottery.backtestAdaptiveboolean否true回测时逐期调整模型权重
lottery.weightPersistEnabledboolean否true模拟或复盘后把权重写入数据库
lottery.weightHoldoutFallbackboolean否true近期 holdout 表现不如随机时,推荐改用默认权重
lottery.gamesarray<string>否["kl8","ssq","dlt","fc3d","pl3","pl5"]启用的彩票玩法(快乐8、双色球、大乐透、福彩3D、排列3、排列5)
lottery.pushTargetsarray<object>否[]定时与开奖报告的推送会话
lottery.pushTargets[].adapterstring是——
lottery.pushTargets[].endpointKeystring否——
lottery.pushTargets[].channelTypestring否"private"—
lottery.pushTargets[].channelIdstring是——
lottery.kl8object否——
lottery.kl8.pickCountnumber否5快乐8 每组推荐几个号码
lottery.kl8.recommendGroupsnumber否3快乐8 每次推荐的组数
lottery.kl8.groupStrategiesarray<string>否["balanced","hot","cold"]每组使用的选号策略(均衡、热号、冷号)

music ​

plugins/utils/music/schema.json

该 Schema 没有声明字段。

nettools ​

plugins/utils/nettools/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;字段仅全局;会话层字段: 仅开关

路径类型必填默认值说明
nettools.cooldownSecondsinteger否10每个用户的冷却秒数,所有网络工具命令和工具共用;0 表示不限制
nettools.requestTimeoutMsinteger否8000每次外部 HTTP 请求的超时
nettools.maxRetriesinteger否2网络错误、超时、429 与 5xx 的重试次数(指数退避并加入随机抖动)
nettools.pingMaxNodesinteger否4ping 使用的 check-host.net 探测节点数
nettools.pingPollIntervalMsinteger否2000两次查询 ping 结果之间的等待时间
nettools.pingMaxPollsinteger否5超过此次数仍未完成时返回部分结果
nettools.dohProvidersarray<string: "cloudflare", "alidns", "google">否["cloudflare","alidns","google"]DNS-over-HTTPS 服务,按顺序回退
nettools.priceListLimitinteger否8域名比价显示的注册商数量

qrcode ​

plugins/utils/qrcode/schema.json

该 Schema 没有声明字段。

reminder ​

plugins/utils/reminder/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;字段仅全局;会话层字段: 仅开关

路径类型必填默认值说明
reminder.timezonestring否"UTC"解释 create 自然时间并显示提醒的 IANA 时区;ISO 绝对时间仍须显式 offset
reminder.maxTasksnumber否20每实例聊天个人提醒池的活跃任务上限;与管理员池独立,降低上限不删除既有任务
reminder.adminMaxTasksnumber否20每实例管理员提醒池的活跃任务上限(待执行、暂停或未确认);与聊天池独立,两池总量可达上限之和
reminder.maxTasksPerSendernumber否10同一发送者在同一会话的任务上限
reminder.batchSizenumber否5每次扫描最多投递的任务数
reminder.missedGraceSecondsnumber否15周期轮次超过此延迟后跳过;停机期间不补历史轮次

repeater ​

plugins/utils/repeater/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;全部字段可在适配器 / 账号层覆盖;会话层字段: threshold、cooldown;群内自助: threshold

路径类型必填默认值说明
repeater.thresholdnumber否3触发复读的最少人数
repeater.cooldownnumber否30000同一群冷却时间 (ms)
repeater.maxLengthnumber否200消息长度上限

rss ​

plugins/utils/rss/schema.json

分层配置(ADR 0050 / 0055) — 层级: global、adapter、endpoint、conversation;字段仅全局;会话层字段: 仅开关

路径类型必填默认值说明
rss.pollCronstring否"0 */5 * * * *"轮询频率 (6 段 Cron 表达式)
rss.maxPerGroupnumber否30每个会话最多订阅的 feed 数量
rss.maxItemsnumber否5一次推送最多展示的文章条数,其余只提示数量
rss.timeoutnumber否15000拉取一次 feed 的超时
rss.allowPrivateNetworkboolean否false允许订阅回环/内网地址上的 feed(如自建 RSSHub)。默认拒绝,因为订阅地址来自聊天用户。

short-url ​

plugins/utils/short-url/schema.json

该 Schema 没有声明字段。