BeeBot:自主AI助手的应用
探索BeeBot的功能和应用,打造高效任务管理
BeeBot 是您的个人助手,是一款设计用于自主执行各种实用任务的自主AI助手。它通过选择和使用多种工具来高效完成任务,旨在提供用户友好的平台进行任务自动化管理。
状态
BeeBot的开发目前处于停滞状态。我认为LLMs(截至2023年末的情况)在结构化思维、可靠结果和遵循指令方面尚未达到广义自主AI的要求。如果以下情况发生之一,我将重新启动该项目:
- LLM在结构化思维、可靠结果和遵循指令方面有了显著改进
- 我能够开发或调整一个专门用于自主AI训练的定制模型
- 我找到了BeeBot能够胜任的特定任务子集(提示:不是编码)
请定期查看这里,希望项目能够重新启动。
特点
- 通过AutoPack进行工具选择,并能够在任务执行期间获取更多工具
- 内置持久性
- 符合e2b标准的REST API
- 用于发布BeeBot内部所有事件的Websocket服务器
- 可切换的文件系统仿真,使文件可以存储在内存中、磁盘上或数据库中
- 用于管理任务的Web UI(即将推出)
- 在任务执行期间动态操作历史记录
- 内置缓存,如果启用,使用Helicone
安装
要开始使用BeeBot,请将存储库克隆到您的本地计算机,并使用poetry
安装其依赖项。这些说明可能会根据您的本地开发环境而有所不同。
git clone https://github.com/AutoPackAI/beebot.git
cd beebot
./setup.sh
Windows官方不受支持,但可能会工作。欢迎为Windows兼容性提供PR,但这不会成为主要关注点。
持久性
持久性是必需的。虽然SQLite是官方支持的,并在测试中使用,但强烈建议您使用通过docker使用Postgres,只需执行docker compose up -d
。
运行
命令行界面(CLI)
要使用CLI,请运行:
poetry run beebot
API
要启动服务器,请运行:
uvicorn beebot.initiator.api:create_app --factory --timeout-keep-alive=300
如果您正在对BeeBot本身进行开发,您可能希望使用以下命令:
uvicorn beebot.initiator.api:create_app --factory --reload --timeout-graceful-shutdown=3 --timeout-keep-alive=300
然后,您可以使用以下命令调用API:
要创建任务,请运行:
curl --request POST \
--url http://localhost:8000/agent/tasks \
--header 'Content-Type: application/json' \
--data '{
"input": "Write '\''hello world'\'' to hi.txt"
}'
您将获得以下响应:
{
"input": "Write 'hello world' to hi.txt",
"task_id": "103",
"artifacts": []
}
然后,要执行任务的一步,请复制上一个请求中获得的task_id
,并运行:
curl --request POST \
--url http://localhost:8000/agent/tasks/<task-id>/steps
Websocket连接
注意:通知目前正在重新制作,可能无法正常工作
要接收BeeBot中所有数据模型更改的流,请订阅到与Web API相同的主机/端口的websocket连接的/notifications
端点,例如 ws://localhost:8000/notifications。使用您喜欢的websocket测试工具进行尝试。
Web界面
我们正在使用Node.js(Remix)开发Web界面。
哲学
BeeBot的开发过程受特定哲学的指导,强调塑造其开发和未来方向的关键原则。
优先事项
BeeBot的开发受以下优先事项的驱动,始终按照以下顺序:
- 功能性:BeeBot旨在在其预期能力范围内实现任务的高成功率。
- 灵活性:BeeBot致力于适应各种任务,随着时间的推移扩大该范围。
- 可靠性:BeeBot专注于可靠地完成已知任务,并具有可预测性。
- 效率:BeeBot旨在以最少的步骤执行任务,优化时间和资源的使用。
- 便利性:BeeBot旨在为任务自动化提供用户友好的平台。
原则
为了实现这些优先事项,BeeBot遵循以下原则:
- 以工具为中心:BeeBot精选并描述工具,确保LLMs可靠使用。它使用AutoPack作为其工具的软件包管理器。
- LLM专业化:BeeBot将利用多种最适合不同任务的LLMs,而OpenAI仍然是规划和决策的主要LLM。
- 优先考虑功能性和灵活性:BeeBot优先考虑功能性和灵活性,而不是开发者的生活质量,这可能会限制对特定平台和其他部署便利性的支持。
- 非正统方法:BeeBot采用非传统的开发方法来提高开发速度,例如缺乏单元测试。相反,使用端到端测试,确保整个系统按预期工作。
- 已证实的概念:BeeBot只在证明了它们能够增强其五个优先事项后才采用新概念。因此,它没有复杂的内存或思维树。