FCP(自由通信プロトコル)仕様
FCPは、HTTP上で動作することを前提とした、最小限かつテキスト優先の通信プロトコルです。
既存の複雑なエージェント間プロトコルとは異なり、参加者を「アクター」とみなし、自由形式の自然言語テキストを通じてやり取りを行います。
機能のハンドシェイク、パラメータの収集、エラー処理といった全てのプロセスが実行時にテキストによる対話で交渉されるのが特徴です。
このシンプルな設計により、厳密なスキーマやSDK、コード生成が不要となり、AIや人間など多様な主体が容易にサービスとコミュニケーションできる環境を提供します。
AIや大規模言語モデル(LLM)の普及に伴い、システム間の連携(Agent-to-Agent)の重要性が高まっています。しかし、従来のプロトコルは複雑なスキーマや厳格な定義を要求しがちでした。今回発表された「FCP(Free Communication Protocol Specification)」は、この課題に対し、自然言語によるシンプルなテキスト通信を基本とした新しい通信規約を提案しています。
自然言語を核とした通信設計
FCPは、通信の基本を「テキスト」に置いた最小限のプロトコルです。従来のシステム連携プロトコルが、タスクライフサイクルや機能定義を詳細な「エンベロープ(包み)」で規定するのに対し、FCPは、参加者(Actor)が単にテキストを送り、テキストを読み返すというシンプルな構造を採用しています。
この設計の前提は、現代のAIシステムや人間が「自由形式のテキスト」を理解できるという点です。そのため、特定のスキーマやSDK、コード生成といった複雑な仕組みは一切不要とされています。能力の確認やパラメータの収集、エラー処理といった全てが、人間がサービスに尋ねるのと同じ自然言語で行われる仕組みです。
ハンドシェイクによる動的な交渉
FCPにおける重要な仕組みの一つが「ハンドシェイク」です。これは、クライアント側がターゲット側に対して、GETリクエストを通じて「あなたは何ができるのか?」と問い合わせる最初のやり取りです。ターゲット側は、その能力や利用条件をテキストで返答します。
例えば、フライト予約サービスの場合、ハンドシェイクで「検索機能は誰でも使えるが、予約にはトークンが必要」といった利用規約や認証方法が自然言語で開示されます。これにより、システムは事前に厳密な仕様を定義する必要がなく、実行時に必要な情報を動的に交渉し、柔軟に対応できる点が特徴です。
実装のシンプルさと運用上の注意点
FCPのターゲットとなるシステムは、HTTPエンドポイントを公開し、テキスト形式のPOSTリクエストを受け付け、テキストで応答するだけで動作します。このシンプルさにより、AI、スクリプト、人間など、あらゆる主体が参加者(Actor)となり得ます。
ただし、エンドポイントがインターネットに公開されるため、運用上の注意点も指摘されています。無制限のアクセスはコスト増大やDoS攻撃のリスクにつながるため、レート制限やリクエストボディのサイズ制限を導入することが推奨されています。これはプロトコル自体ではなく、デプロイ時の運用上の考慮事項です。
まとめ
FCPは、複雑な定義を排除し、自然言語による対話を通じてシステム連携を実現するアプローチです。これにより、AIと既存のサービス間のインターフェース構築が、よりシンプルかつ柔軟になることが期待されています。
原文の冒頭を表示(英語・3段落のみ)
Abstract
FCP is a minimal, text-first protocol for communication between two
parties over HTTP. It is deliberately not framed as an "agent protocol":
※ 著作権に配慮し、引用は冒頭3段落までです。続きは元記事をご覧ください。
Hacker News コメント
機械翻訳。HN の元スレッド ↗
エージェントがエージェントと話す:彼らは交渉し、買い、揃え、コミュニケーションする。FCPはその最も簡単な共通チャネルだ。アイデアは、可能な限りシンプルなHTTPベースの方法で俳優がコミュニケーションできるようにすることだ。全て――認証、プロトコル、ツール、能力――を平文会話で交渉する。すべてのエージェント(俳優)が将来的にHTTP呼び出しを行うことができ、この能力は最低限必要な通信要件とみなされる。
原文
Agents talk to agents: they negotiate, buy, align, and communicate. FCP is the simplest shared channel for that.The idea is to provide the simplest possible HTTP-based way for actors to communicate, where everything — authentication, protocols, tools, and capabilities — is negotiated through plain-text conversation.It assumes that, at some point, all actors (agents) will be able to make HTTP calls, and that this capability alone is the bare minimum required for communication.