简介
OpenBot 是一个开源的 Agent(智能体)平台。它没有自己的用户界面。你通过 HTTP API 使用它。 Agent 是一种程序。它接收用自然语言写的目标,规划步骤,使用工具,然后给出结果。
OpenBot 在服务器上运行 Agent 的工作,并保存历史记录。Agent 要使用新能力之前,OpenBot 会先询问人。 客户端由你自己提供:可以是脚本、后端服务、聊天机器人,或者你自己的网页或移动应用。
你可以做什么
- 启动一个 Session(会话),并通过 Turns(轮次)给它工作。你可以一次读取完整回答,也可以读取实时流。
- 每次变化都会写入 Session 的 Timeline(时间线)。你可以回到之前的某个点,用 Fork(分叉)尝试另一条路径。
- 让 Agent 使用 Apps:这是人们连接到自己账户的外部服务。
- 维护一个长期存在的 Agents 团队,例如一个程序员和一个写作者。每个 Agent 有自己的上下文和记忆,它们之间可以互相分派工作。
- 让 Agent 在计划模式中先做计划,维护待办列表,并等待。用触发器按计划时间或通过 webhook 启动它的工作。
- Agents 没有预设的限制。当 Agent 尝试新的事情时,它上面的决策者会回答一个 request(请求),这个回答会被保存下来。
- 在公开的 App Index(App 索引)中查找 Apps,并以发布者身份检查你自己的 App。
工作原理
| 部分 | 作用 |
|---|---|
| OpenBot | 服务器。它运行 Sessions,把数据存到 PostgreSQL,并提供 HTTP API。 |
| Platform | 一个部署,包含多个组织。平台管理员通过 API 管理它。 |
| 登录 | 一个人在浏览器中登录一次,使用平台或其所在组织的 OpenID Connect 提供方。 |
| 用户令牌 | 程序在每次调用时,都在 Authorization: Bearer <token> 请求头中发送一个令牌。 |
| 权限 | 角色和策略决定每个成员和每个令牌可以做什么。 |
| API 契约 | 一份有类型的契约,生成服务器、TypeScript 客户端和 API 参考。 |
| App Protocol | 一种开放的方式,用来在网上发布 Apps,让 Agents 能找到并使用它们。 |
每个 OpenBot 都会告诉你下一步去哪里。发送 GET / 来读取它的服务文档:
curl https://api.example.com/{ "name": "OpenBot API", "documentation": "/docs", "openapi": "/openapi.json", "auth": "/auth", "tokens": "/v1/user/tokens"}许可证
OpenBot 是自由软件,使用 GNU Affero 通用公共许可证第 3 版,且仅限第 3 版(AGPL-3.0-only)。
如果你通过网络为其他人运行修改过的 OpenBot,你必须向他们提供你所做修改的源代码。
完整文本见 LICENSE 文件。