
一个代码助手
(曾用名:Clippy)
.env 文件:OPENAI_API_KEY=...。可选地,你也可以添加 SerpAPI 密钥以允许模型使用搜索功能:SERPAPI_API_KEY=poetry install。poetry run clippinator --help。要在项目上运行它,请使用 poetry run clippinator PROJECT_PATHClippinator 的目的是为用户开发代码或与用户一起开发代码。
它可以自主地规划、编写、调试和测试一些项目。
对于更困难的任务,最佳使用方式是观察它的工作并提供反馈。


该工具由多个代理组成,它们协同工作以帮助用户开发代码。这些代理基于 GPT-4。
请注意,这基于运行时间较长的 GPT-4,因此在 OpenAI API 使用成本方面相当昂贵。
关键在于:它自身拥有合理的工作流程。它知道该做什么并且能够完成。当它正常工作时,速度比人类更快。
然而,它并不完美,经常可能出错。但与人类结合使用时,它将变得非常强大。
显然,如果你要求它处理非常底层的抽象任务,比如“编写一个实现 X 功能的函数”,它也能完成。它也会自行提出类似的任务,成功率不一。
但与你结合使用时,它几乎能完成所有工作,而只需要你进行少量干预。
如果项目简单,你只需提供最高层次的指导(例如“编写一个短链接生成 Web 服务”);如果项目更复杂,你会更多地参与其中,但 Clippinator 仍将完成大部分工作。

此工具有一个称为 任务主管 的主代理。它负责整体开发,可以使用工具并将任务委托给子代理。为了能够长时间运行,历史记录会被总结。
任务主管调用专门的子代理(助手),如 架构师 或 编写器。
任务主管首先会向用户询问一些问题以了解项目。
然后,它要求架构师规划项目结构,接着通过将任务委托给子代理来编写、调试和测试项目。
所有代理都可以访问规划好的项目架构、当前项目结构、来自 linter 的错误信息以及记忆。
代理使用不同的工具,例如写入文件、使用 bash(包括运行后台命令)、使用带 Selenium 的浏览器等。
我们有以下代理:架构师、编写器、前端工程师、编辑、质量保证、运维。它们都有不同的提示词和工具。
架构是由架构师编写的纯文本。
它是一个文件列表,其中包含以注释形式总结的文件内容摘要,以及重要代码行(如类和函数)。

所有代理都可以访问该架构。在初始阶段,实现架构是代理的目标。
已实现(或取自 Langchain)多种工具:

其中一个重要部分是项目结构,它会提供给所有代理。
这是一个通过 ctags 获取的文件列表,包含每个文件的一些重要代码行。
代码检查器的输出会显示在项目结构旁边。这对于理解项目的当前问题非常有帮助。
在使用 WriteFile 后,也会给出代码检查器的输出。
架构师可以使用 SetCI 工具配置代码检查命令。
所有代理也可以使用 Remember 工具向记忆中添加信息。记忆会提供给所有代理。
你可以按 ^C 为主代理提供反馈。请注意,如果在子代理执行期间按下,该子代理将被中止。唯一的例外是 架构师:你可以在它使用 DeclareArchitecture 工具后按 ^C 要求其修改架构。
在架构师运行后,如果你在提示中选择 y,也可以手动编辑项目架构。
如果你输入 m 或 menu,还可以编辑项目架构、目标和其他内容。
由 Lev Chizhov 和 Timofey Fedoseev 创建,Sergei Bogdanov 亦有贡献