微信扫码
添加专属顾问
 
                        我要投稿
从实战中提炼的12条黄金法则,让你的AI Agent开发效率提升10倍! 核心内容: 1. 自然语言到结构化调用的转换技巧 2. 自定义提示词的关键方法与优势 3. 上下文构建的最佳实践方案
 
                                
我在过去一年里构建了十几个不同类型的 Agent 应用。期间踩了无数坑:Agent "失忆"、工具调用失败、提示词效果不稳定等等问题
直到我看到了 HumanLayer 团队总结的"12 条构建可靠 AI 应用的实践原则",很多困扰我的问题终于有了系统性的解决方案。它们可能会让你的 Agent 能力提升 10 倍。
Agent 构建最常见的模式就是将自然语言转成结构化的工具调用。
想象一下,我们对 AI 说 创建 750 美元的付款给小明的链接,用于赞助二月份聚会的费用。
LLMs 会转成结构化的数据
{
  "function":{
    "name":"create_payment_link",
    "parameters":{
      "amount":750,
      "customer":"cust_128934ddasf9",
      "product":"prod_8675309",
      "price":"prc_09874329fds",
      "quantity":1,
      "memo":"赞助二月份聚会的付款链接"
    }
}
}这就是 Agent 构建的核心:自然语言到结构化调用的转换。
我们应该使用自己的提示词,而不是让框架自己来包装提示词。
很多框架提供了“黑盒”方法:
agent = Agent(
  role="...",
  goal="...",
  personality="...",
  tools=[tool1, tool2, tool3]
)
task = Task(
  instructions="...",
  expected_output=OutputModel
)
result = agent.run(task)这种方式适合入门,但是很难调整,你根本不知道框架背后到底在说什么。
我们应该把提示词作为一等公民来对待,下面是一段比较粗糙但直观的示例
# 系统提示词
你是一名【主要功能】的【角色】。
你的执行流程是
- 【步骤1】
- 【步骤2】
你可以使用【Tool1】【Tool2】
# 用户提示词
【用户的输入】使用自己的提示词带来的好处:
和 LLMs 聊天,本质上就是在说“这是目前的情况,下一步要做什么”。
这是目前的情况 就是我们的上下文。通常包括:
大多数框架会生成标准格式的上下文:
[
  {
    "role":"system",
    "content":"你是一个乐于助人的助手..."
},
{
    "role":"user",
    "content":"你能部署后端吗?"
},
{
    "role":"assistant",
    "content":null,
    "tool_calls":[
      {
        "id":"1",
        "name":"list_git_tags",
        "arguments":"{}"
      }
    ]
},
{
    "role":"tool",
    "name":"list_git_tags",
    "content":"{\"tags\": [{\"name\": \"v1.2.3\", \"commit\": \"abc123\", \"date\": \"2024-03-15T10:00:00Z\"}.....]}",
    "tool_call_id":"1"
}
]但你可以设计更高效的自定义格式,最大化模型性能。(还是那句话,完全自己控制,获得极大的灵活性)
[
  {
    "role":"system",
    "content":"你是一个乐于助人的助手..."
},
{
    "role":"user",
    "content": |
      以下是截至目前发生的所有事件:
      <slack_message>
        From: @alex
        Channel: #deployments
        Text: Can you deploy the backend?
      </slack_message>
      <list_git_tags>
        intent:"list_git_tags"
      </list_git_tags>
      <list_git_tags_result>
        tags:
          - name:"v1.2.3"
            commit:"abc123"
            date:"2024-03-15T10:00:00Z"
          - name:"v1.2.2"
            commit:"def456"
            date:"2024-03-14T15:30:00Z"
          - name:"v1.2.1"
            commit:"ghi789"
            date:"2024-03-13T09:15:00Z"
      </list_git_tags_result>
      下一步是什么?
    }
]自定义的格式可以更节省 Token、更有利于模型注意力分配的方式传递信息,从而提升性能。你可以使用更适合你应用的格式,而不是局限于 XML。
自定义格式的核心优势:
很多人把工具调用想得很复杂,其实就三步:
输出格式不一定要是JSON。,JSON 格式太严格,LLM 可能输出语法有问题的 JSON,其他任何结构化(XML、YAML等)的我们能够解析的格式都可以。
拓展阅读:Schema-Aligned Parsing[1] 、When should I use function calling, structured outputs or JSON mode?[2]
传统软件开发习惯分离执行状态(当前步骤、等待、重试)和业务状态(数据、消息)。但在AI应用中,这样做可能过度复杂。LLM可以通过上下文自动推断所有状态。
统一管理的好处:
把AI Agent想象成普通程序,提供标准的控制接口:
这些能力特别适用于:
比如,Agent 想执行某个脚本时,可以暂停让人类检查修改,然后继续执行。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-10-31
从Palantir智能化技术路线看AI时代企业级架构平台的核心战略位置
2025-10-31
OpenAI 公开 Atlas 架构:为 Agent 重新发明浏览器
2025-10-31
Palantir 本体论模式:重塑企业 AI 应用的 “语义根基” 与产业启示
2025-10-31
树莓派这种“玩具级”设备,真能跑大模型吗?
2025-10-30
Cursor 2.0的一些有趣的新特性
2025-10-30
Anthropic 发布最新研究:LLM 展现初步自省迹象
2025-10-30
让Agent系统更聪明之前,先让它能被信任
2025-10-30
Rag不行?谷歌DeepMind同款,文档阅读新助手:ReadAgent
 
            2025-08-21
2025-08-21
2025-08-19
2025-09-16
2025-10-02
2025-09-08
2025-09-17
2025-08-19
2025-09-29
2025-08-20