Agents" author="人工世界Artificial World" src="/cgi-bin/readtemplate?t=tmpl/audio_tmpl&name=Open%26nbsp%3BAI%26nbsp%3B%E6%AD%A3%E5%9C%A8%E6%95%99%E6%88%91%E4%BB%AC%E5%A6%82%E4%BD%95%E6%9E%84%E5%BB%BA%E8%87%AA%E5%B7%B1%E7%9A%84%26nbsp%3BAgents&play_length=" isaac2="0" low_size="3276.8" source_size="3276.8" high_size="3276.8" play_length="276000" data-trans_state="1" data-verify_state="3" voice_encode_fileid="MzkxMjY3MDMxMV8yMjQ3NDg1NDIy" cover="https://api.ibos.cn/v4/weapparticle/accesswximg?aid=119126&url=aHR0cDovL21tYml6LnFwaWMuY24vc3pfbW1iaXpfanBnLzhtRlRUNHNkbE5VTGR4UmVUY2lhWE1MT0dWalpNM0JpY0Q5emZHMEtpYmlhZktINk01aWNlUFVicmFhdk94WVhlRHJmYzVieGljSUJMV3d0a0hCUXV5MFdPaFR3LzA/d3hfZm10PWpwZWc=">
Open AI 给出的解释是:Agent 是能独立完成任务的系统,代表用户行事。
它们由大语言模型驱动,能够使用工具、作出决策并能真正完成完整的工作流程。
所以那些只会回答常见聊天任务的大模型,不算是 Agent。
工具:双手,负责执行(调用API、访问网页、查资料等)
指令:地图,告诉 Agent 该做什么、什么时候做、怎么做
weather_agent = Agent(
name= "Weather agent",
instructions="You are a helpful agent who can talk to users about the
weather.",
tools=[get_weather],
)
让 Agent 真正发挥关键作用,需要它能够获取信息、主动执行操作、协调多个 Agent 联动工作。
编排类工具:一个 Agent 调用另一个 Agent
from agents import Agent, WebSearchTool, function_tool
@function_tool
def save_results(output):
db.insert({ : output, : datetime.time()})
return "File saved"
search_agent = Agent(
name="Search agent",
instructions="Help the user search the internet and save results if
asked.",
tools=[WebSearchTool(),save_results],
)
提示:如果你的 Agent 工具有点多,那就要考虑拆分成多个 Agent 了。
一个好用的 Agent 指令要结构清晰、有条理,并且展示了如何用模型从帮助文档中自动生成指令。
当需要更多专业分工或复杂流程分支时,适合使用多 Agent。
一个主 Agent 协调调度多个专属 Agent。它会根据任务把子任务派发给对应的 Agent,然后将结果统一整合成最终回复。
Agent 之间可以通过 handoff 把流程传给另一个 Agent。
handoff 是一种特殊函数,调用后直接切换到新的 Agent 并同步上下文。
这种模式更灵活,适合不需要集中控制,允许多个 Agent 彼此接力完成任务的场景。
你肯定不希望你的 Agent 胡说八道、泄露隐私或者自动去执行一些高风险操作吧。
指南中也提供了一整套 guardrail 系统,包括:
这些都可以集成到 Agent 的运行循环中,甚至能自动测试失败场景
这份指南,是目前能真正落地 Agent 系统的最佳蓝图。如果你是开发者,强烈建议你认真读一读!
a-practical-guide-to-building-agents.pdf