Smolagents 库总结
概述
Smolagents 是由 Hugging Face 创建的一个库,旨在利用大型语言模型(LLMs)构建代理(Agents)。该库设计简单且与 LLM 无关,支持安全的“以代码形式编写动作”的代理,并与 Hugging Face Hub 集成。
代理系统的核心概念
代理系统的定义
代理系统扩展了计算机程序的能力,使其不再局限于执行预定的工作流,而是能够解决更广泛的现实问题。Hugging Face 的工程师认为,代理系统为 LLMs 提供了访问外部世界的能力。
代理系统的类型
代理系统可以是多步骤代理或多代理系统,与其他基于 LLM 的系统的主要区别在于 LLM 在系统中的代理级别。在代理系统中,LLM 的输出控制着系统的工作流,而在其他系统中,LLM 的输出可能对程序流程没有影响或仅有中间效果。
工作流灵活性
代理系统通过让 LLM 编写调用外部工具的动作来实现工作流的灵活性。这一概念通过以下伪代码表示:
memory = [user_defined_task]
while llm_should_continue(memory): # 多步骤部分
action = llm_get_next_action(memory) # 工具调用部分
observations = execute_action(action)
memory += [action, observations]
Smolagents 的独特之处
动作表达方式
与常用的 JSON 格式不同,Smolagents 选择用代码编写动作,因为编程语言能更好地描述计算机行为,提供更好的组合性、数据管理和通用性。由于 LLMs 已经具备生成高质量代码的能力,这种方法不会增加主要复杂性。
主要功能
Smolagents 提供了解决代理系统构建中常见问题的功能,包括解析代理输出、基于上次迭代结果生成提示、错误日志记录和重试机制。
构建代理系统的建议
是否使用代理系统
如果确定的工作流适用于所有查询,建议直接编写代码,这样可以构建一个 100% 可靠的系统,避免不可预测的 LLMs 带来的错误风险。为了简单性和鲁棒性,建议尽量不使用代理行为。
所需组件
构建代理系统需要 LLM 和一些工具。可以使用 Hugging Face 的 HfApiModel
类访问任何开放模型,或使用 LiteLMMModel
访问云端的 LLMs。工具是 LLM 可以执行的一些函数。
性能基准测试
Hugging Face 使用 GPT4o、Claude3.5、LLaMA-3.3 70B 等领先模型进行了基准测试,发现开放模型可以与最佳的闭源模型媲美。
其他代理系统工具
除了 Smolagents,还有其他可用的代理系统工具,包括:
- OpenAI 的 Swarm,利用例程和交接让多个代理相互协调。
- 微软的 Magentic-One。
- AWS 的 Multi-Agent Orchestrator。
结论
Smolagents 是一个简单且灵活的库,适用于构建基于 LLM 的代理系统。它通过代码形式表达动作,提供了强大的功能和性能,是构建复杂代理系统的有力工具。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。