「Melvin」を試す
ここで知った。
上記の動画
なお、この方はDockerの作者で、今はDaggerというコンテナベースでポータブルなCI/CDサービスをやっているらしく、動画の中でもそれを使っている様子。
Daggerは知らなかったのだが、クラメソさんの記事が概要としては掴みやすいのかな。
とりあえず、まだどういうものかを完全に理解できているわけではないけども、少し触ってみる。
GitHubレポジトリ
Melvin: おもちゃのようなオープンソースプログラミングエージェント
WARNING: 未完成の実験的ソフトウェア
このプロジェクトは教育目的で作成されており、実際の本番環境でのプログラミング作業には使用しないでください。市場には Devin、Lovable、Replit Agent、V0 など、他にも多くの優れた「プログラミングエージェント」製品が存在します。
Architecture
Melvinはモノリシックなアプリケーションではなく、アプリケーションに統合することも、個別に使用することもできるモジュールコンポーネントの集合体です。
各Melvinモジュールは以下の機能を有しています:
- コンテナ上で動作し、最大のポータビリティと再現性を実現
- コマンドラインから、またはAPI経由でプログラム的に実行可能
- Go、Python、Typescript、PHP(実験的)、Java(実験的)、Rust(実験的)の生成済みバインディング
- プロンプト、ツール呼び出し、さらには低レベルのシステム操作に至るまでのエンドツーエンドトレース。エージェントの状態変化の100%が追跡されます。
- クロス言語拡張。任意の言語で独自のモジュールを追加可能。
- プラットフォームに依存しない。インフラに縛られることなく、コンテナを実行できる任意のホスティングプロバイダー上で動作します。
これらの機能は、ランタイムとして Dagger Engine を使用することで実現されています。Daggerはオープンソースであり、Linuxコンテナを実行できる任意のマシンにインストール可能です。これには、Docker互換ツールがインストールされたMacやWindowsマシンも含まれます。
Melvinの唯一の依存関係はDaggerです。その他のツールやプログラミング環境は不要で、最大のポータビリティを実現するために全環境がコンテナ化されています。
Modules
現在実装されているモジュールは以下の通りです:
- toy-workspace: デモ用の非常にシンプルな開発ワークスペース
- toy-programmer: デモ用の非常にシンプルなプログラマーマイクロエージェント
- workspace: チェックポイントと履歴機能、及び設定可能なチェック機能を備えた、やや高機能なワークスペース
- reviewer: コードレビューマイクロエージェント
- github: GitHubのイシューに進捗更新を送信するためのモジュール
- demo: 他のモジュールを組み合わせるデモ機能のコレクション
Community
Community Discordへの参加を強くお勧めします。
Daggerコミュニティは非常に温かく迎えてくれるため、質問に答えたり、利用事例について議論したり、導入のお手伝いを快く行ってくれます。今すぐ参加してください!これにより、以降の体験がより生産的で楽しいものになります。
Daggerも多少触れておいたほうがいいのかなーという感。Xのスレで紹介されている動画の中で、Daggerらしきプラットフォーム上でトレーシングを見ているとこが映ってたし。
なんかいろいろレポジトリ構成が変わったようなので、別であらためて。