变量映射与模板化
变量映射解决的不是“怎么替换字符串”,而是“怎么让同一套 Prompt 模板在不同数据场景里稳定复用”。
适合什么时候读
- 你的 Prompt 里开始出现产品名、用户名、工单信息这类动态字段
- 你想把模板和业务数据解耦
- 你已经在用 YAML Prompt,准备做跨场景复用
你会学到什么
- 占位符应该怎么写
mappings可以在加载模板和直接写 Prompt 时怎么用- 什么时候该做模板化,什么时候直接写死更简单
变量映射的最小心智模型
这张图强调的重点是: 模板和数据应该分开管理,替换发生在装配阶段,而不是把变量值直接写死到模板里。
最小示例
yaml
.request:
input: 请为 ${product_name} 写一句定位。
instruct: 语气风格: ${tone}python
from agently import Agently
agent = Agently.create_agent()
agent.load_yaml_prompt(
"prompts/positioning.yaml",
mappings={
"product_name": "Agently",
"tone": "专业、克制",
},
)
print(agent.start())在代码里直接用 mappings
如果你暂时还不想把模板抽成文件,也可以直接在代码里写:
python
agent.set_request_prompt(
"input",
"请为 ${product_name} 写一句定位。",
mappings={"product_name": "Agently"},
)这样依然保留了“模板和数据分离”的好处。
什么时候模板化最有价值
- 数据来自数据库、API、表单或日志
- 同一类任务会在多个产品、多个团队或多个租户之间复用
- 你希望业务文案和代码发布节奏解耦
如果只是一次性脚本里的固定任务,先别把事情复杂化。
常见误区
- 占位符很多,但没有定义清晰的数据来源。
- 模板里混入太多业务分支逻辑,导致读不懂也难维护。
- 文件模板里已经做了变量映射,代码里又手工拼一遍字符串。
下一步去哪
- 想把变量模板放进文件资产: 看 配置化 Prompt:YAML/JSON
- 想先理清 Prompt 分层: 看 分层 Prompt:Agent 与 Request
- 想把输出结构也模板化: 看 Agently Output Format 语法
Related Skills(可选)
agently-prompt-managementagently-prompt-config-files