快捷语法与 always 参数
在代码里编写 Prompt 时,我们通常希望表达更简洁、结构更清晰,尤其是在多人协作或快速迭代时。快捷语法就是为此而生:它让开发者更便捷地使用框架推荐的 slot,同时提升代码可读性,但不改变底层 Prompt 结构。
快捷语法做了什么
这些方法本质上等价于 set_request_prompt 或 set_agent_prompt:
| 快捷方法 | 实际写入的槽位 | 说明 |
|---|---|---|
input() | input | 请求输入 |
info() | info | 背景信息 |
instruct() | instruct | 指令/约束 |
examples() | examples | 示例 |
output() | output | 输出结构 |
attachment() | attachment | 附件内容 |
options() | options | 模型请求参数 |
还有三个“规则类”快捷语法:
| 快捷方法 | 作用 | 实际写入 |
|---|---|---|
rule() | 设置规则并注入指令模板 | system.rule + instruct |
role() | 设置角色并注入指令模板 | system.your_role + instruct |
user_info() | 写入用户信息并注入指令模板 | system.user_info + instruct |
system() 用于写入 system 槽位;在 Agent 的快捷语法中配合 always=True 可写入 Agent Prompt,否则写入 Request Prompt。
always 参数的意义
在 Agent 的快捷语法中,你可以传 always=True,把内容写入 Agent Prompt(长期生效),否则写入 Request Prompt(仅当前请求)。
python
agent = Agently.create_agent()
# 写入 Agent Prompt:长期规则
agent.instruct("输出必须简洁。", always=True)
# 写入 Request Prompt:本次请求
agent.input("解释递归,并给出示例。")快捷语法的价值在于“可读性 + 速度”,本质仍是标准槽位的写入方式。长期规则依旧建议写入 Agent Prompt,模板化内容建议走配置化 Prompt。
链式语法:清晰完成 Prompt 表达
链式写法把“输入 → 约束 → 输出”放在同一段语义块中,代码结构自然、可读性强,适合在工程中快速表达一次请求的完整意图。
python
from agently import Agently
agent = Agently.create_agent()
result = (
agent
.info({"背景": "面向工程落地的 AI 应用框架"})
.input("写一段面向开发者的产品介绍")
.instruct("先给一句话定位,再给 2 条能力亮点")
.output({
"定位": (str, "一句话定位"),
"亮点": [
{
"标题": (str, "亮点标题"),
"说明": (str, "一句话说明")
}
]
})
.start()
)
print(result)