この記事は、インテリジェントAIの理解と導入に関するシリーズの一部である:
- 知的ボディAIシリーズ1:デビンとエージェント・カーソルの比較
- 知的身体AIシリーズ2:考える人から実行する人へ - 知的身体AIのパラダイム変革と技術アーキテクチャ
- 智能体 AI 系列 3:将 20 美元变成 500 美元 – 一小时内将 カーソル に変える デヴィン (この記事)
- 知的ボディAIシリーズ4:カーソルをAIの共通エントリポイントにする
前回の記事では、完全自動プログラミングが可能な知的ボディAI、デヴィンについて説明した。カーソルや ウィンドサーフ Devinのような他のインテリジェント・ボディAIツールと比較して、工程計画、自己進化、拡張ツール使用、完全自動化オペレーションにおいて中核となる強みがある。このため、Devinは次世代ツールのように見え、既存の知的ボディAIツールとは一線を画している。
しかし、しばらく使っているうちに、私の「ビルダー精神」が再燃し、Devin 90%の機能を実装するためにWindsurfとCursorを改造するように促されました。私はまた、これらの改造をオープンソース化し、CursorやWindsurfをわずか1分でDevinに変換できるようにした。この記事では、これらの改造がどのように行われたかに焦点を当て、この例がインテリジェントAIの時代にいかに効率的な構築とスケーリングが可能かを実証する。議論を簡単にするため、このようなツールを指すときはCursorを使うことにする。最後に、Windsurfを使いたい場合、どのような微調整が必要かを説明する。
アーティファクト | 工程計画 | 自己進化 | ツール・エクステンション | 自動化された実装 | 物価 |
---|---|---|---|---|---|
デヴィン | あり(自動、完全) | あり(自習) | 十分 | アジュバント | $500/月 |
カーソル(修正前) | 制約 | 詰り | 限られたツールセット | マニュアル確認 | $20/月 |
カーソル (変更) | デビンに近い。 | であります | デビンに近く、拡張性がある | 確認または回避策が必要 | $20/月 |
ウィンドサーフ(修正) | デビンに近い。 | そうだが、間接的に | デビンに近く、拡張性がある | Dockerコンテナでの完全自動化のサポート | $15/月 |
工程計画と自己進化
前の記事で述べたように、デヴィンの興味深い点は、組織化されたインターンのように振る舞うことだ。まず計画を作成し、実行しながら計画の進捗状況を更新し続けることを知っている。これにより、私たちAI管理者は、AIが当初の計画から逸脱するのを防ぎつつ、AIの現在の進捗状況を把握しやすくなり、より深い思考とタスク完了の質を高めることができる。
この機能は印象的に見えるが、実際にはカーソルを使って非常に簡単に実装できる。
カーソルの場合、開いたフォルダーのルート・ディレクトリーに、次のような名前のファイルがある。 .cursorrules
言い換えると、このファイル内のすべてが、バックエンドAIに送信されるプロンプトの一部になる(GPTやGPTなど)。このファイルの特別な点は、Cursorがバックエンドの大きな言語モデルに送信するプロンプトを変更できることです。言い換えると、このファイル内のすべてがバックエンドのAIに送信されるプロンプトになります(たとえば、GPTやGPTなど)。 クロード)はプロンプトの一部である。これによって、カスタマイズの自由度が大きく広がった。
例えば、カーソルと対話するたびに、カーソルがプランの最新版を受け取るように、プランの内容をこのファイルに入れることができる。また、タスクの開始時に計画を考えさせ、各ステップの後に計画を更新するなど、より詳細な指示をこのファイルに与えることもできる。Cursor はエージェントを使用してファイルを変更することができます。 .cursorrules
それ自体がファイルで、閉じたループを作る。毎回ファイルの中身を自動的に読み込んで最新のアップデートが何かを調べ、反映されたら、更新された進捗状況と次のステップをこのファイルに書き込むことで、常に最新のアップデートが得られるようになっている。
同様のアプローチで、自己進化する機能を実現することができる。それは .cursorrules
ファイルでは、ユーザーによって修正されたときにカーソルが間違いを反省し、記録すべき再利用可能なレッスンがあるかどうかを検討するために、いくつかのプロンプトを追加する。もしそうであれば .cursorrules
ドキュメントの関連部分。こうして、プロジェクト特有の知識が蓄積される。
一个典型的例子是,当前的大语言模型由于知识截止日期相对较早,很多都不知道 GPT-4o 模型。如果你要求它们调用 GPT-4o,它们会删除 ‘o’,认为这是一个错别字。但如果你纠正它们:“这个模型实际上存在,你只是不知道它”,它们会将这个经验教训记录在 .cursorrules
的相关部分,并且不会再犯同样的错误,从而实现学习和改进。然而,这仍然取决于 prompt 是否有效 – 有时它可能会遗漏一些要点,并且不一定会记录我们认为应该注意的知识。在这种情况下,我们也可以使用自然语言来提示它,直接告诉它记下这一点。这种更直接的方法也可以实现 AI 的经验积累和成长。
したがって .cursorrules
ファイルといくつかのプロンプトのトリックを使えば、デヴィンの印象的なプロセス・プランニングと自己進化能力を、既存の知能AIプログラミング・ツールに加えることができる。
ウィンドサーフを使用する場合、1つだけ異なる点がある。 .windsurfrules
ファイルに分割する必要がある。したがって、このファイルを2つの部分に分割する必要がある。 scratchpad.md
.で .windsurfrules
ドキュメントでは、それぞれの思考プロセスの前にスクラッチパッドをチェックし、そこでプランを更新するべきだと述べた。この間接的なやり方は、直接スクラッチパッドに書き込むのに比べると、あまり良くないかもしれない。 .cursorrules
それでもAIがエージェントに電話をかけ、フィードバックに基づいて考える必要があるため、実際には機能する。
拡張ツール使用
Cursorに対するDevinの主な利点のひとつは、より多くのツールを使用できることだ。例えば、ブラウザを呼び出して検索したり、ウェブをブラウズしたり、さらにはビッグ・ランゲージ・モデルのインテリジェンスを使ってコンテンツを分析するために自身の頭脳を使うこともできる。Cursorはデフォルトではこの機能をサポートしていないが、Devinでは .cursorrules
カーソルのプロンプトを直接制御し、コマンド実行機能を持つことで、もうひとつの閉じたループが生まれる。Pythonのライブラリやコマンドラインツールなど、あらかじめ書かれたプログラムを用意し、それを .cursorrules
このような道具を導入することで、その道具の使い方を即座に学び、自然に理解できるようになる。
実際、ツール自体はCursorを使って1、2分で書くことができる。例えば、ウェブブラウジング機能については、オープンソースプロジェクトでリファレンス実装を提供している。JavaScriptを多用するウェブサイトでは、Pythonのリクエスト・ライブラリの代わりにplaywrightのようなブラウザ自動化ツールを使うなど、注意すべき技術的な決定もある。さらに、大きな言語モデルとのコミュニケーションを良くし、後続のコンテンツを理解しクロールしやすくするために、単に美しいスープを使ってウェブページのテキストコンテンツを抽出することはしない。その代わりに、一定のルールに従ってマークダウン形式に変換し、クラス名やハイパーリンクなど、より詳細な基本情報を保持することで、ビッグ・ランゲージ・モデルが後続のクローラを記述する際に、より基本的なレベルでサポートできるようにしている。
同様に、検索ツールに関しても、ちょっとした注意点がある。BingとGoogleの両社は、APIとウェブ・インターフェースを扱う異なるチームの歴史によるところが大きいのだが、API検索はクライアント側の検索よりもはるかに品質が劣っている。しかし、DuckDuckGoにはこのような問題はないので、我々のリファレンス実装ではDuckDuckGoの無料APIを使用している。
关于 Cursor 使用自己的脑力进行深入分析,这相对更复杂。一方面,Cursor 确实具有一定程度的这种能力 – 在上述两个工具中,当我们向 stdout 打印网页内容时,它会成为 Cursor 发送给 大语言模型 的 prompt 的一部分,使其能够对该文本内容进行智能分析。但从另一个角度来看,Devin 具有一种独特的能力,可以使用 大语言模型 对相对大量的文本进行批量处理,而 Cursor 无法做到这一点。因此,为了赋予它这种能力,我们实现了一个额外的工具 – 非常简单,只是预先在系统中设置我们的 API 密钥,然后让这个工具调用 GPT 或 Claude 或我们本地的 大语言模型 API,从而使 Cursor 能够使用 大语言模型 批量处理文本。在我的参考实现中,我使用我自己的本地 ヴルム 集群,但修改起来非常简单 – 只需删除 base_url 行即可。
しかし、このような修正を加えても、カーソルの限界により、2つのツールを実装することはできない:
- Devin 似乎具有图像理解能力,这就是为什么它可以执行前端交互和测试,但由于 Cursor 的限制,我们无法将图像作为输入传递给后端 AI – 这需要对其实现进行更改。
- Devinは不思議なことに、データ収集の過程でクローラー対策アルゴリズムにボットとしてフラグを立てられることはないが、我々のウェブ検索ツールはしばしばCAPTCHAに遭遇したり、ブロックされたりする。これは修正可能かもしれないし、まだ模索中だが、Devinのユニークな強みのひとつであることは間違いない。
完全自動実行
最後の興味深い機能は、完全自動実行だ。Devinは完全に仮想化されたクラウド環境で実行されるため、大きな言語モデル攻撃や危険なコマンドの誤実行を心配することなく、あらゆる種類のコマンドを安全に実行させることができる。システム全体を削除しても、新しいコンテナを起動するだけですべてが元通りになる。しかし、Cursorをlocalhostシステム上で実行することは、重大なセキュリティ・リスクとなる。そのため、Cursorのエージェント・モードでは、各コマンドを実行する前に手動で確認する必要がある。これは比較的単純なタスクであれば許容できるが、洗練されたプロセス・プランニングと自己進化機能を持つ現在、Cursorは長期の複雑なタスクも処理できるため、この対話方法はCursorの機能には不向きと思われる。
これに対処するために、Cursorをベースにした解決策はまだ見つかっていませんが(更新:2024年12月17日、CursorはYolo Modeと呼ばれるこの機能も追加しましたが、まだDockerでの開発をサポートしていません)、Windsurfはこの点を考慮しており、そのデザインから、当初からDevinのような製品形態を目指しており、現在のコードエディタは中間的な形態です。具体的には、WindsurfはDockerコンテナに直接接続して、その中で実行する機能を持っています。また、設定ファイルがあれば、新しいDockerコンテナを起動して、初期化を行い、ローカル・フォルダをマッピングすることもできます。そのため、ローカル・フォルダの変更を除くすべてのコマンドはDockerコンテナ内で実行され、ホスト・システムに影響を与えないため、セキュリティが大幅に向上する。
在此基础上,它还引入了黑名单/白名单机制,自动拒绝黑名单上的命令,允许白名单上的命令。对于既不在列表中也不在黑名单上的命令,大语言模型 会智能地判断是否存在对主机系统的风险 – 例如,如果它想删除文件夹中的文件,它会要求用户确认,但像 pip install
このような汎用コマンドは直接許可される。なお、この機能はDockerコンテナで実行する場合にのみ有効になるようだ。ホスト・システム上でコマンドを実行する場合は、やはりCursorと似たようなエクスペリエンスになり、頻繁な確認が必要になる。さらに、自動コマンド実行は設定で有効にする必要がある。
概要
因此,我们可以看到,虽然 Devin 的产品形式和设计理念确实非常先进,但从技术壁垒的角度来看,它与现有智能体 AI 工具之间的差距并不像我们想象的那么大。使用每月花费 15-20 美元的流行工具,如 Cursor 和 Windsurf,我们可以在一小时内实现 Devin 90% 的功能,并用它来完成以前不可能完成的复杂任务。例如,我给 Cursor 分配了一个任务,分析过去 5 年热门科技股的回报率,进行深入的数据分析,它提供了一份非常详细而全面的报告。此外,我让 Windsurf 抓取我博客上排名前 100 的文章的发布时间,并以 GitHub 贡献图表的形式将其可视化,它可以完全自动完成。这些类型的任务是传统的 Cursor 和 Windsurf 无法完成的 – 只有 Devin 可以完成它们,但在进行了这些简单的修改之后,我们可以用每月 20 美元的工具实现每月 500 美元工具的效果。我甚至做了一个更深入的实验:作为一个完全不熟悉前端开发的开发者,我花了一个半小时创建了一个招聘网站,包括前端和后端。这种效率非常接近甚至高于 Devin。
最後に、この記事で紹介したファイルはすべて デビン・カーソルルール 下载 – 只需将内容复制到您当前的项目文件夹中即可使用。