OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  代码  ›  OpenAgents — 通用 AI Agent 平台

OpenAgents — 通用 AI Agent 平台

 
  analytics ·  2026-02-28 00:42:39 · 3 次点击  · 0 条评论  

OpenAgents:一个面向真实世界的语言智能体开放平台


OpenAgents 论文


在线演示


XLangNLPLab


用户手册


License: apache-2-0


GitHub Stars


开放问题


Twitter 关注


加入 Slack


Discord

xlang-ai%2FOpenAgents | Trendshift

English中文日本語한국어

当前的语言智能体框架主要关注于构建概念验证型的智能体,却忽视了非专业用户对智能体的访问,并且很少关注应用层面的设计。我们构建了 OpenAgents,一个面向日常生活真实场景的使用和托管语言智能体的开放平台。

目前,我们已在 OpenAgents 中实现了三个智能体,并在 演示网站 上免费提供使用!
1. 数据智能体:使用 Python/SQL 和数据处理工具进行数据分析;
2. 插件智能体:集成 200+ 日常工具;
3. 网页智能体:实现自主网页浏览。

OpenAgents 可以像 ChatGPT Plus 一样分析数据、调用插件、控制浏览器,但它具备 开源代码 的优势:
1. 易于部署
2. 全栈实现
3. 聊天式 Web UI
4. 智能体方法
5. …

OpenAgents 使普通用户能够通过一个针对快速响应和常见故障优化的 Web UI 与智能体功能交互,同时为开发者和研究人员提供在本地环境无缝部署的体验,为构建创新的语言智能体和促进真实世界评估奠定了基础。我们阐明了面临的挑战和充满希望的机遇,旨在为未来真实世界语言智能体的研究和开发奠定基础。

我们欢迎所有人的贡献。开始之前,请花点时间阅读我们的 CONTRIBUTING.md 指南,了解关于问题(Issues)和拉取请求(PRs)的规范。这将有助于确保您的贡献过程顺畅,并符合项目标准。

🔫 故障排除

如果您在使用我们的 在线演示 或本地部署时遇到任何问题,请加入我们的 Discord 寻求帮助。或者,如果您在功能或代码方面遇到困难,可以创建一个 问题

🔥 最新动态

  • [2023年10月26日] 我们的用户数已达到 3,000!🚀 衷心感谢所有用户和贡献者!🙏 由于服务器流量意外激增,我们正在努力应对,恳请各位耐心等待,我们将尽快为您提供协助!
  • [2023年10月18日] 试试 我们的 Lemur,这是面向语言智能体的 SOTA 开源基础模型,在 15 项智能体任务上媲美 ChatGPT!
  • [2023年10月17日] 查看 OpenAgents 论文 请点击这里
  • [2023年10月13日] 我们发布了 OpenAgents 平台的全部代码,包含三个智能体、服务器后端和前端!欢迎搭建您自己的本地版本,体验 OpenAgents!
  • [2023年8月17日] 我们的平台用户数正式突破 500!🚀
  • [2023年8月8日] 我们发布了 OpenAgents 演示,包括数据、插件和网页智能体!查看 教程用例

🥑 OpenAgents

我们构建了三个具有聊天式 Web UI 的真实世界智能体作为演示(查看 OpenAgents 演示)。以下是 OpenAgents 平台的简要概述。您可以在我们的 文档 中找到更多关于概念和设计的细节。

数据智能体

数据智能体 是一个为高效数据操作设计的综合工具包。它提供以下能力:

  • 🔍 搜索:快速定位所需数据。
  • 🛠️ 处理:简化数据获取和处理流程。
  • 🔄 操作:修改数据以满足特定需求。
  • 📊 可视化:以清晰且富有洞察力的方式呈现数据。

凭借其编写和执行代码的能力,数据智能体简化了各种以数据为中心的任务。通过不同的 用例 探索其潜力。

点击查看更多用例截图

插件智能体

插件智能体 无缝集成了超过 200 个第三方插件,每个插件都经过精心挑选,以丰富您日常生活的各个方面。借助这些插件,该智能体使您能够更高效地处理各种任务和活动。

🔌 插件示例

  • 🛍️ 购物:Klarna Shopping
  • ☁️ 天气:XWeather
  • 🔬 科学探索:Wolfram Alpha

组合插件使用

发挥协同作用的力量!插件智能体支持同时使用多个插件。计划旅行?可以无缝整合 Klook、货币转换器和 WeatherViz 的功能。

自动插件选择

通过我们的 自动插件选择 功能简化您的选择。让智能体根据您的需求,直观地搜索并推荐最佳的插件。

深入探索更多 用例,了解插件智能体的实际应用。

点击查看更多用例截图

网页智能体

网页智能体 利用 Chrome 扩展程序的能力,自动导航和探索网站。该智能体简化了网页浏览体验,使查找相关信息、访问所需资源等变得更加容易。

网页智能体能做什么的示例

  • 📍 谷歌地图导航:计划旅程?只需将您的起点和目的地告知网页智能体。它将为您导航谷歌地图并呈现最佳路线。
  • 🐦 推特发帖:与网页智能体对话并希望在推特上分享内容?提及内容,网页智能体将轻松处理您的推文。
  • 📝 谷歌表单协助:需要注册活动?分享谷歌表单链接和所需详细信息。网页智能体将为您填写表单。

在这些 用例 中见证网页智能体的全部潜力。

点击查看更多用例截图

💻 本地部署

我们已经发布了 OpenAgents 平台代码。欢迎在您自己的本地环境中部署!

以下是 OpenAgents 的简要系统设计:

从源代码部署

请查看以下文件夹和 README 文件进行设置和本地部署:

  1. 后端:用于托管我们三个智能体的 Flask 后端。
  2. 前端:前端 UI 和 WeBot Chrome 扩展程序。

注意:为了提高代码可读性,我们重命名了一些参数。如果您在 2023年10月26日 之前拉取过代码,请注意,如果您想拉取最新代码,由于键名不同,之前的本地聊天历史将会丢失。

Docker 部署

请按照以下步骤使用 docker-compose 部署 OpenAgents 平台。

注意: Docker 版本仍在开发中,因此某些功能可能无法按预期正常工作,且响应可能较慢。如果您有任何问题,请随时提出问题。如果您想要一个更稳定的版本,目前我们建议您从源代码部署。

  1. 如果您想使用 Kaggle 的数据集,必须修改 Dockerfile 中的信息为您正确的信息。
    ENV KAGGLE_USER="" \ KAGGLE_KEY=""
  2. 如果您不是在本地运行,需要修改 frontend/Dockerfile 中可访问的后端服务 IP。
    ENV NEXT_PUBLIC_BACKEND_ENDPOINT http://x.x.x.x:8000
  3. 在项目根目录下运行 docker compose build 命令。
  4. 如果您使用 OpenAI 的非官方服务,例如 FastChat,您需要修改 docker-compose.yml 中的 OPENAI_API_BASE;否则,您只需在 docker-compose.yml 中填入您的 OPENAI_API_KEY
  5. 完成上述步骤后,您可以运行 docker compose up -d 来启动所有服务。

注意事项
1. 如果您想使用 GPU,需要安装 Nvidia Container Toolkit,并取消注释 docker-compose.yml 中第 56-62 行的内容。
2. 使用自动插件功能会从 Huggingface 下载权重文件。在某些地区,可能会出现连接超时。请自行解决网络问题。

📜 扩展 OpenAgents 教程

代码结构

在深入了解如何扩展 OpenAgents 之前,让我们先概览一下代码结构以便更好地理解。
OpenAgents 的代码结构如下所示:

├── backend  # 后端代码
│   ├── README.md  # 后端 README,用于设置
│   ├── api  # RESTful API,供前端调用
│   ├── app.py  # 主 Flask 应用
│   ├── display_streaming.py  # 渲染流式响应
│   ├── kernel_publisher.py  # 代码执行队列
│   ├── main.py  # 后端主入口
│   ├── memory.py  # 后端内存(存储)
│   ├── schemas.py  # 常量定义
│   ├── setup_script.sh  # 后端一键设置脚本
│   ├── static  # 静态文件,例如缓存和图片
│   └── utils  # 工具函数
├── frontend  # 前端代码
│   ├── README.md  # 前端 README,用于设置
│   ├── components  # React 组件
│   ├── hooks  # 自定义 React Hooks
│   ├── icons  # 图标资源
│   ├── next-env.d.ts  # Next.js 环境变量的 TypeScript 声明
│   ├── next-i18next.config.js  # 国际化配置设置
│   ├── next.config.js  # Next.js 配置设置
│   ├── package-lock.json  # npm 生成的精确依赖树描述文件
│   ├── package.json  # 描述依赖项的清单文件
│   ├── pages  # Next.js 页面
│   ├── postcss.config.js  # PostCSS 配置设置
│   ├── prettier.config.js  # Prettier 配置设置
│   ├── public  # 静态资源
│   ├── styles  # 全局样式
│   ├── tailwind.config.js  # Tailwind CSS 配置设置
│   ├── tsconfig.json  # TypeScript 配置设置
│   ├── types  # 类型声明
│   ├── utils  # 工具或辅助函数
│   ├── vitest.config.ts  # ViTest 配置设置
│   └── webot_extension.zip  # 网页智能体的 Chrome 扩展程序
└── real_agents  # 语言智能体
    ├── adapters  # 三个智能体共享的适配器组件,用于适应后端
    ├── data_agent  # 数据智能体实现
    ├── plugins_agent  # 插件智能体实现
    └── web_agent  # 网页智能体实现

如上所示,backend/frontend/ 是自包含的,可以直接部署(参见 此处)。
这并不意味着它们不能被修改。
相反,您可以按照传统的 客户端-服务器 架构来扩展后端和前端。
对于 real_agents/,我们将其设计为“一个智能体,一个文件夹”,以便于扩展新的智能体。
值得注意的是,我们将其命名为“真实智能体”,因为它不仅包含了概念上的语言智能体部分,还填补了语言智能体与后端之间的空白。
例如,adapters/ 包含了共享的适配器组件,如流解析、数据模型、内存、回调等。
我们建议感兴趣的读者参考我们的 论文 了解概念和实现设计。
我们感谢 LangChain,因为我们基于他们的代码构建了真实智能体。

扩展一个新智能体

如果您想在我们提供的三个智能体之外构建一个新智能体,可以按照以下步骤操作:
- 参考 real_agents/ 文件夹,查看先前智能体的实现方式,并为您的智能体创建一个新文件夹。
- 在新文件夹中实现智能体逻辑。需要时使用 adapters/ 文件夹下的组件。
- 在 backend/api/ 文件夹下添加一个 chat_<新智能体>.py 文件,定义新智能体的聊天 API,该 API 将被前端调用。
- 如果需要,在 backend/schemas.py 中注册新的常量。
- 在 frontend/types/agent.ts 中添加一个新的 OpenAgentID,并在 frontend/utils/app/api.tsfrontend/utils/app/const.ts 中添加相应的 API。
- 需要时,在 frontend/components/Chat/Chat.tsxfrontend/components/Chat/ChatMessage.tsx 中实现智能体 UI。
- 运行本地脚本并测试您的新智能体。

注意,如果出现新的数据类型(即超出文本、图像、表格和 JSON),您可能需要在 backend/display_streaming.py 中实现其解析逻辑并添加新的数据模型。

扩展一个新的大语言模型(LLM)

如果 LLM 已经托管并可以通过 API 调用,扩展一个新的 LLM 作为智能体骨干则更为简单。
只需在 backend/api/language_model.py 中注册您的新模型。可以参考 lemur-chat 作为模板。

如果 LLM 尚未托管,我们有一个关于如何部署新 LLM 并将其作为 API 暴露的教程 请点击这里(LLM 托管待办)。

扩展一个新工具

如果您想在插件智能体中扩展一个新工具,可以按照以下步骤操作:
- 参考 `real_agents/plugins_

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor