Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A2A においてエージェント同士はどのようにやりとりしているのか

Avatar for ryu-ki ryu-ki
February 07, 2026
83

A2A においてエージェント同士はどのようにやりとりしているのか

Avatar for ryu-ki

ryu-ki

February 07, 2026
Tweet

More Decks by ryu-ki

Transcript

  1. A2A(Agent2Agent) とは ※詳細は A2A Protocol をご参照ください AIエージェント間の通信プロトコル 2025年4月にGoogleが発表 – 現在は

    Linux Foundation のプロジェクトに – 目的 異なるフレームワークで作られたエージェント同士の通信を実現 – 主な要素 AgentCard、Task、Message、Part、Artifact の5つ – 6
  2. A2Aプロトコルは 2ステップ Phase やること HTTP Discovery 相手を知る GET /.well-known/agent.json Message

    仕事を頼む POST / Agent Card(名刺)でエージェントの情報を取得 HTTP で JSON メッセージを送り合う 9
  3. Agent Card = エージェントの名刺 { "name": "Strands Agent専門エージェント", "description": "Strands

    Agentsフレームワークに関する質問に回答する", "url": "http://localhost:9001/", "skills": [ { "name": "search_docs", "description": "公式ドキュメントを検索する" } ], "default_input_modes": ["text"], "default_output_modes": ["text"] } name , description → LLM が「このエージェントに聞くべきか」を判断する材料 skills → エージェントが持つツールから自動生成される 10
  4. 子エージェントの実装(A2A Server 側) # child_agent_strands.py agent = Agent( model=model, system_prompt=SYSTEM_PROMPT,

    tools=[mcp_client], name="Strands Agent専門エージェント", description="Strands Agentsフレームワークに…", ) a2a_server = A2AServer(agent=agent, port=9001, ...) app.mount("/", a2a_server.to_fastapi_app()) name と description を書くだけで Agent Card が自動生成される A2AServer が Agent を HTTP エンドポイントに変換 13
  5. 親エージェントの実装(A2A Client 側) # parent_agent.py agent_urls = [ "http://localhost:9001", #

    Strands Agent専門エージェント "http://localhost:9002", # LangChain専門エージェント ] a2a_tool_provider = A2AClientToolProvider(known_agent_urls=agent_urls) agent = Agent( model=model, system_prompt=SYSTEM_PROMPT, tools=a2a_tool_provider.tools, # ← A2Aツールが渡される ) A2Aツール a2a_list_discovered_agents → 名刺を取りに行く – a2a_send_message → メッセージを送る – 14
  6. まとめ A2A について (フレームワークによらない)AIエージェント間の通信プロトコル – A2A におけるエージェント間のやりとりの仕組み Agent Card でエージェントの情報を取得・HTTPでやり取り

    – A2AServer , A2AClientToolProvider により簡単に実装できる – デモ 説明した通りの仕組みであることを確認できた – ※トレースの詳細は 2/17 Bedrock Night で話す予定です – 20