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 服务器并使其可从容器外部访问);获取天气预报。
使用方式
安装步骤:
- 克隆仓库:
git clone https://github.com/saten-private/BabyCommandAGI.git - 进入目录:
cd BabyCommandAGI - 创建环境变量文件:
cp .env.example .env - 设置
ANTHROPIC_API_KEY(若使用 OpenAI 模型,设置OPENAI_API_KEY) - (可选)将任务管理系统的目标设置为
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 环境搭建、获取天气预报),但此处不一一列出。