SuperAPI AI 工具集

BabyCommandAGI

BabyCommandAGI 是一个基于 BabyAGI 的开源项目,旨在探索将命令行界面(CLI)与大型语言模型(LLM)结合的潜力。它通过让 LLM 与 CLI 对话,自动执行和规划任务,实现自动编程、环境搭建等场景。用户需配置 Claude 或 OpenAI API 密钥,在 Docker 环境中运行。该系统目前处于早期阶段,可能循环执行或破坏环境,建议在虚拟环境中使用并注意 API 成本。

访问官网

工具介绍

BabyCommandAGI 是一个实验性项目,设计用于测试将命令行界面(CLI)与大型语言模型(LLM)结合时会发生什么。CLI 是比图形用户界面(GUI)更古老的计算机交互界面,许多计算机操作仍可通过 CLI 完成。该项目基于 BabyAGI,使用最新的 LLM API,想象 LLM 与 CLI 进行对话,并探索可能的新用例。

主要能力

BabyCommandAGI 旨在通过连续循环自动执行任务。其工作流程如下:从任务列表拉取下一个任务(初始为一个计划任务);判断任务是命令任务还是计划任务;如果是命令任务,则执行命令,若执行结果状态码为 0(成功)则继续,否则(失败)使用 LLM 分析执行历史并根据目标(OBJECTIVE)创建新任务列表;如果是计划任务,则基于计划任务、执行历史和目标使用 LLM 进行规划并创建新任务列表;若用户提供反馈,则根据目标、执行历史和反馈规划并创建新任务列表。

该项目支持 Claude 3.7 Sonnet(包括扩展思考)和 o3-mini-hight(OpenRouter)。推荐使用 Claude 3.7 Sonnet 或更高版本,经其验证。若使用 GPT-4 Turbo,建议使用旧版 BabyCommandAGI v3。

已知有用例包括:自动编程(仅提供反馈即可自动创建应用,如黑白棋、贪吃蛇游戏);自动环境搭建(在 Linux 容器环境中安装 Flutter、创建 Flutter 应用、启动 Web 服务器并使其可从容器外部访问);获取天气预报。

使用方式

安装步骤:

  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/)。
  • 注意:即使按 Ctrl+C 退出,除非运行 docker-compose stop 或 ./clean.sh,否则不会停止。
  • 注意:如果无法达目标,代理可能无限循环,请注意 Anthropic 和 OpenAI API 使用成本。
  • AI 生成的项将创建在 workspace 文件夹中。
  • 如果失败,可以再次运行从中断处恢复。
  • 更改 OBJECTIVE 将清除未来任务列表和 OBJECTIVE 反馈。
  • 输入 "f" 可以向 AI 提供关于 OBJECTIVE 的用户反馈,这允许 AI 获得 CLI 不可用的信息(如 GUI)。
  • 在 AI 执行命令时回答:通常 AI 无法对正在执行的命令回答 "y" 或 "n",但输入 "a" 可以进入回答模式。(如果 shell 命令等待 "y" 或 "n" 回答超过 5 分钟,且 LLM 认为适当,LLM 将根据当时情况自动回答 "y" 或 "n"。)

有用命令:

  • workspace:重置环境(容器)。./new_store.sh 也执行此操作。
  • ./backup_workspace.sh:通过在 workspace_backup 中创建以当前时间命名的文件夹来备份工作区。(注意:环境(容器)和 BabyCommandAGI 数据不会被备份。)
  • 新的 BabyCommandAGI 数据(记忆信息)将被创建。由于切换到新数据,BabyCommandAGI 将不记得任何内容。

日志:执行期间的日志保存在 log 文件夹下。日志文件名由 OBJECTIVE 标识符和 RESULTS_STORE_NAME 决定。以下内容保存到已执行的点:

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

适用场景与限制

适用场景:自动编程、自动环境搭建、获取信息(如天气预报)等。

限制与注意事项:

  • 可能无意中破坏环境。基本上,请在虚拟环境(如 Docker)中运行。
  • 可能无法达目标并持续循环。(此类情况下 API 使用量可能增加,请负责任地使用。)
  • 该项目仍处于早期阶段,正在确定方向和实现步骤。目前追求简单性。提交 PR 时,请遵循:关注小型、模块化修复而非大规模重构;引入新功能时,提供对应具体用例的详细说明。
  • 作者注(2023年5月21日):作者不习惯贡献开源,白天有另一份工作,可能无法频繁检查 PR 和 issues,但珍视这个想法,希望它对大家有用。作者是新手,不会说英语,对日本以外的文化了解有限。

其他信息

GitHub Sponsors:项目维护依靠赞助者。可以每月 5 美元成为赞助者。

该项目的官方文本还包含了一些 Twitter 链接示例(如黑白棋、贪吃蛇游戏、Flutter 环境搭建、获取天气预报),但此处不一一列出。