宏(Macros)
⚡ 持续更新中
以下是 Tavo 目前支持的宏参数汇总,持续更新中。 Tavo 现在还在不断建设中,如果你有好的想法,欢迎社区反馈。
如何使用
宏(Macros)可以动态注入一些内容在角色定义、预设、世界书、正则及其他所有生成提示词的地方。
例如我们在角色 宋毅 定义中可以写:
{{char}} 是宋氏集团的总裁。 // 宋毅 是宋氏集团的总裁
{{user}} 是 {{char}} 的秘书。 // 悦琳 是 宋毅的秘书 (假设 用户身份 叫悦琳,当 用户身份 切换时此处也会自动变化)
我们也经常在预设中引导回复方式:
你的首要任务是理解和回应 {{user}} 的情感,当 {{user}} 表达情绪时,都要优先给与真诚、带有同理心的回应,而非急于推进剧情。
或是在世界书中描述历史与世界背景:
{{user}} 在 1984 年被时空漩涡带到异世界,结识了 {{char}},却在 {{date}} 重逢。
或是在世界书及正则中进行参数变化:
// 世界书:当输入“治疗术”时
{{user}} 使用了治疗术,生命值回满,魔法值 -10。 {{setvar::hp::100}} {{addvar::mp::-10}}
// 正则:尾部显示状态栏 $
{{user}} 当前状态:
生命值:{{getvar::hp}}
魔法值:{{getvar::mp}}
一般写法
宏的一般写法为 {{<宏名称>}},例如 {{char}}
如果有参数,使用双冒号分割,例如 {{getvar::hp}}
宏参考
角色
{{user}} 用户身份名字
{{char}} 角色名字
{{group}} / {{charIfNotGroup}} 群聊的所有角色,以逗号分割
{{groupNotMuted}} 群聊中未被禁言的角色
角色卡
{{charDescription}} 角色设定,兼容老版本 {{description}}
{{charPersonality}} 角色性格特点,兼容老版本 {{personality}}
{{charScenario}} 角色卡中的场景描述
{{scenario}} 场景描述(优先使用对话级场景描述,若没有则使用角色场景描述)
{{persona}} 用户身份描述
{{charPrompt}} 系统指令-Main Prompt 的内容
{{charInstruction}} / {{charJailbreak}} 系统指令-Post-History Instructions 的内容
{{mesExamples}} 对话示例(已渲染)
{{mesExamplesRaw}} 对话示例(原文)
{{charVersion}} 附加信息 角色版本
{{charCreatorNotes}} 附加信息 备注,兼容老版本 {{creatorNotes}}
消息
{{lastMessage}} 最后一条消息
{{input}} 用户输入消息
{{lastUserMessage}} 最后一条用户消息
{{lastCharMessage}} 最后一条角色消息
日期与时间
{{time}} 当前时间
{{date}} 当前日期
{{weekday}} 当前星期
{{isotime}} ISO时间(格式 小时:分钟)
{{isodate}} ISO日期(格式 年-月-日)
{{idleDuration}} 距离上次消息的时长,兼容老版本 {{idle_duration}}
{{time::UTC+9}} 东九区的时间(格式 小时:分钟),兼容老版本 {{time_UTC±<timezone>}}
随机数
{{random::1::3::5}} 在1、3、5中间随机一个数,兼容老版本 {{random::1,3,5}}
{{roll::3d6}} 摇骰子,3d6 = 3颗6面骰子
格式化
{{newline}} 换行
{{newline::<行数>}} 添加多个换行
{{space}} 空格
{{space::<空格数>}} 添加多个空格
{{trim}} 移除前后空格和换行
{{noop}} 空
{{//<注释>}} 注释,会被渲染为空
\{\{char\}\} escape,使用反斜杠 \{\{macro\}\} 的形式,可以避免宏被执行,而只是渲染成 {{macro}}
聊天变量
聊天变量仅在当前聊天内可用
{{setvar::<变量名>::<值>}} 设置变量,接受列表(JSON格式)、数字、文字三种
{{addvar::<变量名>::<值>}} 为变量增加值,如果是列表会在尾部添加元素,数字使用加法,文字会拼接在尾部
{{incvar::<变量名>}} 变量 +1
{{decvar::<变量名>}} 变量 -1
{{getvar::<变量名>}} 获得变量的值
全局变量
{{setglobalvar::<变量名>::<值>}} 设置变量,接受列表(JSON格式)、数字、文字三种
{{addglobalvar::<变量名>::<值>}} 为变量增加值,如果是列表会在尾部添加元素,数字使用加法,文字会拼接在尾部
{{incglobalvar::<变量名>}} 变量 +1
{{decglobalvar::<变量名>}} 变量 -1
{{getglobalvar::<变量名>}} 获得变量的值
已过时的参数(Legacy)
<USER> 用户身份名字
<CHAR> / <BOT> 角色名字
<GROUP> / <CHARIFNOTGROUP> 群聊的所有角色,以逗号分割
变量宏的使用
变量宏就像给 AI 准备了一个随身小本子,你把数据写进去,它随时能翻出来看,不会记混、不会忘记。
❌ 没有宏的时候
你说「我现在血量是97」,聊了十几轮之后 AI 说「你血量应该是100吧?」——因为它忘了你之前说的。
✅ 有宏的时候
你发 `{{setvar::hp::97}}`,AI 把「97」写进小本子。
不管聊多少轮,只要你问,它都能翻出来告诉你「你的血量是 97」。
各个变量宏的作用
(1) setvar【写下去】
{{setvar::变量名::数值}}
把一个数值存进 AI 的记事本。 可以存数字、文字,也可以存一个列表。 如果这个变量之前有值,会直接覆盖替换掉。
示例:{{setvar::hp::100}} {{setvar::name::小明}} 我叫小明,血量 100,开始!
适合应用场景:
🎮 开始游戏,设置初始血量
📝 写下今天要做的事
😊 记录此刻的心情
🔄 重置某个数值
(2) addvar【加进去】
{{addvar::变量名::加的内容}} 在原来的值上面加东西。
- 如果是数字,就做加法(原来50,加20变70)
- 如果是列表,就追加一个新元素进去
- 如果是文字,就拼接在后面
示例:打倒了哥布林!{{addvar::gold::15}} {{addvar::bag::"哥布林耳朵"}}
适合应用场景:
🍎 捡到东西,加入背包
💰 赚了钱,增加积分
📜 清单里加一件新任务
(3) incvar / decvar 【加1】/【减1】
{{incvar::变量名}} {{decvar::变量名}}
- incvar 让数字自动 +1,decvar 让数字自动 -1。
- 是 addvar 的快捷版,不用写数值。
- 想 -3 就写三个
{{decvar::hp}},重复几次执行几次。
示例:{{decvar::hp}} {{decvar::hp}} {{decvar::hp}} 被龙爪抓了三下!{{incvar::water}} 喝了一杯水~
适合应用场景:
❤️ 受伤扣血
🔄 回合 +1
💧 喝水记一杯
⏳ 倒计时 -1
(4) getvar【读出来】
{{getvar::变量名}}
- 把存进去的数值「取出来」,插入到你的消息里。
- AI 看到的不是「getvar::hp」这几个字,而是 hp 里存的实际数字。就像把变量名换成了它代表的值。
示例:我的状态:名字{{getvar::name}},血量{{getvar::hp}},背包{{getvar::bag}}
适合应用场景:
📊 查看当前状态
✅ 确认数值是否正确
🤖 让 AI 根据数值作出判断
应用场景
【输入框左下角】→【点击
】→ 点击【宏助手
】,找到对应的变量宏并点击自动填入输入框。
只需要把变量名和数值改成你想要的就行。
(1) 预设Prompt
让 AI 每次回复时自动执行特定宏的通用规则。(比如「每次有战斗必须扣血」)
🗺️ 示例
【你的回复里必须遵守以下规则:
1. 每当叙述中有角色受到伤害,在回复开头加:
{{decvar::hp}} (每受1点伤就写一次)
2. 每当叙述结束,在末尾附上状态栏:
【HP: {{getvar::hp}} | 回合: {{getvar::round}}】
3. 每次回复后回合数 +1:
{{incvar::round}}】
(2) 世界书条目
可以设置触发关键词——当对话里出现这个词,这条内容才会被注入进上下文。 配合变量宏,可以实现「进入某个地点 / 触发某个事件时,自动初始化相关变量」。
🗺️ 示例:进入「地下城」时自动初始化战斗变量
触发关键词:地下城, dungeon, 入口
【你已进入地下城。初始化战斗状态:
{{setvar::dungeon_floor::1}}
{{setvar::enemies_left::5}}
{{setvar::trap_count::0}}
记住:每消灭一个敌人执行 {{decvar::enemies_left}}】
📖 示例:故事进入第二章时加载新设定
触发关键词:第二章, chapter 2, 霜城之外
【{{setglobalvar::chapter::2}}
{{setglobalvar::location::霜城之外的荒原}}
{{addglobalvar::characters::["苏雾"]}}
新角色苏雾登场,她是雪域向导,沉默寡言……】
(3) 正则脚本
输入端简写展开 — 用简写代替长宏
输入:-hp5→自动变成{{decvar::hp}}{{decvar::hp}}{{decvar::hp}}{{decvar::hp}}{{decvar::hp}}
输入:+gold20→自动变成:{{addvar::gold::20}}
正则匹配 -hp(\d+) → 替换成对应数量的 decvar 宏,输入更快