🔣 宏系统 (Macro System) 概览
宏系统是 LLM Chat 中一个强大的动态内容生成引擎。它允许你在智能体的预设消息、用户输入、正则替换等任何支持文本的地方嵌入可执行的占位符,从而实现根据上下文动态调整提示词 (Prompt) 的能力。
什么是宏?
宏是一种用 {{ }} 包裹的特殊标记。在系统组装上下文并发送给 LLM 之前,这些标记会被自动展开为实际的内容(如当前时间、用户名、变量值等)。
基础语法
- 无参数宏:
{{macroName}} - 带参数宏:
{{macroName::arg1::arg2}} - 转义: 如果需要输出原文字符
{{,请使用\{{text}}。
执行机制:三阶段管道
为了保证宏之间的依赖关系被正确处理(例如:必须先“设置”变量,才能“读取”变量),宏引擎采用三阶段执行管道:
- 预处理 (PRE_PROCESS): 处理状态变更宏(如
setvar,incvar)。这些宏通常执行逻辑操作,不返回可见文本。 - 替换 (SUBSTITUTE): 处理静态值替换(如
{{user}},{{getvar}})。 - 后处理 (POST_PROCESS): 执行依赖最终文本上下文或需要实时计算的函数(如
{{time}},{{lastMessage}},{{cssvar}})。
核心功能分类
| 分类 | 说明 | 详细参考 |
|---|---|---|
| 核心上下文 | 获取用户、Agent 名称及描述 | 宏参考 |
| 时间与日期 | 感知虚拟时间线,支持多种语言格式 | 宏参考 |
| 变量操作 | 在请求过程中传递和共享状态 | 会话变量 |
| 逻辑与功能 | 随机选择、掷骰子、重复文本 | 宏参考 |
| 资产与工具 | 注入工具定义、资产列表及运行时上下文 | 宏参考 |