AIエージェントとエディター間のインタラクションの拡張

この進行中の Docker Labs GenAI シリーズ AI開発者ツールのエキサイティングな空間を探ります。 Dockerでは、誇大広告なしでオープンに探求できる広大な範囲があると信じています。 私たちは探索を共有し、開発者コミュニティとリアルタイムで協力します。 開発者はGitHub Copilotのようなオートコンプリートツールを採用し、チャットを使用していますが、AIツールがソフトウェアのライフサイクル全体を通じて、より具体的なタスクやインターフェースを支援する可能性は大いにあります。 したがって、私たちの探求は広範囲に及びます。 ソフトウェアをオープンソースとしてリリースするので、私たちと一緒にプレイしたり、探索したり、ハックしたりできます。

先日、 GitHub Universe のDockerブースで開発者と会いました。 GitHub Copilot の近日公開予定の Docker エージェント拡張機能のデモに加えて、"Hack with Docker Labs "セッションも開催しました。 

2400x1260 Docker Labs Genai

これらのセッションを容易にするために、エージェントとツールの関係を調査するための VSCode 拡張機能 を作成しました。 参加者には、ツール定義 (Docker コンテナにパッケージ化できるもの) とシンプルな Markdown ベースのキャンバスを使用したプロンプトを組み合わせて、エージェントがツールとの対話方法をどのように変更できるかについて考えるよう促しました。

これらのセッションの多くは、単純なパターンに従っていました。

  • ツールを選択し、そのツールで何をしたいかを説明します。
  • エージェントがそのツールを操作できるようにします。
  • エージェントに何をしたかを説明するように依頼するか、戦略を調整して再試行してください。

これらのディスカッションを促進し、エージェントが新しい方法でツールと対話するように私たちにどのように挑戦しているかについてさらに学ぶことができたのは素晴らしいことでした。  

図 1 は、QR コード (qrencode) を生成したセッションの短い例を示しています。 まず、Markdown ファイルでツールとプロンプトの両方を定義します。 次に、エージェントに制御を渡し、エージェントがそのツールと対話できるようにします(エージェントからの出力が右側にポップアップ表示されます)。

マークダウンファイルのツールとプロンプトを使用したqrコードの生成を示すアニメーションGIF。
図 1: QRコードの生成。

詳細については、リポジトリで 問題 を自由に作成してください。

エディター

今年のGitHub Universeへの旅行は、コーディングアシスタントの導入によって開発者のワークフローがどのように変化しているかを考える機会にもなりました。 開発者は長い間、エディターに言語サービスを使用してきたかもしれませんが、次に最も可能性の高いトークンを予測できるコーディングアシスタントは、私たちに新しいことを教えてくれました。 私たちは皆、多かれ少なかれ同じプログラムを書いていました(図 2)。

エディター、言語サービス、llm との間のプロセス フローを示す図。
図 2: 言語サービスの相互作用。

その他のエージェント

CursorGitHub Copilot Chatなどのツールも、コーディングアシスタントが単純な予測を超えて拡大する新しい方法を教えてくれています。このシリーズでは、通常はバックグラウンドで動作するツールに焦点を当ててきました。 これらのツールで武装したエージェントは、ビルドの問題、古い依存関係、修正可能なリンティング違反、セキュリティ修復など、他の種類の問題を追跡します。

前の図を拡張すると、エージェントが診断を送信し、コード アクションを提案しながら、他の種類のユーザー入力用のチャット インターフェイスを提供する更新された図を想像できます (図 3)。 エコシステムが閉鎖的であると感じた場合は、新しい種類のカスタムエージェントに開放される準備をしてください。

左側に言語サービスの対話を示し、右側にエージェントとチャットへの拡張機能を示す図。
図 3: エージェント拡張機能。

今後の予定

次のいくつかの投稿では、このシリーズを新しい方向に進め、エージェントがLSPを使用して開発者と新しい方法で対話する方法を見ていきます。 依存関係の更新やリンティング違反の修正などのバックグラウンドタスクを表すエージェントは、言語サービスとエディターをツールとして使用できるようになりました。 これは、エージェントが開発者が自分たちが行っている変更をよりよく理解し、これらのプラットフォームを新しい種類のツールからのインプットに開放するための優れた方法になると考えています。

GitHub Universe は、開発者と意見を交わす絶好の機会であり、開発者がワークフローにどれだけ多くのツールを導入したいと考えているかを知り、私たちは興奮しました。 いつものように、この取り組みを進めるには、 このプロジェクトの GitHub リポジトリを確認してください。

Docker での取り組みの詳細については、 ニュースレターを購読してください。

さらに詳しく