Agent 是什么?
1. Agent 是什么?
An Agent is a system that leverages an AI model to interact with its environment in order to achieve a user-defined objective. It combines reasoning, planning, and the execution of actions (often via external tools) to fulfill tasks.
Agent 有两个主要部分:
- 大脑(AI 模型)
所有思考都发生于此。AI 模型处理推理和规划。根据情况决定执行哪些行动。
- 身体(能力和工具)
该部分代表 Agent 所具备的一切功能。
可执行的行动范围取决于 Agent 所装备的东西。比如人类没有翅膀,因此无法执行“飞”这个行动,但是可以执行诸如“走”、“跑”、“跳”、“抓”之类的行动。
1.1. Agent 的范围
根据该定义,Agent 存在于不断增加的范围上:
等级 | 描述 | 叫什么 | 示例模式 |
☆☆☆ | Agent 的输出不影响程序流 | 简单处理器 | process_llm_output(llm_response) |
★☆☆ | Agent 的输出决定基本控制流 | Router | if llm_decision(): path_a() else: path_b() |
★★☆ | Agent 的输出决定函数执行 | 工具调用者 | run_function(llm_chosen_tool, llm_chosen_args) |
★★★ | Agent 的输出控制迭代和程序是否继续 | 多步 Agent | while llm_should_continue(): execute_next_step() |
★★★ | 一个 Agent 工作流可以启动另一个 Agent 工作流 | Multi-Agent | if llm_trigger(): execute_agent() |
表格来自 smolagents conceptual guide。
2. 为 Agent 使用何种类型的 AI 模型?
在 Agent 中,最常用的 AI 模型是 LLM(Large Language Model),它接受文本作为输入,并且输出文本。
比如 OpenAI 的 GPT4,Meta 的 LLama,Google 的 Gemini 等。后面的部分将学习关于 LLM 的更多知识。
也可以使用接受其它输入的模型作为 Agent 的核心模型。比如视觉语言模型(VLM),它与 LLM 相似,但理解图片输入。
3. AI 如何在其环境上执行行动?
LLM 是神奇的模型,但是它们只能生成文本。
但知名的聊天应用,比如 HuggingChat、ChatGPT,可以生成图片。它们是如何做到的呢?
答案是 HuggingChat、ChatGPT 以及类似应用的开发者实现额外的功能(被称为工具),LLM 用其创建图片。
后面的部分将学习关于 Tools 的更多知识。
4. Agent 可以执行什么类型的任务?
Agent 可以执行通过工具(Tool)实现的任意任务,完成行动(Action)。
比如,如果实现担任电脑上的私人助理(像 Siri 一样)的 Agent,并且要求它“向主管发送一封邮件,请求推迟今天的会议”,那么可以给 Agent 发送邮件的代码。当 Agent 需要发送邮件时,可以使用该工具。我们用 Python 编写该工具:
def send_message_to(recipient, message):
"""Useful to send an e-mail message to a recipient"""
...
LLM 将在需要时生成运行该工具的代码,从而完成任务。
send_message_to("Manager", "Can we postpone today's meeting?")
工具的设计非常重要,并且对 Agent 的质量影响很大。一些任务需要精心设计的专用工具,而另一些任务可以使用通用工具(比如“web_search”)解决。
注意,行动(Action)与工具(Tool)不同。比如,为完成一个行动,可以引入多个工具的使用。
允许 Agent 与其环境进行交互,可以使公司和个人在现实生活中使用。
5. 总结
Agent 使用 AI 模型(通常是 LLM)作为其核心推理引擎:
- 理解自然语言:以有意义的方式解释和回应人类的指令。
- 推理和规划:分析信息,做决策,制定解决问题的策略。
- 与其环境进行交互:收集信息,执行行动,观察行动的结果。