Skip to content

助手配置

每个 AI 助手对应 assistants/ 目录下的一个子目录。

目录结构

assistants/
├── player-helper/           # 助手 ID = player-helper
│   ├── config.yml           # 助手配置(必需)
│   ├── SOUL.md              # 助手灵魂/人格(必需)
│   ├── IDENTITY.md          # 助手身份信息(必需)
│   ├── PLAYER.md            # 玩家信息模板(可选)
│   ├── HEARTBEAT.md         # 心跳决策流程(可选,心跳助手用)
│   └── skills/              # 助手专属技能(可选)
│       └── my-skill/
│           └── SKILL.md
├── builder/
│   ├── config.yml
│   ├── SOUL.md
│   └── IDENTITY.md
└── my-custom-assistant/     # 你的自定义助手
    ├── config.yml
    ├── SOUL.md
    └── IDENTITY.md

创建新助手

1. 创建目录

assistants/my-guide/

2. 创建 config.yml

yaml
enabled: true
id: my-guide
name: "小导"
default: false
description: "服务器导游,带你了解服务器的方方面面。"

model:
  primary: ""          # 留空用全局默认
  fallbacks: []
  temperature: 0.7
  maxTokens: 2048
  thinkingLevel: "off"

tools:
  load:
    - execute-command

executeCommand:
  whitelist:
    - "tp"
    - "warp"
  blockChaining: true

skills:
  load:
    - server-wiki

memory:
  enabled: true
  autoUpdate: true

session:
  maxContextTokens: 8000
  compaction:
    enabled: true
    reserveTokens: 4000
    summaryModel: ""

permissions:
  allowedGroups: []
  deniedGroups: []
  cooldownSeconds: 5
  maxDailyUses: 100

interaction:
  chatTrigger: "@guide"
  npcId: ""
  type: ""
  npcGreeting: ""
  responseDelay: 500
  streaming: false

3. 创建引导文件

创建 SOUL.md 和 IDENTITY.md,参见引导文件

4. 重载配置

执行 /ark reload,新助手会立即可用。

config.yml 完整字段

基本信息

字段类型必填说明
enabledbool是否启用
idstring唯一 ID(默认取目录名)
namestring显示名称
defaultbool是否为默认助手(全局只能一个)
internalbool标记为内部助手(默认 false),详见内部助手
descriptionstring助手描述

model — 模型配置

覆盖 models.yml 中的全局默认值。

字段类型默认值说明
primarystring""主模型(留空用全局默认)
fallbackslist[]备选模型
temperaturefloat0.7采样温度
maxTokensint2048最大输出 token
thinkingLevelstring"off"思维链级别

tools — 工具配置

字段类型说明
loadlist需要加载的工具 key 列表

自动加载

skill-read 始终自动加载;memory-read / memory-writememory.enabled 控制。此处只需列出额外需要的工具。

内置工具列表参见工具系统

executeCommand — 命令执行

仅对 execute-command 工具生效。

字段类型默认值说明
whitelistlist[]console 权限命令白名单
blockChainingbooltrue阻止链式操作符

白名单中的命令以 console(OP)权限执行,不在白名单中的命令以玩家权限执行。

skills — 技能配置

字段类型说明
loadlist需要加载的技能名称列表

技能对应 skills/ 目录下的文档,参见技能系统

memory — 记忆配置

字段类型默认值说明
enabledbooltrue启用长期记忆
autoUpdatebooltrue允许 AI 自动记录

session — 会话配置

字段类型默认值说明
maxContextTokensint8000历史最大 token(0 = 用全局默认)
compaction.enabledbooltrue启用压缩
compaction.reserveTokensint4000压缩保留 token
compaction.summaryModelstring""压缩用模型(留空用主模型)

permissions — 权限配置

字段类型默认值说明
allowedGroupslist[]允许使用的权限组(空 = 所有人)
deniedGroupslist[]禁止使用的权限组(优先于 allowed)
cooldownSecondsint5冷却时间(秒)
maxDailyUsesint100每日限额(0 = 无限)

interaction — 交互配置

字段类型默认值说明
chatTriggerstring聊天触发前缀(如 @helper
npcIdstring""绑定的 NPC ID
typestring""NPC 后端类型:citizens / adyeshach,留空自动匹配
npcGreetingstring""NPC 开场白,非空时直接发送而不触发 AI
responseDelayint500回复延迟(毫秒)
streamingboolfalse流式输出

NPC 绑定的完整说明参见 NPC 绑定

heartbeat — 心跳配置

心跳助手不需要玩家触发,由调度器定时驱动。适用于全局事件主持、巡逻守卫等自主行为场景。

字段类型默认值说明
enabledboolfalse启用心跳
intervalSecondsint1800心跳间隔(秒)
maxTokensint2048心跳输出最大 token

心跳助手的特征:

  • chatTrigger: "" — 无聊天触发,仅由定时器驱动
  • 每次心跳接收 "heartbeat" 作为输入,助手通过 HEARTBEAT.md 引导文件决定行为
  • 可配合 HEARTBEAT.md 定义决策流程和行为菜单
  • 工具中应包含 list-online-playersbroadcast-message 等全局工具
yaml
heartbeat:
  enabled: true
  intervalSeconds: 300

内部助手

内部助手不直接与玩家交互,而是被其他助手通过 call-agent 工具调用。

在 config.yml 中设置 internal: true 将助手标记为内部助手:

yaml
enabled: true
id: my-internal-agent
name: "内部助手"
internal: true

标记为 internal: true 的助手:

  • 不会出现在 GUI 菜单中 — 玩家在助手列表中看不到它
  • 不能通过聊天触发 — 不参与 chatTrigger 匹配
  • 不能开启私聊模式 — 不出现在 DM 模式可选列表中
  • 不能设置别名 — 不出现在别名选择器中
  • 不能成为默认助手 — 不参与默认助手选举
  • 不能绑定 NPC — 不参与 NPC 路由匹配
  • 管理员可见 — 在系统状态页标记 [内部]

内部助手的典型配置:

  • internal: true — 标记为内部助手
  • chatTrigger: "" — 无聊天触发
  • memory.enabled: false — 不需要记忆
  • session.maxContextTokens: 0 — 不需要会话历史
  • 权限由调用方控制

仅通过 call-agent 调用

内部助手仍可通过 call-agent 工具按 ID 调用,internal 标记只隐藏面向玩家的交互入口。

配置优先级

助手 config.yml > models.yml defaults > config.yml 全局 > 代码默认值
配置覆盖来源
模型助手 → models.yml
会话 token助手 → config.yml
记忆开关助手 → config.yml
命令白名单助手 → config.yml
冷却/限额助手 → config.yml rateLimit

ArkPilot — Minecraft AI Assistant Plugin