# 宏系统

宏(Macro)是特殊的占位符,在发送给AI时会被替换为实际值。


# 📖 基础概念

宏使用双大括号包裹:{{宏名称}}

例如:

  • {{char}} → 当前角色名
  • {{user}} → 当前用户名
  • {{time}} → 当前时间

# 📋 完整宏列表

# 时间日期

说明 示例输出
{{time}} 当前时间 14:30
{{date}} 当前日期 2026年1月19日
{{weekday}} 星期 星期日
{{isotime}} ISO时间 14:30
{{isodate}} ISO日期 2026-01-19
{{time_UTC+8}} 指定时区 14:30
{{idle_duration}} 上次消息间隔 5分钟前

# 随机生成

说明 示例
{{random:1,3,5}} 随机选一个 1、3或5中随机一个
{{roll:3d6}} 掷骰子 3个6面骰的总和

# 角色信息

说明
{{char}} 角色名称
{{user}} 用户名称
{{group}} 群聊所有角色
{{charIfNotGroup}} 非群聊时的角色名
{{persona}} 用户人设描述

# 角色卡字段

说明
{{description}} 角色设定
{{personality}} 性格特点
{{scenario}} 场景
{{mesExamples}} 对话示例
{{charVersion}} 角色版本
{{creatorNotes}} 创建者备注

# 消息相关

说明
{{lastMessage}} 最后一条消息
{{input}} 用户当前输入
{{lastUserMessage}} 最后用户消息
{{lastCharMessage}} 最后角色消息

# 排版

说明
{{newline}} 换行
{{trim}} 去除首尾空白
{{noop}} 空操作

# 🔧 变量宏

变量系统让你可以在聊天中存储和使用动态数据。

# 设置变量

{{setvar::变量名::值}}

支持的值类型:

  • 文字:{{setvar::name::张三}}
  • 数字:{{setvar::hp::100}}
  • 列表:{{setvar::items::["剑","盾"]}}

# 读取变量

{{getvar::变量名}}

# 修改变量

说明
{{addvar::name::value}} 添加值(追加/相加/拼接)
{{incvar::name}} 数值+1
{{decvar::name}} 数值-1

# 📖 使用示例

# 在角色描述中

{{char}}是一位强大的魔法师。
现在是{{time}},{{weekday}}。
{{char}}正在等待{{user}}的到来。

实际效果:

艾琳是一位强大的魔法师。
现在是14:30,星期日。
艾琳正在等待小明的到来。

# 实现游戏机制

{{user}}的生命值:{{getvar::hp}}/100
{{user}}的金币:{{getvar::gold}}

掷骰子判定攻击...
攻击点数:{{roll:1d20}}

# 条件性内容

可以结合世界信息实现条件触发:

# 世界信息条目
关键词: 夜晚, 晚上
内容: 现在是{{time}},月光洒落,周围一片静谧。

# 🏷️ 旧版兼容

为兼容旧版角色卡,以下格式仍支持:

旧格式 新格式
<USER> {{user}}
<CHAR> {{char}}
<BOT> {{char}}

建议新创建的内容使用新格式。


# ⚠️ 注意事项

  1. 变量作用域:变量仅在当前聊天中有效
  2. 大小写:宏名称区分大小写
  3. 嵌套:部分宏支持嵌套使用
  4. 性能:过多变量操作可能影响性能

返回功能列表
../