clippinator

Clippinator

GitHub Repo starsGitHub Issues or Pull RequestsTwitter Follow

代码助手

(原名为Clippy)

Twitter帖子

入门指南

安装Poetry。

克隆此仓库。

在.env文件中添加API密钥(OpenAI):OPENAI_API_KEY=…。可选择添加SerpAPI密钥以允许模型使用搜索:SERPAPI_API_KEY=

安装ctags。

对于pylint,安装它和pylint-venv。

安装依赖:poetry install。

运行:poetry run clippinator –help。在项目上运行时,使用poetry run clippinator PROJECT_PATH

你可以停止它,然后它会从上次保存的状态继续。使用^C向主代理提供反馈。

详情

Clippinator的目的是为用户或与用户一起开发代码。它可以自主规划、编写、调试和测试一些项目。对于更困难的任务,最佳使用方式是查看其工作并向其提供反馈。

该工具由几个代理组成,它们协同工作以帮助用户开发代码。这些代理基于GPT-4。请注意,这基于长时间运行的GPT-4,因此在OpenAI API方面相当昂贵。

事实是:它自身有一个合理的工作流程。它知道要做什么,并且能够做到。当它正常工作时,速度比人类快。然而,它并不完美,经常会犯错误。但与人类结合使用时,它非常强大。

显然,如果你要求它在非常低的抽象级别上做某事,比如”编写一个执行X的函数”,它会做到。它会自行提出这样的任务,成功程度不一。但与你结合使用时,它将能够完成一切,只需要你少量的干预。如果项目简单,你只需提供最高级别的指导(”编写一个链接缩短Web服务”),如果项目更复杂,你会更多地参与其中,但Clippinator仍将完成大部分工作。

Taskmaster

这个工具有一个名为_Taskmaster_的主要代理。它负责整体开发。它可以使用工具并将任务委派给子代理。为了能够长时间运行,历史记录会被总结。

Taskmaster调用专门的子代理(小兵),如_Architect_或_Writer_。

Taskmaster首先向用户提出一些问题以了解项目。然后它要求Architect规划项目结构,之后通过将任务委派给子代理来编写、调试和测试项目。

小兵

所有代理都可以访问计划的项目架构、当前项目结构、来自linter的错误和内存。代理使用不同的工具,如写入文件、使用bash(包括运行后台命令)、使用带有Selenium的浏览器等。

我们有以下代理:Architect、Writer、Frontender、Editor、QA、Devops。它们都有不同的提示和工具。

架构

架构只是由Architect编写的文本。它是一个文件列表,包含其内容的摘要,以注释形式呈现,以及重要行(如类和函数)。

架构对所有代理都可用。在初始阶段,实现架构是代理的目标。

工具

已实现(或从Langchain中获取)各种工具:

文件工具:WriteFile、ReadFile以及当前未使用的其他工具。

终端工具:RunBash、Python、BashBackground(允许启动和管理后台进程,如启动服务器)。

人工输入

Pylint

Selenium – 用于测试的浏览器自动化。它允许以便捷格式查看页面、获取控制台日志、点击、输入、执行selenium代码

HttpGet、GetPage – 用于获取页面的更简单工具

DeclareArchitecture、SetCI、Remember – 允许代理设置环境、编写架构、记住事情

项目结构、Linting、CI、内存

其中一个重要部分是项目结构,它提供给所有代理。这是一个文件列表,包含一些重要行,通过ctags获得。

Linter输出与项目结构一起提供。它有助于理解项目的当前问题。使用_WriteFile_后也会提供Linter输出。Architect可以使用_SetCI_工具配置linter命令。所有代理还可以使用_Remember_工具将一些信息添加到内存中。内存会提供给所有代理。

反馈

你可以按^C向主代理提供反馈。请注意,如果你在子代理执行期间按下它,子代理将被中止。这里唯一的例外是_Architect_:你可以在它使用DeclareArchitecture工具后按^C要求它进行更改。

在运行Architect后,如果你在提示中选择y,你还可以手动编辑项目架构。

如果你输入m或menu,你还可以编辑项目架构、目标和其他内容。

由Lev Chizhov和Timofey Fedoseev创建,Sergei Bogdanov贡献

Twitter帖子

发表回复