@shinyaz

Swarm でハンドオフしたエージェントのテキスト出力は空になる

Swarm の実行結果で各ノードの出力を確認しようとしたところ、ハンドオフした researcher のテキスト出力が空で IndexError になった。

Output
--- researcher ---
  Status: Status.COMPLETED
 
--- writer ---
  Status: Status.COMPLETED
  Output: Amazon Bedrock is a fully managed AWS service...

researcher は handoff_to_agent ツールを呼び出してハンドオフするため、テキストブロックを生成せずに終了する。result.messagecontent にはツール呼び出しのブロックしか含まれず、text キーを持つブロックが存在しない。

最終的なテキスト出力は、ハンドオフせずに終了した最後のエージェント(この場合は writer)が生成する。result.results から出力を取得する際は、テキストブロックの存在チェックが必要だ。

Python
for block in msg.get('content', []):
    if 'text' in block:  # この存在チェックが必須
        print(block['text'])

共有する

田原 慎也

田原 慎也

ソリューションアーキテクト @ AWS

AWS ソリューションアーキテクトとして金融業界のお客様を中心に技術支援をしており、クラウドアーキテクチャや AI/ML に関する学びをこのサイトで発信しています。このサイトの内容は個人の見解であり、所属企業の公式な意見や見解を代表するものではありません。