def get_weather(city: str) -> str:
"""
get weather information
@city: str, city name
@return: str, weather information
"""
return f"{city} weather: sunny"
# agent序列化位置,运行过程中会自动保存LLM的messages和python解析器的状态
workspace='./5_serialize'
role = 'You are a helpful agent.'
agent = Agent(workspace=workspace)
agent.user_input('My name is Shadow.')
agent = None
agent = Agent(role, workspace=workspace)
agent.user_input('What is my name?')
# 支持多模态: 图片输入
from GeneralAgent import Agent
agent = Agent('You are a helpful assistant.')
agent.user_input(['what is in the image?', {'image': '../docs/images/self_call.png'}])
总结
GeneralAgent 框架为构建智能代理提供了一个强大、灵活的平台,其丰富的功能和易用的 API 可以帮助开发者快速构建各种类型的智能代理应用。随着 LLM 技术的不断发展,GeneralAgent 框架将会在更多领域发挥重要作用。
引言
近年来,大型语言模型(LLM)在自然语言处理领域取得了显著的进展。然而,如何将 LLM 的强大能力应用到实际的业务场景中,仍然是一个充满挑战的任务。GeneralAgent 框架应运而生,它旨在将 LLM 与 Python 无缝集成,为构建智能代理提供一个灵活、高效的平台。
GeneralAgent 框架概述
GeneralAgent 是一个 Python 原生的代理框架,其核心目标是简化 LLM 在实际应用中的开发流程。与其他代理框架相比,GeneralAgent 具有以下优势:
GeneralAgent 功能介绍
函数调用
GeneralAgent 允许开发者将 Python 函数注册到代理中,并通过自然语言指令来调用这些函数。例如,我们可以定义一个获取天气信息的函数:
然后将该函数注册到代理中:
当用户询问 “成都天气怎么样?” 时,代理会自动调用
get_weather
函数,并将 “成都” 作为参数传递给该函数,最终返回 “成都天气: 晴朗”。知识库
GeneralAgent 支持将外部知识库集成到代理中,从而增强代理的知识范围。开发者可以将知识库文件路径传递给代理,代理会自动加载并索引知识库内容。
当用户提出问题时,代理会先在知识库中搜索相关信息,并将搜索结果作为 LLM 的输入,从而生成更准确、全面的答案。
序列化
GeneralAgent 支持序列化代理的状态,包括 LLM 的对话历史和 Python 解释器的状态。开发者可以使用
agent.save()
方法将代理的状态保存到磁盘,并使用agent.load()
方法从磁盘加载代理的状态。工作流
GeneralAgent 支持定义复杂的工作流,并通过多个步骤来完成任务。开发者可以使用
agent.run()
方法执行单个步骤,并使用 Python 代码控制工作流的执行逻辑。多代理协作
GeneralAgent 支持多个代理协作完成任务。开发者可以创建多个代理实例,并为每个代理分配不同的角色和任务。代理之间可以通过消息传递进行通信和协作。
多模态输入
GeneralAgent 支持多模态输入,例如文本、图片、音频等。开发者可以将多模态数据封装成数组,并传递给
agent.user_input()
方法或agent.run()
方法。总结
GeneralAgent 框架为构建智能代理提供了一个强大、灵活的平台,其丰富的功能和易用的 API 可以帮助开发者快速构建各种类型的智能代理应用。随着 LLM 技术的不断发展,GeneralAgent 框架将会在更多领域发挥重要作用。