IBM® watsonx.ai上のエージェント・コミュニケーションにChatDev ChatChainを使用

執筆者

Vanna Winland

AI Advocate & Technology Writer

このチュートリアルでは、ChatDevフレームワークを活用してコラボレーション型AIシステムを構築する方法を解説し、ChatDevのロールベースのエージェント間コミュニケーション構造であるChatChainの詳細をご紹介します。ChatDevは、それぞれ割り当てられた役割を担うAIエージェントを使用し、仮想のソフトウェア会社をシミュレートします。各インテリジェント・エージェントは、ソフトウェア開発ライフサイクルの段階に基づいた一連のワークフローに従い、構造化されたコミュニケーションを通じて他のエージェントとコラボレーションします。

これらのエージェントを強化するために、IBM watsonx.aiアプリケーション・プログラミング・インターフェース(API)をモデル・バックエンドとして統合しました。watsonx.aiとHugging Faceの統合を活用し、 Llama-4-Maverickを 使用するようにフレームワークを構成して、シンプルなソフトウェア・ソリューションを生成します。この例は、ワークフローを通じてエージェントの行動と意思決定をガイドするChatChainやその他の内部エージェント通信メカニズムを検討するための基礎となります。

このチュートリアルが終了するまでには、ChatDevのセットアップと実行を実際に経験し、エージェント通信プロトコルが効果的で信頼性の高いマルチエージェントコラボレーションをどのように可能にするかをより明確に理解できるでしょう。

コラボレーションAI :人間やAIエージェントと連携して動作するように設計された人工知能システムで、多くの場合深層学習やその他の高度な技術を使用しています。協調行動、共同での意思決定、共同での問題解決を可能にし、共通の目標を達成します。

マルチエージェント・コラボレーション: 情報を共有し、共通の目的を達成するために連携する複数の自律エージェント。エージェントは多くの場合考証、計画、調整されたアクションを含めたさまざまなレベルの知識、能力、視点を持っています。

ロールプレイング・エージェント :特定の役割またはペルソナをシミュレートし、目標主導型で対話と連携を行うAIエージェント。これらの役割には、現実世界の職業や登場人物を反映させることができるため、より文脈に沿った、目的に基づいたやりとりが可能になります。

エージェント・コミュニケーション・プロトコル: AIエージェントが構造化したデータ・メッセージを交換し相互に対話する方法を定義する、基準またはフレームワーク。これらのプロトコルが、マルチエージェント・システム内で連携するエージェントのコミュニケーション形式、セマンティクス、ルールを管理します。

ChatdevのコラボレーションAI

ChatDev は、コラボレーションAIのロールベース実装であり、個々のエージェントが専門の役割を引き受け、共通の目的に向かって取り組みます。この設計は、集合知の原則(本質的に効果的なコラボレーション)を反映しており、ChatDevはこの分野の研究と推進のための貴重なリソースとなっています。

ChatDevは、AIツールと汎用人工知能(AGI)の進歩に焦点を当てた研究主導の取り組みであるOpenBMBによって開発された、オープンソースのマルチエージェント・フレームワークです。このフレームワークでは、コラボレーションを行うAIエージェントを研究するための実践的な領域として、ソフトウェア開発プロセスを使用します。各エージェントは大規模言語モデル(LLM)を搭載しており、CEO、CTO、デザイナー、テスター、プログラマーなどの特定の役割を引き受けるよう、プロンプトで指示を受けます。1

最初は短く説明的なユーザーインプットから、エージェントは互いに協力し合い、ソフトウェア・プロジェクト全体の設計、実装、テストを繰り返します。各エージェントは、構造化された自然言語プロンプトを使用して順番にコミュニケーションを行うPythonクラスとして実装されます。プロンプトはエージェントの役割、タスク固有の指示、および以前の対話からの関連するコンテキストを含む、事前定義されたテンプレートに従います。プロンプト自体にロールIDと共有メモリーを埋め込むことで、このストラテジーは継続性と一貫性の確保に役立ちます。

ChatDevの専門エージェントのチームは協力し合い、アイデアを説明する1行のユーザーインプットからシンプルなソフトウェア・ソリューションを生成します。

ユーザー入力:「ToDoリストのアプリを制作してください」 → CEOがCTOに委任 → CTOが開発者に割り当て → 開発者がコードを作成 → テスターが検証

ChatDevの仕組み

エージェント同士のインタラクションは、ChatDev Orchestrateフレームワーク内のカスタム調整ロジック、ChatChainによってオーケストレーションされます。エージェント間のコミュニケーションは、構造化されたJSONメッセージをエージェントが順番に交換する、マルチターン・ダイアログないしはメッセージ・パッシング・システムを通じて実行されます。これらのメッセージはアウトプットとコンテキストの更新を表現し、共通のメモリ・バッファとして機能するため、エージェントは開発フェーズ全体にわたって互いのアウトプットを基に新しいアウトプットを積み上げることができます。

プロジェクトを最初から最後まで完了させるために自然言語とプログラミング言語を融合させることで、このアーキテクチャーは一貫したコミュニケーションとコンテキストを踏まえたコラボレーションを可能にします。このプロセスは協調的なマルチエージェント・コミュニケーションに依存しており、各フェーズを完了するために、内部メカニズムは効果的なAIエージェントのコミュニケーションを調整するプロトコルとして機能します。

ユーザーは、実行後の分析とリアルタイム監視の両方をサポートするFlaskベースのWebインターフェースである、ChatDevのVisualizerツールを使用して、エージェントのワークフローを監視およびレビューできます。Visualizerには、リアルタイムのエージェントの対話を検査するログ・ビューアー、保存されたマルチエージェントの会話ログを視覚化する再生・ビューアー、タスクの調整フローを調べるChatChainビューアーなど、いくつかのモードが用意されています。このインタラクティブなインターフェイスにより、ユーザーはローカル・ブラウザーを使用して構造化された環境を通じてマルチエージェント・コラボレーションをデバッグ、実験、および研究できます。

モデルの互換性とアウトプットのばらつきに関する注意

このチュートリアルでは、IBM watsonx.ai API専用にカスタマイズされたバージョンのChatDevを使用しています。コアのChatDev自体は複数のモデル・プロバイダーをサポートしていますが、このバージョンには実用的な「vibecoding」アプローチを使用した改変が加えられており、問題なく機能するものの、すべてのシナリオにわたる網羅的なテストは受けていません。

主な導入事例には以下が含まれます。

  • IBM watsonx.ai API をラップして、予想されるChatDevのLLMインターフェイスに準拠させる

  • IBM watsonx.ai APIのトークンとフォーマット要件に合わせて、プロンプト・テンプレートを調整する

  • IBM watsonx.aiをモデルのバックエンド・オプションとしてサポートするためにモデル選択ロジックを変更する

この実装では、ChatDevを拡張して代替LLMプロバイダーをサポートする方法を示します。他のモデル・プロバイダー(OpenAI、Ollamaなど)は、このカスタマイズされたバージョンのChatDevではテストされておらず、コードレベルの調整が必要となります。

生成AIワークフローと同様、アウトプットは実行ごとに異なる可能性があります。エージェントは通常、一貫した適切に構造化されたコードとドキュメンテーションを生成しますが、結果として得られるアプリケーションを完全に機能させるためには、手動での改良が必要になる場合があります。プロンプト設計、タスクの複雑さ、LLM応答の固有の変動性など、さまざまな要因がこの予測不可能性につながっています。

このチュートリアルでは、協調的なマルチエージェント・システムに関する実践的なイントロダクションとして、ChatDev内でのエージェントのコミュニケーションと連携の仕組みに焦点を当てます。これは実稼働対応のソリューションではなく、LLMによるエージェント・コラボレーションの学習、実験、探求の基盤となることを意図したものです。研究をオープンソース化し、このような探求を可能にしたChatDevの研究者たちに感謝を申し上げます。

ステップ

ステップ1. 環境を設定する

ChatDevはクロスプラットフォームとして設計されていますが、セットアップまたは実行中にプラットフォーム固有の問題が発生する可能性があります。例えばWindows上のPowerShellでは、Unixベースのシステム向けのシェル・コマンドの調整が必要になる場合があります。OS、Pythonのバージョン、CPUアーキテクチャーの違いも性能や動作に影響する場合があります。スムーズなセットアップと使いやすさを実現するために、ユーザーはChatDevの公式ドキュメンテーションとインストール・ガイドで、トラブルシューティングと環境固有の手順を確認する必要があります。

以上を念頭に、アプリケーションを実行するための環境をセットアップすることから始めましょう。この手順は、GitHub のプロジェクト・フォルダー 内のマークダウン・ファイル、またはこのページの解説に沿って実行できます。

  1. Python 3.11がシステムにインストールされていることを確認します。
    > Pythonのバージョンはpython3 –-version コマンドで確認できます。
  2. GitHubリポジトリをクローンします。
    > リポジトリを複製する方法の詳細な手順については、 GitHubのドキュメンテーションを参照してください。
  3. プロジェクトの構造が以下のようになっていることを確認します。
tutorials/projects/chatdev_watsonx/ 
   
├── camel/ 
│   ├── model_backend.py  # Unified interface for interacting with multiple AI models 
│   ├── typing.py         # Defines various type classes including supported AI models  
│   ├── configs.py        # Defines the model parameters based on model interface 
│   ├── utils.py          # Various utility functions including model token limit configuration 
│   └── ... 
├── Visualizer/ 
│   └──app.py             # Runs a Flask application in a local web browser to view logs and ChatChain  
├── WareHouse             # Where the generated software is saved  
├── run.py                # Application entry point 
└── chatdev_watsonx.md    # A markdown version of this tutorial

ステップ2. watsonx®  API認証情報を取得

  1. IBM Cloudのアカウントを使用してwatsonx.aiにログインします。
  2. watsonx.ai プロジェクトを作成します。>「プロジェクト(project)」 >「管理(Manage)」 > 「一般(General)」 > 「プロジェクト ID(Project ID)」から、プロジェクトID
    をメモします。本チュートリアルではこのIDが必要です。
  3. watsonx.ai ランタイムサービス インスタンスを作成します(無料インスタンスである Lite プランを選択します)。
  4. watsonx API キーを生成します。
  5. watsonx.aiで作成したプロジェクトに watsonx.ai ランタイム・サービスを関連付けます。

ステップ 3. 仮想環境を作成する

チュートリアルのプロジェクトディレクトリから、Python 3.11 を使用して仮想環境を作成します。

  python3.11 -m venv venv 
  source venv/bin/activate

ステップ4. requirements.txt をインストールする

これにより、プロジェクトの依存関係がインストールされます。

  pip install -r requirements.txt 

ステップ5. LLM統合の環境変数を設定する

変数は、現在の端末セッションに対して設定されます(端末を閉じるとリセットされます)。

このチュートリアルでは、モデルのバックエンドとしてIBM watsonx.aiを使用していますが、ChatDevの基盤となるフレームワークは当初、デフォルトのOpenAIを含む複数のLLMプロバイダーをサポートするように設計されていました。コードベースの一部の部分(モデル選択ロジックや共有インターフェイスなど)は、引き続きOPENAI_API_KEY 環境変数を使用します。ランタイム・エラーを防ぐには、OpenAIが使用されない場合でも、ダミー値が必要です。

export OPENAI_API_KEY="your_openai_api_key_or_dummy_value" 
export WATSONX_URL="https://us-south.ml.cloud.ibm.com" 
export WATSONX_APIKEY="your_watsonx_api_key" 
export WATSONX_PROJECT_ID="your_watsonx_project_id"

ステップ6. (オプション)ChatDevインターフェースのVisualizerアプリを実行する

オプションで、FlashベースのGUIであるChatDevのVisualizerを実行できます。これにより、エージェント・ログをリアルタイムで検査し、ChatChainのワークフローを確認したり、保存されたエージェント・ダイアログを再生できます。このツールは、エージェントのインタラクションをデバッグ、監視、または研究するのには便利ですが、ChatDevの中核となるマルチエージェント・ワークフローの実行には必要ありません。

Visualizerを起動するには、まずFlaskをインストールします。

pip install flask

 

次に、アプリを実行します。

python visualizer/app.py

 

実行したら、ブラウザを開いて次の場所に移動します。 https://127.0.0.1:8000/

ステップ7.(オプション)LLM の構成

注:このチュートリアルでは、モデルのバックエンドとしてIBM watsonx.ai APIを使用するように事前構成されたChatDevのバージョンを使用します。このチュートリアルを正しく機能させるためには、追加のセットアップやモデル構成の変更は必要ありません。カスタマイズは可能ですが、LLM構成を変更すると、不完全で不正確な、ばらついたアウトプットとなる可能性があります。

ChatDevは、エージェントのロール、タスク、言語モデルとのやりとりを管理するCAMELフレームワークの上に構築されています。元の実装では、GPT-4などのChatGPTモデルとのインターフェイスとなるモデル・バックエンドとしてOpenAI APIを使用し、デフォルトでGPT-3.5-turboを使用します。このオープンソース・プロジェクトは、統合されたモデル・インターフェイスを通じて複数のLLMプロバイダー・モデルをサポートするように設計されています。

デフォルトのIBM watsonx.ai設定を使用する予定の場合は、この手順をスキップしてください。実験の場合は、モデルの種類、パラメーター、およびトークンの制限を調整して、IBM watsonx.ai APIで動作させることができます。

  • モデルタイプ

異なるモデルタイプwatsonx 試すには、ModelType enum 内のエントリを更新してください。これはcamel/typing.py 内にあります。

# camel/typing.py 

class ModelType(Enum):
WATSONX = "meta-llama/llama-4-maverick-17b-128e-instruct-fp8" # Model identifier used by the Watsonx APIThe model parameters can be configured within camel/configs.py under the WatsonxConfig data class.

 

  • モデル・パラメーター

モデルパラメータは、camel/configs.py これはWatsonxConfig データクラスの下にあります。

# camel/configs.py 
 
@dataclass(frozen=True) 
class WatsonxConfig: 
     """Defines the parameters for generating completions using watsonx.ai models.""" 
   
     temperature: float = 0.3 
     top_k: int = 100 
     top_p: float = 0.0

 

  • トークン制限

モデルのトークン制限は以下で可能です。camel/utils.py 考えてください。

# camel/utils.py 
 
def get_model_token_limit(model: ModelType) -> int: 
     if model == ModelType.WATSONX: 
         return 128000  # Token limit for Watsonx.ai models

ステップ 8.スクリプトを実行してアプリを生成する

このステップでは、コアChatDevワークフローが実行されます。このスクリプトを実行すると、エージェントはインプットに基づいて共同ソフトウェア開発プロセスをシミュレートします。生成されたコード、ドキュメンテーション、および関連アーティファクトは、プロジェクトのWareHouseディレクトリに保存されます。Visualizerを使用して、ログの検査や会話の再生が可能です。

このスクリプトは次の引数を受け取ります。

  • –-task :希望するソフトウェア・ソリューションの説明

  • –-name : アプリまたはプロジェクトの名前

  • –-model :使用するAIモデル(このチュートリアルでは必ずwatsonx に設定)

スクリプトの例:

python3 run.py --task "Build a simple website using Flask for a local bookstore called 'Turn the Page'. The website should include a homepage, an about page, and a product page. " --name "bookstore-site" --model "WATSONX"

注:ChatDevのアーキテクチャは拡張可能ですが、このチュートリアル・バージョンはwatsonx でのみ確実に動作します。他のLLMプロバイダーを使用するように拡張するには、camel/model_backend.py インターフェイスおよび関連する構成ロジックの変更が必要です。

アウトプット例

最終的なソフトウェア製品は、WareHouse プロジェクト、デフォルトの組織名、タイムスタンプにちなんで名付けられたサブディレクトリーの下にあるフォルダーに保存されます。

一般的なアウトプットは次のとおりです。

├── WareHouse/ 
└── bookstore-site_DefaultOrganization_20250506162935/ 
     ├── templates/      # Web page templates 
     │   └── about.html 
     │   └── index.html 
     │   └── products.html 
     ├── manual.md      # The project’s README with instructions to run the software 
     ├── main.py        #The main application file for the website 
     ├── requirements.txt          # Project dependencies 
     ├── ChatChainConfig.json      # System design for collaborative agent workflows 
     ├── RoleConfig.json       # System prompts for agent roles 
     ├── PhaseConfig.json      # System prompts for phases 
     └── bookstore-site_DefaultOrganization_20250506162935.log  # Log of the agent dialogue

生成AIツールは確率的な性質を持っているため、アウトプットは実行ごとに異なる場合があります。

このディレクトリには、AIエージェントによって生成された完全なソフトウェア・プロジェクトが含まれています。アプリケーション・コードおよびドキュメンテーションと一緒に、以下を定義する構成ファイルがあります。

  • エージェントの役割 (RoleConfig.json)

  • 開発フェーズ (PhaseConfig.json)

  • エージェント ワークフロー (ChatChainConfig.json)

  • ChatDevのVisualizerで再表示できる会話ログ

アプリを実行するには、manual.md内のインストラクションに従ってください。 考えてください。

ChatDevがエージェントのコミュニケーションをどのように処理するか

エージェントの相互運用性とは、複数の自律エージェントが共通のプロトコルまたは標準を使用して効果的に理解、コミュニケーション、コラボレーションを行う能力を指します。この機能は、タスク全体でエージェント型AIシステムを拡張し、大規模なデータセットを統合し、複雑な問題を協力して解決するために不可欠です。

マルチエージェント・システムでは、KQMLやFIPA-ACLなどのエージェント通信言語(ACL)などの内部通信メカニズムを使用するエージェントからエージェントへの通信デバイスの標準を提供するエージェント通信プロトコル(ACP)がよく使用されます。これらは、動的な環境で構造化された対話と調整を可能にする標準的な「コミュニケーション行動」(情報提供、要求、クエリなど)を定義します。

ただし、ChatDevでは別のアプローチを採用しています。エージェントの調整ワークフローを構造化する通信メカニズムであるChatChainを通じて、エージェントの相互運用性を実現します。ChatChainは、ソフトウェア開発プロセスのすべての段階を通じて、エージェント間でのターンベースの同期的な情報の流れを管理します。ChatChainは正式なACLを基にしたものではありませんが、LLM最適化規則を使用することで、プロトコルと同様の情報交換を促進しています。

ChatDevのエージェントコミュニケーションは以下に依存します。

  • プロンプト・テンプレート :各フェーズの開始時に、参加するエージェントはそれぞれ、役割、現在のタスク、関連する会話履歴で構造化されたプロンプトを受け取ります。ChatDevは、開始プロンプトを使用して、この情報をプロンプトに直接埋め込み、インタラクション全体で一貫性と目標の整合性を維持できるようにします。

  • 構造化されたメッセージ形式 :エージェントは、出力とコンテキストの更新をエンコードする構造化されたJSONメッセージを通じて通信します。これにより、ワークフロー全体にわたる一貫したデータ交換とトレーサビリティが可能になります。

  • 役割の条件づけ:各エージェントは、初期化時に責任、目標、行動上の期待など、割り当てられた役割を強化するプロンプトを使用します。これは、コミュニケーションを通じたハルシネーションのカギとなるストラテジーです。

これらのメカニズムを組み合わせることで、軽量でスケーラブルな通信フレームワークが形成され、ChatDevは単一のユーザー・プロンプトからソフトウェアを共同で生成することができます。これは、構造化されたLLMベースのコラボレーションが従来のマルチエージェント・ワークフローをどのように強化できるかを示すものです。

ChatChain

ChatChainはChatDevのコア通信メカニズムであり、ソフトウェア開発ワークフロー全体にわたる一連のエージェントの対話を調整します。コラボレーションを、それぞれに特定の目標とコミュニケーション・パターンを持った個別のフェーズで構成される、反復的なチェーンのようなプロセスに構造化します。

各フェーズで、ChatChainは役割固有の2つのエージェント(例えば、CEOとCTO、プログラマーとレビュー担当者)間で、デュアル・エージェント・ダイアログを開始します。通常、片方がインストラクターとして、もう片方がアシスタントとして振る舞います。これらの複数のターンによる構造化されたやり取りにより、役割と担当責任に関する定義の明確性を維持しつつ、共同の意思決定を合理化します。各フェーズのプロンプトには、タスクの指示、ロールID、関連するコンテキストが埋め込まれ、やり取りをガイドします。

ChatDevの全体的なワークフローは、設計コーディングテストという3つの連続フェーズにタスクを分割する、伝統的なソフトウェア・エンジニアリング手法「ウォーターフォール・モデル」に従っています。コーディングとテストのフェーズは、反復的な開発プロセスを反映するため、さらにサブタスクに分割されます。

デフォルトでは、ChatChainはワークフローを以下のの順序付けられた自動ステップに分割します。

  1. Demand analysis :アプリケーションの構造と主要コンポーネントを定義します。

  2. Language selection: ソフトウェアの構築と実行に使用するプログラミング言語を選択します。

  3. Coding: エージェントがアプリケーションを構築するコードを書きます。

  4. CodeCompleteAll: 欠落している関数/クラスを含むすべてのコードを完成させます。

  5. CodeReview :機能するようコードをレビューし、変更します。

  6. Test: ソフトウェアを実行し、テスト報告書に基づいてコードを修正します。

  7. EnvironmentDoc: 環境を文書化します。

  8. Manual :アプリケーションのマニュアルを文書化して作成します。

各フェーズは、その動作とプロパティーを定義する属性を指定する構成オブジェクトによって定義されます。たとえば、need_reflect 属性は、エージェントが以前の対話の成果を分析して改良するフェーズ後の反映をトリガーします。

開始プロンプト

エージェント間の適切なコミュニケーションを導くために、ChatDevは、各サブタスク・ラウンドの前に、エージェントの初期化ストラテジーとして、インセプション・プロンプトを使用します。開始プロンプトは、効果的なエージェントコミュニケーションのための役割、目標、責任を組み込むために使用できるプロンプト・エンジニアリング手法です。

開始プロンプトが2人のエージェントをサブタスクを開始、維持、終了するようにガイドする例を見てみましょう。

ChatDev での開始プロンプトの例

各サブタスクの前に、各エージェントはロール固有の指示、特性、責任、目標を定義するパラメーターとしてプロンプトを受け取ります。2つの例としては、assistant_role_prompt およびuser_role_prompt があります。これらのパラメーターは、タスクのコンテキストに基づいて、会話に参加する各エージェントに割り当てられる役割と責任を定義します。

LanguageChooseフェーズにおけるインストラクターとアシスタント・エージェントのエージェント・ロールに基づくシステム・ロール・プロンプトは次のとおりです。

// RoleConfig.json 
 

   "Chief Executive Officer": [ 
     "{chatdev_prompt}", 
     "You are Chief Executive Officer. Now, we are both working at ChatDev and we 
     share a common interest in collaborating to successfully complete a task 
     assigned by a new customer.", 
     "Your main responsibilities include being an active decision-maker on users' 
     demands and other key policy issues, leader, manager, and executor. Your 
     decision-making role involves high-level decisions about policy and strategy; 
     and your communicator role can involve speaking to the organization's 
     management and employees.", 
     "Here is a new customer's task: {task}.", 
     "To complete the task, I will give you one or more instructions, and you 
     must help me to write a specific solution that appropriately solves the 
     requested instruction based on your expertise and my needs." 
   ], 
   "Chief Technology Officer": [ 
     "{chatdev_prompt}", 
     "You are Chief Technology Officer. we are both working at ChatDev. We share 
     a common interest in collaborating to successfully complete a task assigned 
     by a new customer.", 
     "You are very familiar to information technology. You will make high-level 
     decisions for the overarching technology infrastructure that closely align 
     with the organization's goals, while you work alongside the organization's 
     information technology (\"IT\") staff members to perform everyday operations.", 
     "Here is a new customer's task: {task}.", 
     "To complete the task, You must write a response that appropriately solves 
     the requested instruction based on your expertise and customer's needs." 
   ],

 

これら2つのプロンプトは、エージェントの役割、専門知識、責任を説明することで、希望する動作を初期化します。また、プロンプト戦略は、割り当てられたタスクを完了する方法についてカスタマイズされた指示を与えることで、対話中のそれぞれの役割の行動と応答をガイドします。

エージェントのコミュニケーションは、慎重なプロンプトによって効果的に導かれ、両方の役割が明確な期待値を持ち、効果的に連携できるようになります。

コミュニケーションによるハルシネーション除去

コーディング・ハルシネーション(不完全または不正確なコード生成)に対処するために、ChatDevはコミュニケーションによるハルシネーション除去と呼ばれるコミュニケーションのパターンを使用します。このパターンは、コードレビューのプロセス中に会話を構造化するために不可欠です。

コードレビューのプロセスには、CodeReviewComment およびCodeReviewModification の2つのフェーズがあります。コードレビュー担当エージェントとプログラマー・エージェントは、同一のModifidationフェーズが2回連続するか、または10ラウンドになるまで、フェーズを反復します。プロジェクト・ログからのコミュニケーションのハルシネーションの例を見てみましょう。

ChatDevにおけるコミュニケーション的デハルシネーションの例

この例では、コードレビュー・エージェントがプログラマ・エージェントのアウトプット内のエラーを検知し、ソースコードの問題を修正する提案とともにそれを伝えます。プログラマ・エージェントは、そのフィードバックに基づいて元の出力を修正します。

コードレビュー担当エージェントのアウトプットの一部を以下に示します。CodeReviewComment phase:

/* bookstore-site_DefaultOrganization_20250506162935.log */ 
... 
 
## Step 7: Highest Priority Comment 
A high-priority comment is that the templates directory needs to be created, and 
the HTML files should be placed inside it for the application to find and render 
them correctly. Without this setup, running `app.py` will result in a 
`TemplateNotFound` error because Flask looks for templates in a `templates` 
folder by default. 
 
## Step 8: Instructions for Fixing 
To fix this, create a new directory named `templates` in the same directory 
where `app.py`

 

プログラマ・エージェントは、次のフェーズでは修正したコードで応答します。CodeReviewModification phase:

/* bookstore-site_DefaultOrganization_20250506162935.log */ 
 
Here is the list of your developed codes: main.py, index.html, about.html, products.html. 
 
### main.py 
```python 
... 
 
### templates/index.html 
 
```html 
<!-- 
Homepage template for Turn the Page bookstore website. 
Provides navigation links to other pages. 
--> 
... 
 
</html> 
### templates/about.html 
```html 
<!--  About page template for Turn the Page bookstore website. 
Provides information about the bookstore and navigation links. --> 
… 
</html>

 

コードレビュアーとプログラマーは、最大10回の反復にわたってコードを改良し続けるか、同一の変更フェーズが2回繰り返された後にコンセンサスに到達します。

コミュニケーションによるハルシネーション除去のパターンは、反復的な改良を通じて、最終コードが正確かつ完全で、意図した要件と一致していることを保証すると同時に、サブタスクの効果的な完了も促進します。

結論

このチュートリアルでは、ChatDevがロールベースのAIエージェントで構成される仮想ソフトウェア会社をシミュレートすることで、コラボレーションAIを実現する仕組みを解説します。IBM watsonx.ai APIをモデルのバックエンドとして使用するChatDevは、自然言語とプログラミング言語の両方で構造化された通信を使用して、ソフトウェア開発ライフサイクルのエージェントをガイドします。

ChatDevは正式なエージェント通信プロトコルを使用していませんが、ChatChain、インセプト・プロンプト、コミュニケーションによるハルシネーション除去などのエージェント間コミュニケーション手法を使用して、LLMの自然な能力によるエージェントの相互運用性を実現します。これは、コラボレーションを成功させてアウトプット品質を向上させるために、効果的なエージェント間コミュニケーションのオーケストレーションの重要性を際立たせています。

エージェントの対話を監視および再生するための視覚化ツールが組み込まれたChatDevは、マルチエージェント・ワークフローおよびLLM主導のTeamworks® のダイナミクスを研究するための強力なプラットフォームを提供します。これは、ソフトウェアの開発やそれ以外の分野におけるコラボレーティブAIの現実的な可能性を示しています。

関連ソリューション
IBMのAIエージェント開発

開発者が、IBM watsonx.aiを使用してAIエージェントの構築、デプロイ、および監視を行えるようにします。

 

watsonx.aiの詳細はこちら
人工知能ソリューション

業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。

AIソリューションはこちら
AIコンサルティングとサービス

AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。

AIサービスはこちら
次のステップ

事前構築済みのアプリケーションとスキルをカスタマイズする場合でも、AIスタジオを使用してカスタム・エージェント・サービスを構築し、デプロイする場合でも、IBM watsonxプラットフォームが対応します。

watsonx Orchestrateの詳細はこちら watsonx.aiの詳細はこちら