分层 Prompt:Agent 与 Request
在工程里我们通常希望:规则只写一次、调用时只给必要输入。为此,Agently 采用“Agent 层 + Request 层”的分层方式,让稳定规则长期复用、动态输入按请求变化,并允许你直接输入几乎任何可结构化的数据、变量或嵌套结构。
python
from agently import Agently
agent = Agently.create_agent()
# 初始化阶段:只做一次
agent.set_agent_prompt("system", "你是一个严谨的技术文档助手。")
agent.set_agent_prompt("developer", "输出遵循 Markdown 规范。")
def explain(topic: str):
return (
agent
.input(f"请解释{ topic },并给出 2 个练习题")
.instruct("先给定义,再给示例")
.output({
"定义": (str, "一句话解释"),
"练习题": [{"题目": (str, ""), "答案": (str, "")}]
})
.start()
)理解两层结构
- Agent Prompt:稳定规则、长期约束
- Request Prompt:临时输入、动态指令
结构化表达 Prompt
你可以直接传入字符串、字典、列表或嵌套结构:
python
from agently import Agently
agent = Agently.create_agent()
agent.set_agent_prompt("system", {
"角色": "技术文档助手",
"目标": ["准确", "简洁", "可复用"]
})
agent.set_request_prompt("input", {
"主题": "递归",
"要求": ["一句话定义", "一个示例", "两个练习题"]
})用标准槽位组织内容
常用槽位包括:
system/developerinfo/instruct/examplesinput/output/options
推荐写法:把稳定规则放 system/developer,把任务内容放 input,把结构化输出放 output。
如果希望某段规则长期生效,可用 set_agent_prompt 写入 Agent 层。