OpenAGI 项目介绍
项目概述
OpenAGI 是一个旨在使类人自主代理系统对所有人更加易得的项目,旨在通过开放的代理系统,推动为每个人提供通用人工智能(AGI)的进程。该项目的核心理念是利用 AI 的变革力量,为解决许多现实生活中的问题提供帮助。OpenAGI 提供的框架有助于开发人员构建自主的类人代理,为他们提供一个轻松创建智能代理的工具平台。
项目安装
为了使用 OpenAGI,开发者首先需要创建一个虚拟环境。针对不同的操作系统,有不同的操作方法:
-
Mac 和 Linux 用户:
python3 -m venv venv source venv/bin/activate
-
Windows 用户:
python -m venv venv venv/scripts/activate
在虚拟环境准备好之后,可以通过以下几种方式安装 OpenAGI:
-
使用 pip 安装:
pip install openagi
-
或者从 GitHub 克隆项目:
git clone https://github.com/aiplanethub/openagi.git pip install -e .
实例展示
OpenAGI 提供了一些示例代码以展示其功能。
手动代理执行
例如,可以创建一个 旅行规划代理,以帮助用户计划旧金山的旅行行程:
# 导入相关模块
from openagi.agent import Admin
from openagi.planner.task_decomposer import TaskPlanner
from openagi.actions.tools.ddg_search import DuckDuckGoSearch
from openagi.llms.openai import OpenAIModel
from openagi.worker import Worker
# 设置关键变量
plan = TaskPlanner(human_intervene=False)
action = DuckDuckGoSearch
import os
os.environ['OPENAI_API_KEY'] = "sk-xxxx"
config = OpenAIModel.load_from_env_config()
llm = OpenAIModel(config=config)
# 创建工作者实例
trip_plan = Worker(
role="Trip Planner",
instructions="""
用户喜欢安静的地方,请根据这一爱好建议最佳的行程。
""",
actions=[action],
max_iterations=10)
# 管理员配置
admin = Admin(
llm=llm,
actions=[action],
planner=plan,
)
admin.assign_workers([trip_plan])
# 执行任务
res = admin.run(
query="给我一个为期三天的旧金山湾区旅行计划",
description="你是一名熟知城市信息、景点和习俗的本地导游",
)
print(res)
自主多代理执行
甚至可以构建一个无需人工干预即可自主运行的 体育代理:
# 导入相关模块
from openagi.planner.task_decomposer import TaskPlanner
from openagi.actions.tools.tavilyqasearch import TavilyWebSearchQA
from openagi.agent import Admin
from openagi.llms.gemini import GeminiModel
import os
os.environ['TAVILY_API_KEY'] = "<替换为Tavily密钥>"
os.environ['GOOGLE_API_KEY'] = "<替换为Gemini密钥>"
os.environ['Gemini_MODEL'] = "gemini-1.5-flash"
os.environ['Gemini_TEMP'] = "0.1"
gemini_config = GeminiModel.load_from_env_config()
llm = GeminiModel(config=gemini_config)
# 设置计划程序
plan = TaskPlanner(autonomous=True, human_intervene=True)
# 管理员设置
admin = Admin(
actions = [TavilyWebSearchQA],
planner = plan,
llm = llm,
)
res = admin.run(
query="我需要2024年斯里兰卡对印度单日国际赛的板球更新",
description=f"给我印度对斯里兰卡单日国际赛的结果和赛后最佳选手的信息",
)
print(res)
长期记忆功能
OpenAGI 的代理具备优秀的长期记忆能力,能够:
- 回忆过去的对话,为接下来的互动提供连续性。
- 根据用户输入进行学习和适应。
- 通过引用之前的对话,提供上下文关联的响应。
- 随着每次交互的进行,提高准确性和效率。
示例代码展示:
import os
from openagi.agent import Admin
from openagi.llms.openai import OpenAIModel
from openagi.memory import Memory
from openagi.planner.task_decomposer import TaskPlanner
from openagi.worker import Worker
from openagi.actions.tools.ddg_search import DuckDuckGoSearch
memory = Memory(long_term=True)
os.environ['OPENAI_API_KEY'] = "-"
config = OpenAIModel.load_from_env_config()
llm = OpenAIModel(config=config)
web_searcher = Worker(
role="网络研究员",
instructions="""
您的任务是使用 DuckDuckGo 进行网络搜索。
根据用户查询找到最相关和准确的信息。
""",
actions=[DuckDuckGoSearch],
)
admin = Admin(
actions=[DuckDuckGoSearch],
planner=TaskPlanner(human_intervene=False),
memory=memory,
llm=llm,
)
admin.assign_workers([web_searcher])
query = input("输入您的查询: ")
description = f"为查询找到准确和相关的信息: {query}"
res = admin.run(query=query, description=description)
print(res)
应用场景
OpenAGI 的应用领域非常广泛,包括但不限于:
- 教育:在教育领域,代理可以提供个性化的学习体验,根据学生的进度、表现和兴趣定制学习内容,并自动化各种行政任务,提升教师的工作效率。
- 金融与银行:金融服务中,代理可以用于欺诈检测、风险评估、个性化银行建议、自动交易和客户服务。它们能够分析大量交易以识别可疑活动,并提供定制的投资建议。
- 医疗保健:在医疗领域,代理可以用于监控患者、提供个性化健康建议、管理患者数据和自动化行政任务,甚至还能根据症状和病史协助诊断疾病。
联系方式
如有任何问题、建议或需要支持,请通过 openagi@aiplanet.com 与我们联系。
贡献指南
OpenAGI 是一个在迅速发展的开源项目中茁壮成长的平台。我们热忱欢迎各种形式的贡献,如创新功能、基础设施的改进或精细化的文档。详情可参考项目的贡献指南。