海外访问:www.kdjingpai.com
Ctrl + D 收藏本站
当前位置:首页 » 课程资料

《12-Factor Agents》2. 掌控你的输入提示

2025-07-22 19

不要将你的输入提示工程外包给框架。

《12-Factor Agents》2. 掌控你的输入提示-1

顺便说一句,这远非什么新颖的建议:

《12-Factor Agents》2. 掌控你的输入提示-1

一些框架提供了类似这样的“黑盒”方法:

agent = Agent(
role="...",
goal="...",
personality="...",
tools=[tool1, tool2, tool3]
)
task = Task(
instructions="...",
expected_output=OutputModel
)
result = agent.run(task)

这对于引入一些顶级的输入提示工程来帮助你入门非常有用,但通常很难调整和/或逆向工程,以将恰到好处的 Token 输入到你的模型中。

相反,你应该掌控你的输入提示,并将其视为一等公民的代码:

function DetermineNextStep(thread: string) -> DoneForNow | ListGitTags | DeployBackend | DeployFrontend | RequestMoreInformation {
prompt #"
{{ _.role("system") }}
你是一个乐于助人的助手,负责管理前端和后端系统的部署。
你通过遵循最佳实践和正确的部署程序,努力确保部署的安全和成功。
在部署任何系统之前,你应该检查:
- 部署环境 (预发环境 vs 生产环境) 
- 要部署的正确标签/版本
- 当前的系统状态
你可以使用 deploy_backend、deploy_frontend 和 check_deployment_status 等工具来管理部署。对于敏感部署,使用 request_approval 来获得人工验证。
始终首先考虑该做什么,例如:
- 检查当前部署状态
- 验证部署标签是否存在
- 如果需要,请求批准
- 在部署到生产环境之前,先部署到预发环境
- 监控部署进度
{{ _.role("user") }}
{{ thread }}
下一步应该做什么?
"#
}

(以上示例使用 BAML 生成输入提示,但你可以使用任何你想要的输入提示工程工具来完成,甚至可以手动创建模板)

如果这个函数签名看起来有点奇怪,我们将在 要素 4 – 工具即结构化输出 中讨论。

function DetermineNextStep(thread: string) -> DoneForNow | ListGitTags | DeployBackend | DeployFrontend | RequestMoreInformation {

掌控你的输入提示的主要好处:

  1. 完全控制:精确编写你的智能体所需的指令,没有黑盒抽象
  2. 测试与评估:像对待其他任何代码一样,为你的输入提示构建测试和评估
  3. 迭代:根据实际性能快速修改输入提示
  4. 透明度:清楚地知道你的智能体正在使用哪些指令
  5. 角色扮演技巧 (Role Hacking):利用支持非标准使用 user/assistant 角色的 API——例如,现已弃用的 OpenAI “completions” API 的非聊天版本。这包括一些所谓的“模型煤气灯效应 (model gaslighting)”技术

请记住:你的输入提示是你的应用程序逻辑与大语言模型 (LLM) 之间的主要接口。

完全掌控你的输入提示,能为你提供生产级智能体所需的灵活性和输入提示控制能力。

我不知道什么是最好的输入提示,但我知道你希望拥有能够尝试一切的灵活性。

相关推荐

找不到AI工具?在这试试!

输入关键词,即可 无障碍访问 必应 搜索,快速找到本站所有 AI 工具。

邮箱

联系我们

回顶部

zh_CN简体中文