咒语使用文档¶
读者对象: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> 清理 |
通用规则¶
- 标签名区分大小写
- 属性值用双引号包裹:
dir="path/file.txt" - 多行内容使用开闭标签:
<tag>...</tag> - 自闭合:
<tag attr="value" /> - 处理成功后标签通常被移除或替换为执行结果
- 花括号占位符
{节点名.输出}与尖括号标记<get:task.xxx>可混用
01 基础占位符¶
1.1 {agent_name}¶
作用:智能体名称占位符。在 prompt、引导词、自定义输出中写入,运行时替换为当前执行任务的智能体名称。
1.2 {node_name}¶
作用:当前节点名称占位符,用于在多节点流程中标识当前执行节点。
示例
处理前:当前执行节点:{node_name}
处理后:当前执行节点:需求分析
1.3 {total_plan}¶
作用:任务整体规划占位符,替换为 agent_status['total_plan']。
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_agents、available_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 代码,结果写入变量 |
07 变量删除¶
7.1 <del var="var_name" />¶
作用:从 task.task_generated_data 删除指定变量。
08 代码执行¶
8.1 <run lang="python"> / </run>¶
作用:执行标签内 Python 代码,标签替换为执行结果。
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 上下文 |
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>¶
作用:开启联网搜索,移除标记。
12.2 <web_search freshness="xxx" count="xxx">关键词</web_search>¶
作用:调用博查搜索 API,标签替换为 JSON 结果。
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 |
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 服务 |
16 PPT 与流程图¶
16.1 <ppt_merge> / </ppt_merge>¶
作用:多个 <slide> SVG 合并为 PPT,标签替换为下载链接。
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 | llmbset→bset、<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> |
注意事项¶
- Prompt 中让 LLM 自然输出咒语,不要在用户可见答案里解释语法
- 个人目录咒语仅操作用户自己的
documents/{手机号}/ <copy_to_mydir>等需先上传附件<call_agent id="...">的 id 必须存在且有权访问- 调试时在 Agent 调试面板查看节点原始输出,确认咒语是否被识别