跳转至

咒语使用文档

读者对象:Agent 开发者、Prompt 编写者
版本:v0.2 | 2026-08-13
来源:整理自 app/core/callback.py 三段主要 prompt / 内容处理流水线


概述

咒语(占位符 / 标记)是 PowerCore 在 Prompt 或 LLM 输出中识别的扩展标签。平台在 Agent 执行过程中自动解析并执行对应操作。

统计 数量
分类 22
咒语 100+
处理流水线 3

三条处理流水线

流水线 时机 典型咒语
Prompt 预处理 送入 LLM 之前 <bset:task.*><get:task.*><read_file>
LLM 输出后处理 模型返回之后 <save_to_skill><call_agent><ppt_merge>
消息推送前处理 推送给前端之前 <show_file><front_show> 清理

通用规则

  1. 标签名区分大小写
  2. 属性值用双引号包裹:dir="path/file.txt"
  3. 多行内容使用开闭标签:<tag>...</tag>
  4. 自闭合:<tag attr="value" />
  5. 处理成功后标签通常被移除或替换为执行结果
  6. 花括号占位符 {节点名.输出} 与尖括号标记 <get:task.xxx> 可混用

01 基础占位符

1.1 {agent_name}

作用:智能体名称占位符。在 prompt、引导词、自定义输出中写入,运行时替换为当前执行任务的智能体名称。

示例

处理前

你好,我是{agent_name},将为您服务。
处理后(agent_name 为「小明助手」)
你好,我是小明助手,将为您服务。

1.2 {node_name}

作用:当前节点名称占位符,用于在多节点流程中标识当前执行节点。

示例

处理前当前执行节点:{node_name}
处理后当前执行节点:需求分析

1.3 {total_plan}

作用:任务整体规划占位符,替换为 agent_status['total_plan']

示例

处理前

本次任务规划如下:
{total_plan}
处理后
本次任务规划如下:
步骤1:收集需求
步骤2:方案设计
步骤3:输出报告


02 时间与用户信息

2.1 <current_time>

作用:替换为系统当前时间,格式 YYYY-MM-DD HH:MM:SS 星期X

处理前 处理后
报告生成时间:<current_time> 报告生成时间:2026-08-04 14:30:25 星期一

2.2 <my_info>

作用:替换为当前登录用户详细信息(手机号/学号、姓名、角色等)。

2.3 <my_tel>

作用:替换为当前用户手机号,常用于构建个人目录路径。

处理前 处理后
documents/<my_tel>/reports/ documents/13800138000/reports/

03 内容保护与转义

3.1 <hidden> / </hidden>

作用:隐藏内容保护。入口处转为 <_hidden_> 防止中间步骤破坏,处理完成后还原。

3.2 <no_escaping> / </no_escaping>

作用:跳过转义处理。标签内容先保存为占位符 __no_escaping__,流水线末尾再还原为原文。

3.3 __no_escaping__

作用:由 <no_escaping> 产生的内部占位符,一般不直接书写。


04 思考与展示控制

4.1 <think> 等变体

作用:删除模型思考过程标签及内容,只保留最终答案(常与 <answer> 配合)。

4.2 <answer> / </answer>

作用:删除答案包裹标签,保留标签内正文。

4.3 <front_show> / </front_show>

作用:删除标签及内容,使其不进入 LLM 上下文(仅前端展示用声明)。


05 变量读取

ID 语法 作用
5.1 <get:task.var_name> 读取任务级变量 task.task_generated_data[var_name],变量名支持中文
5.2 <get:project.var_name> 读取项目级变量
5.3 $get:project.var_name$ 项目变量 v2 语法,功能同 5.2
5.4 <get:system.var_name> 读取系统变量,如 available_agentsavailable_agents_public
5.5 {节点名.输出} 读取指定节点最近一轮输出
5.6 {节点名.输出.code} / {节点名.输出.code_v2} 读取节点输出中的代码部分
5.7 {节点名.输出.output_file} 读取节点输出的文件名
5.8 {节点名.输入} 读取指定节点的用户输入
5.9 {exe_节点名_round} 读取节点执行轮次
5.10 {all_pre_agent} / {project_agent} 汇总前序智能体输出
5.11 {all_pre_abstract} / {project_abstract} 汇总前序 <__abstract__> 摘要
5.12 {all_pre_content} / {project_content} 汇总前序 <__content__> 正文
5.13 {tasks_flowchart} 替换为任务 Mermaid 流程图
5.14 <get:current_node.name> 当前节点名称(同 {node_name} 体系)
5.1 示例

处理前上一步结论:<get:task.分析结果>
处理后上一步结论:电路正常


06 变量设置

ID 语法 作用
6.1 <set:task.var> / </set:task.var> 设置 task 变量,标签从内容移除
6.2 <set:project.var> / </set:project.var> 设置项目变量;show/show_main/list/talk 会触发消息推送
6.3 <bset:task.var> / </bset:task.var> Prompt 阶段提前设置 task 变量(before set)
6.4 <outbset:task.var> / </outbset:task.var> 输出阶段设置 task 变量,保留标签内文本
6.5 <outbset:project.var> / </outbset:project.var> 输出阶段设置项目变量,保留文本
6.6 <set_by_code var="task.xxx"> / </set_by_code> 执行 Python 代码,结果写入变量
6.1 示例

<set:task.结论>电路设计已完成</set:task.结论>
task 变量「结论」被设为「电路设计已完成」,标签移除。

6.6 示例
<set_by_code var="task.总金额">
result = 100 + 200
</set_by_code>

07 变量删除

7.1 <del var="var_name" />

作用:从 task.task_generated_data 删除指定变量。


08 代码执行

8.1 <run lang="python"> / </run>

作用:执行标签内 Python 代码,标签替换为执行结果。

示例

处理前

计算结果:<run lang="python">
print(2 ** 10)
</run>
处理后计算结果:1024


09 文件与目录操作

ID 语法 作用
9.1 <save_file>文件名</save_file> 标签后内容保存为文件,加入任务文件列表
9.2 <save_to_file filename="xxx"> / </save_to_file> 标签内内容保存到 documents/
9.3 <save_to_file_dir filename="xxx"> / </save_to_file_dir> 保存到公共目录(不带用户手机号路径)
9.4 <save_to_myself_dir filename="xxx"> / </save_to_myself_dir> 保存到 documents/{手机号}/
9.5 <save_doc_to dir="目录路径" /> 声明后续文档保存目录
9.6 <append_to_dir_safe dir="path/file.txt"> / </append_to_dir_safe> 加锁追加写入文件
9.7 <copy_to_mydir dir="xxx" /> 复制上传文件到个人目录
9.8 <del_my_dir dir="xxx" /> 删除个人子目录(防路径穿越)
9.9 <del_from_myself_dir filename="xxx" /> 删除个人目录下文件
9.10 <read_file>文件名</read_file> / <file> 读取 documents/ 下文件内容
9.11 <myfile>文件名</myfile> 读取个人目录下文件
9.12 <save_to_skill dir="xxx/xxx.md"> / </save_to_skill> 保存到 skills/skills/ 目录
9.13 <docx_img_to_mydir dir="xxx" file="xxx.docx" /> 从 docx 提取图片到个人目录
9.14 <read_img file="xxx" /> 读取图片,返回绝对路径
9.15 <save_upload_file dir="xxx" /> 保存上传文件到指定目录
9.16 <get_group_dirs dir="path/访问权限.txt"> 返回当前用户有权限的目录列表
9.17 <get_input_files> / <parse_my_tmp_files dir="xxx" /> 解析目录文件到 upload_files 上下文
9.6 示例
<append_to_dir_safe dir="logs/run.log">
[2026-08-04] 节点执行完成
</append_to_dir_safe>

10 文档批注与替换

ID 语法 作用
10.1 <comment_author name="xxx" /> 设置批注作者
10.2 <outbset:task.DOC_location> + <outbset:task.DOC_comment> 文档批注对:位置 + 批注内容
10.3 <outbset:task.DOC_location> + <outbset:task.DOC_content> 文档替换对:位置 + 新内容

11 图片处理

ID 语法 作用
11.1 <image>图片名</image> 提取图片名到 contextvar['picture']
11.2 <图片路径.jpg> 转为 Markdown 图片 ![图片](路径)
11.3 <show_my_img name="图片名.jpg" /> 展示个人目录图片
11.4 <picture>HTML</picture> HTML 片段渲染为图片

12 搜索能力

12.1 <web_search_enable>

作用:开启联网搜索,移除标记。

作用:调用博查搜索 API,标签替换为 JSON 结果。

示例
<web_search freshness="one_day" count="5">2026年奥运会赛程</web_search>

13 标签校验与捕获

13.1 <label_check> / </label_check>

作用:校验标签内 outbset 标签闭合与嵌套,用校验结果替换。

13.2 <capture_char name="名称">内容</capture>

作用:内容含 name 则替换为 name,否则替换为「无」。


14 智能体调用与管理

ID 语法 作用
14.1 <call_agent id="123">问题</call_agent> 调用指定 Agent,标签替换为返回结果
14.2 <copyagent id="x" name="x" privacy="Personal\|Public" desc="x"> 复制已有 Agent
14.3 <creat_agent>JSON</creat_agent> / <create_agent> 按 JSON 创建新 Agent
14.4 <show_to_mainagent agent_name="xxx" /> 声明展示给主 Agent 的子 Agent
14.1 示例
<call_agent id="42">请分析这份数据</call_agent>

15 技能与 MCP

ID 语法 作用
15.1 <skills><select groups="..." experts="..." name_like="..." /></skills> 技能选择 DSL(新语法)
15.2 <skills names="A,B" names_like="X" experts="t1,t2" /> 技能选择(旧语法)
15.3 <my_skills names="A,B" /> 加载个人技能
15.4 <skills_file>文件名</skills_file> 读取 skills 目录文件内容
15.5 <mcp name="xxx" /> 声明使用的 MCP 服务
15.1 新语法
<skills><select groups="public,experts" experts="tel1" name_like="excel" /></skills>

16 PPT 与流程图

16.1 <ppt_merge> / </ppt_merge>

作用:多个 <slide> SVG 合并为 PPT,标签替换为下载链接。

<ppt_merge>
<slide>SVG代码1</slide>
<slide>SVG代码2</slide>
</ppt_merge>

16.2 <ppt_download filename="xxx.pptx" />

作用:生成 PPT 下载链接。

16.3 ```mermaid 代码块

作用:Mermaid 代码块渲染为图片或 <mermaid> HTML。


17 节点与流程信息

ID 语法 作用
17.1 <node_file_list> 当前节点关联文件列表
17.2 <folder_file-list>目录</folder_file-list> 列出目录文件
17.3 <folder_file-list dir="xxx" file_name_like="xxx" /> 自闭合形式,支持过滤
17.4 <parse_str> / </parse_str> 长文本按 100 行分页存入 task 变量

18 加密与流程控制

ID 语法 作用
18.1 AIPOWER: 前缀 Prompt 加密内容,运行时解密
18.2 <goto nodename="xxx">内容</goto> 流程跳转到指定节点
18.3 <rag category="xxx">内容</rag> 上传内容到 RAG 知识库并触发构建

19 代码块与 Mermaid

ID 语法 作用
19.1 ```--__code__-- 代码块临时转义,避免中间步骤破坏
19.2 --code-- 同 19.1 的另一种占位形式

20 文件列表

ID 语法 作用
20.1 <my_files_list> 个人目录全部文件列表
20.2 <my_files_list dir="xxx"> 个人子目录文件列表
20.3 <my_files_list_v2 dir="xxx" filter="xxx" /> 带过滤的个人文件列表 v2
20.4 <show_file name="文件名" /> 设置消息附件,供前端展示下载

21 访问控制与重命名

21.1 <access_control allowed_phones="xxx, xxx" />

作用:校验当前用户手机号是否在允许列表中。

21.2 <rename from="xxx" to="xxx" />

作用:重命名目录。


22 其他标记

ID 语法 作用
22.1 <raw_output> 启用原始输出模式,跳过额外处理
22.2 <no-thinking> 关闭模型思考过程
22.3 <gen_pcb_layout> / </gen_pcb_layout> PCB 布局生成(电路设计场景)
22.4 [[[ 内容 ]]] 送给 LLM 但不进历史,处理后删除
22.5 llmbsetbset<llm< 保存文件时还原被保护的标签前缀
22.6 <__abstract__> / </__abstract__> 摘要标记,供 {all_pre_abstract} 提取
22.7 <__content__> / </__content__> 正文标记,供 {all_pre_content} 提取
22.8 <用户输入> / </用户输入> 提取用户历史输入
22.9 <前序任务输出> / </前序任务输出> 标记前序输出,设为不展示
22.10 __source_code__begin: / __source_code__end: 保护代码区不被变量替换
22.11 \{ / \} 花括号转义,输出字面量 { }

速查表(按分类)

分类 代表咒语
基础占位符 {agent_name} {node_name} {total_plan}
时间用户 <current_time> <my_info> <my_tel>
变量读 <get:task.*> <get:project.*> {节点.输出}
变量写 <set:task.*> <bset:task.*> <outbset:task.*>
文件 <save_to_file> <save_to_skill> <append_to_dir_safe>
Agent <call_agent> <copyagent> <creat_agent>
SKILL/MCP <skills> <my_skills> <mcp>
PPT <ppt_merge> <ppt_download>
RAG <rag category="...">
搜索 <web_search> <web_search_enable>

注意事项

  1. Prompt 中让 LLM 自然输出咒语,不要在用户可见答案里解释语法
  2. 个人目录咒语仅操作用户自己的 documents/{手机号}/
  3. <copy_to_mydir> 等需先上传附件
  4. <call_agent id="..."> 的 id 必须存在且有权访问
  5. 调试时在 Agent 调试面板查看节点原始输出,确认咒语是否被识别

延伸阅读