OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  BabyCommandAGI 将CLI与LLM结合的实验性智能体框架

BabyCommandAGI 将CLI与LLM结合的实验性智能体框架

 
  frontend ·  2026-03-19 00:56:32 · 6 次点击  · 0 条评论  

⭐️现已支持 Claude 3.7 Sonnet(包括扩展思考)和 o3-mini-hight (OpenRouter)⭐️

注意事项

  • 它可能会无意中破坏环境。基本上,请在 Docker 等虚拟环境中运行。
  • 它可能无法达成目标并陷入循环。(这种情况下 API 使用量可能会增加,请负责任地使用。)
  • 基本上,我们建议使用 Claude 3.7 Sonnet 或更高版本,因为该版本已通过 Claude 3.7 Sonnet 或更高版本验证。
    (如果您使用 GPT-4 Turbo,建议使用旧版 BabyCommandAGI 的 v3 版本)

目标

BabyCommandAGI 旨在测试当您将比 GUI 更古老的计算机交互界面 CLI 与 LLM 结合时会发生什么。不熟悉计算机的人可能不知道,CLI 是一种古老的计算机交互界面。即使在今天,许多计算机操作仍然可以通过 CLI 完成(常见的 Linux 服务器主要使用 CLI)。想象一下 LLM 和 CLI 在进行对话。思考可能发生的事情令人兴奋。我希望大家都能尝试一下,并发现新的用例。

推荐使用 Claude 3.7 Sonnet 或更高版本的 API 来运行此系统。

这个 Python 脚本系统基于 BabyAGI。然而,为了高效执行命令,BabyAGI 中作为思考部分的功能已被大幅简化。(这可能会在以后改变)

用例

BabyCommandAGI 有潜力应用于各种场景。请尝试使用它以发现更多用例。

以下是一些已知的有用用例。

自动编程

仅通过提供反馈即可自动创建应用程序

编程示例

  • 黑白棋
    https://x.com/saten_work/status/1791550524988490053
  • 贪吃蛇游戏
    https://x.com/saten_work/status/1723509089471492563

自动环境设置

  • 在 Linux 容器环境中安装 Flutter,创建 Flutter 应用,启动 Web 服务器,并使其可以从容器外部访问

https://twitter.com/saten_work/status/1667126272072491009

其他

  • 获取天气预报
    https://x.com/saten_work/status/1791558481432232355

运行机制

该脚本通过执行以下连续循环来工作:

  1. 从任务列表中拉取下一个任务。(开始时是一个计划任务。)
  2. 判断任务是命令任务还是计划任务。
  3. 如果是命令任务:
    1. 执行命令。
    2. 如果命令执行结果的返回状态码是 0(成功):
      转到第 5 步。
    3. 否则(失败):
      使用 LLM 分析执行历史,并根据目标创建新的任务列表。
  4. 如果是计划任务:
    1. 使用 LLM 基于计划任务、执行历史和目标进行规划,并创建新的任务列表。
  5. 如果生成了用户反馈:
    1. 使用 LLM 基于目标、执行历史并考虑反馈进行规划,创建新的任务列表。

架构图

设置

请按照以下步骤操作:

  1. git clone https://github.com/saten-private/BabyCommandAGI.git
  2. 使用 cd 进入 BabyCommandAGI 目录。
  3. 使用 cp .env.example .env 创建用于插入环境变量的文件。
  4. 设置 ANTHROPIC_API_KEY。(如果使用 OpenAI 模型,则设置 OPENAI_API_KEY)
  5. (可选)将任务管理系统的目标设置为 OBJECTIVE 变量。

执行 (Docker)

前提条件是必须安装 docker 和 docker-compose。Docker Desktop 是最简单的选择:https://www.docker.com/products/docker-desktop/

运行

docker-compose up -d && docker attach babyagi

停止

docker-compose stop

注意:即使您使用 Ctrl+C 退出,除非运行 docker-compose stop./clean.sh,否则不会停止。请务必小心。

注意:如果代理无法实现其目标,可能会无限循环。请注意 Anthropic 和 OpenAI API 的使用成本。

AI 生成的项目将创建在 workspace 文件夹中。

如果失败,可以通过再次运行来从上次中断的地方恢复。

更改 OBJECTIVE 将清除未来的任务列表和 OBJECTIVE 反馈。

向 AI 提供反馈

通过输入 "f",您可以就 OBJECTIVE 向 AI 提供用户反馈。这使得 AI 可以反馈从 CLI 无法获得的信息,例如 GUI 信息。

在 AI 执行命令时回答

通常,AI 无法对其正在执行的命令做出诸如 "y" 或 "n" 的回答,但通过输入 "a" 可以进入能够回答的模式。

(顺便说一下,如果 shell 命令等待类似 "y" 或 "n" 的答案超过 5 分钟,并且 LLM 认为回答是合适的,LLM 将根据当时情况的判断自动回答 "y" 或 "n"。)

有用的命令

  • ./clean.sh

重置环境(容器),同时也会执行 ./new_store.sh
- ./backup_workspace.sh

通过在当前时间命名的文件夹中备份您的 workspaceworkspace_backup 目录。
(请注意,环境(容器)和 BabyCommandAGI 数据不会被备份。)
- ./new_store.sh

将创建新的 BabyCommandAGI 数据(记忆信息)。由于切换到新数据,BabyCommandAGI 将不记得任何内容。

日志

执行期间的日志保存在 log 文件夹下。
日志文件名由 OBJECTIVE 标识符和 RESULTS_STORE_NAME 决定。

保存的数据

以下内容会保存到执行点:
- 执行到某个点的任务保存在 data 文件夹下。
- 最后一个当前目录保存在 pwd 文件夹下。
- 最后环境变量的转储保存在 env_dump 文件夹下。

贡献

BabyCommandAGI 仍处于早期阶段,正在确定其发展方向和实现步骤。目前,BabyCommandAGI 的目标是保持简洁。为了保持这种简洁性,提交 PR 时,我们恳请您遵循以下准则:

  • 专注于小型、模块化的修复,而不是大规模的重构。
  • 引入新功能时,请提供相应具体用例的详细说明。

来自 @saten-private 的说明 (2023年5月21日):

我不太习惯为开源项目做贡献。我白天还有另一份工作,不确定是否能频繁查看 PR 和问题。然而,我珍视这个想法,并希望它对大家有用。如果有任何问题,请随时告诉我。我期待向大家学习很多。
我是一个新手,不会说英语,对日本以外的文化也知之甚少。但是,我珍视我的想法,并希望它们能对许多人有用。
(我相信未来我还会继续想出很多无聊的想法)

✨ BabyCommandAGI 的 GitHub 赞助者 ✨

本项目的维护得益于以下所有赞助者的支持。如果您想成为赞助者并将您的头像/徽标显示在下方,请 点击这里。💖 您只需 5 美元即可成为赞助者。

6 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 43 ms
Developed with Cursor