A2A Protocol: Cara AI Agent Beda Framework Saling Bicara (2026)

TL;DR: A2A (Agent2Agent) Protocol adalah standar terbuka yang diumumkan Google pada 9 April 2025 dan kini dikelola Linux Foundation, dengan lisensi Apache-2.0. Fungsinya menghubungkan AI agent dari framework berbeda (LangGraph, CrewAI, Google ADK, dan lainnya) supaya bisa saling menemukan kemampuan dan bertukar tugas tanpa harus dibungkus jadi tool. Per November 2026 spesifikasinya sudah di versi…

A2A Protocol: agen AI beda framework saling bicara
A2A Protocol: Cara AI Agent Beda Framework Saling Bicara (2026)

Di Artikel Ini

TL;DR: A2A (Agent2Agent) Protocol adalah standar terbuka yang diumumkan Google pada 9 April 2025 dan kini dikelola Linux Foundation, dengan lisensi Apache-2.0. Fungsinya menghubungkan AI agent dari framework berbeda (LangGraph, CrewAI, Google ADK, dan lainnya) supaya bisa saling menemukan kemampuan dan bertukar tugas tanpa harus dibungkus jadi tool. Per November 2026 spesifikasinya sudah di versi 1.0.1 dengan SDK resmi untuk Python, JS/TS, Java, Go, .NET, dan Rust. A2A melengkapi MCP, bukan menggantikannya: MCP menghubungkan satu agen ke tool-nya sendiri, A2A menghubungkan agen ke agen lain di luar sistemmu.

๐Ÿ’ก KEY TAKEAWAY

  • A2A โ‰  MCP: MCP memperdalam satu agen (agen-ke-tool), A2A memperluas jangkauan antaragen (agen-ke-agen).
  • Status: standar terbuka di bawah Linux Foundation, bukan proyek eksklusif Google.
  • Komponen inti: Agent Card untuk penemuan, Task untuk unit kerja, Message dan Artifact untuk isi pertukaran.
  • Belum wajib dipakai: kalau agen-agenmu semua dalam satu sistem, pola supervisor biasa masih cukup.

Bayangkan agen stok dibangun tim internal pakai LangGraph, sementara agen customer service dibeli dari vendor lain yang frameworknya beda total. Kalau keduanya cuma bisa saling ngobrol lewat integrasi custom yang dirawat manual, setiap agen baru berarti kerja integrasi baru. A2A Protocol dibuat untuk masalah ini: memberi agen-agen itu bahasa bersama tanpa peduli siapa yang membangunnya.

Apa Itu A2A Protocol?

A2A (Agent2Agent) Protocol adalah standar terbuka untuk komunikasi antar-AI agent. Dokumentasi resminya menyebutnya sebagai “bahasa bersama” yang membuat agen dari framework dan vendor berbeda bisa saling bekerja sama tanpa disekat masing-masing silo. Protokol ini diumumkan Google lewat blog resmi Google Developers pada 9 April 2025, lalu didonasikan ke Linux Foundation sehingga pengembangannya kini lintas-vendor, bukan dikendalikan satu perusahaan.

Per November 2026, spesifikasi A2A ada di versi 1.0.1 (rilis 28 Mei 2026), berlisensi Apache-2.0, dengan SDK resmi untuk Python, JS/TS, Java, Go, .NET, dan Rust. Repositori utamanya di GitHub a2aproject/A2A sudah mendapat lebih dari 26 ribu bintang.

A2A vs MCP: Melengkapi, Bukan Bersaing

Pertanyaan paling umum soal A2A adalah apakah ia menggantikan MCP. Jawabannya tidak. Dokumentasi resmi A2A menjelaskan perbedaannya lewat arah koneksi:

  • MCP bersifat vertikal. Ia memperdalam satu agen dengan menyambungkannya ke tool, database, atau API. Panduan lengkapnya ada di apa itu MCP Server dan cara kerjanya.
  • A2A bersifat horizontal. Ia menghubungkan agen ke agen lain di luar batas sistemmu, bisa punya tim lain, departemen lain, atau partner bisnis lain.

Analoginya: MCP memberi satu orang lebih banyak alat kerja, A2A membuat orang itu bisa menelepon orang lain untuk minta bantuan. Dipakai bersama, MCP memberi kedalaman dan A2A memberi jangkauan.

Kapan Butuh A2A, Kapan Cukup Pola Supervisor

Tidak semua sistem multi-agent butuh A2A. Dokumentasi A2A sendiri menyebut cara lama, yaitu membungkus satu agen jadi tool untuk dipanggil agen lain, sebagai pendekatan yang membatasi kemampuan agen tersebut karena ia dipaksa berperilaku seperti tool, bukan seperti agen otonom.

Pola supervisor via tool calling yang dibahas di tutorial membuat multi-agent system dengan LangGraph tetap cocok kalau semua agenmu berada dalam satu basis kode yang kamu kendalikan penuh. A2A baru relevan ketika:

  • Agen yang mau diajak kerja sama dibangun di luar timmu, misalnya oleh vendor atau partner.
  • Agen itu dibangun dengan framework berbeda, dan kamu tidak mau menulis integrasi khusus untuk tiap kombinasi.
  • Agen tersebut perlu bisa ditemukan secara dinamis, bukan di-hardcode sebagai satu tool tetap.

Kalau kebutuhanmu belum sampai situ, pelajari dulu pola arsitektur dasarnya di panduan apa itu multi-agent system sebelum menambah lapisan A2A.

Komponen Inti A2A

Empat objek ini jadi dasar semua komunikasi A2A, menurut dokumentasi resmi:

Komponen Fungsi
Agent Card Kartu identitas digital agen: nama, kemampuan, skill yang ditawarkan, dan cara menghubunginya. Dipakai agen lain untuk “menemukan” agenmu.
Task Unit kerja yang stateful, dengan status seperti submitted, working, atau completed.
Message Isi komunikasi antaragen dalam satu Task, bisa berupa teks atau data terstruktur.
Artifact Hasil kerja yang dikembalikan agen, misalnya teks jawaban atau berkas.

Transport-nya mendukung tiga cara: JSON-RPC 2.0 lewat HTTP dengan Server-Sent Events untuk streaming, gRPC, dan HTTP/REST biasa.

Tutorial: Bikin Agen A2A Pertama dengan Python SDK

Contoh di bawah mengikuti quickstart Python resmi A2A: agen “echo” sederhana yang menjawab setiap pesan dengan konfirmasi sudah menerima pesan itu. Tujuannya memperkenalkan empat bagian A2A Server: skill, Agent Card, Agent Executor, dan server itu sendiri.

Langkah 1: Instalasi

pip install a2a-sdk uvicorn httpx

SDK resmi a2a-sdk versi terbaru di PyPI per November 2026 adalah 1.3.0, dan butuh Python 3.10 ke atas.

Langkah 2: Definisikan Skill dan Agent Card

from a2a.types import AgentCapabilities, AgentCard, AgentInterface, AgentSkill

skill = AgentSkill(
    id='echo_bot',
    name='Echo Bot',
    description='Agen contoh yang menerima pesan dan membalas dengan konfirmasi.',
    input_modes=['text/plain'],
    output_modes=['text/plain'],
    tags=['a2a', 'echo-example'],
    examples=['hi', 'apa kabar'],
)

agent_card = AgentCard(
    name='Agen Echo Komunitech',
    description='Agen contoh untuk belajar A2A Protocol.',
    version='0.0.1',
    default_input_modes=['text/plain'],
    default_output_modes=['text/plain'],
    capabilities=AgentCapabilities(streaming=True),
    supported_interfaces=[
        AgentInterface(
            protocol_binding='JSONRPC',
            url='http://127.0.0.1:9999',
            protocol_version='1.0',
        )
    ],
    skills=[skill],
)

Agent Card inilah yang dibaca agen lain untuk tahu apa yang bisa dikerjakan agenmu, sebelum mereka memutuskan mengirim tugas ke sana.

Langkah 3: Buat Agent Executor

from a2a.helpers import get_message_text, new_task_from_user_message, new_text_part
from a2a.server.agent_execution import AgentExecutor, RequestContext
from a2a.server.events import EventQueue
from a2a.server.tasks import TaskUpdater
from a2a.types import TaskState

class EchoAgent:
    async def invoke(self, pesan: str) -> str:
        return f'Pesan diterima: {pesan}'

class EchoAgentExecutor(AgentExecutor):
    def __init__(self) -> None:
        self.agent = EchoAgent()

    async def execute(self, context: RequestContext, event_queue: EventQueue) -> None:
        if context.current_task:
            task = context.current_task
        else:
            task = new_task_from_user_message(context.message)
            await event_queue.enqueue_event(task)

        updater = TaskUpdater(event_queue=event_queue, task_id=task.id, context_id=task.context_id)
        await updater.update_status(state=TaskState.TASK_STATE_WORKING)

        teks = get_message_text(context.message)
        hasil = await self.agent.invoke(teks)

        await updater.add_artifact(parts=[new_text_part(text=hasil, media_type='text/plain')])
        await updater.update_status(state=TaskState.TASK_STATE_COMPLETED)

    async def cancel(self, context: RequestContext, event_queue: EventQueue) -> None:
        raise NotImplementedError('Cancel belum didukung.')

Agent Executor adalah jembatan antara protokol A2A dan logika agenmu sendiri. Bagian invoke di sinilah kamu nantinya memanggil LLM atau sistem multi-agent LangGraph yang sudah kamu bangun.

Langkah 4: Jalankan Server

import uvicorn
from a2a.server.request_handlers import DefaultRequestHandler
from a2a.server.routes import create_agent_card_routes, create_jsonrpc_routes
from a2a.server.tasks import InMemoryTaskStore
from starlette.applications import Starlette

request_handler = DefaultRequestHandler(
    agent_executor=EchoAgentExecutor(),
    task_store=InMemoryTaskStore(),
    agent_card=agent_card,
)

routes = []
routes.extend(create_agent_card_routes(agent_card))
routes.extend(create_jsonrpc_routes(request_handler, '/'))
app = Starlette(routes=routes)

if __name__ == '__main__':
    uvicorn.run(app, host='127.0.0.1', port=9999)

Langkah 5: Panggil Agen dari Klien

import asyncio
import httpx
from a2a.client import A2ACardResolver, ClientConfig, create_client
from a2a.helpers import new_text_message
from a2a.types import Role, SendMessageRequest

async def main():
    async with httpx.AsyncClient() as http_client:
        resolver = A2ACardResolver(httpx_client=http_client, base_url='http://127.0.0.1:9999')
        card = await resolver.get_agent_card()

    client = await create_client(agent=card, client_config=ClientConfig(streaming=False))
    message = new_text_message('Halo dari klien', role=Role.ROLE_USER)
    async for chunk in client.send_message(SendMessageRequest(message=message)):
        print(chunk)

asyncio.run(main())

Klien pertama-tama membaca Agent Card untuk tahu agen itu bisa apa dan di mana ia bisa dihubungi, baru kemudian mengirim pesan. Proses penemuan ini yang membedakan A2A dari integrasi point-to-point biasa.

Satu batasan jujur: kode di halaman Komunitech yang sedang kamu baca diadaptasi dari quickstart dan sample resmi A2A, tapi belum kami jalankan sendiri. Untuk versi lengkap yang bisa langsung dicoba, clone repo a2aproject/a2a-samples dan jalankan contoh helloworld-nya.

๐Ÿ’ก KEY TAKEAWAY

  • Alur A2A: definisikan skill โ†’ bungkus jadi Agent Card โ†’ tulis Agent Executor โ†’ jalankan server โ†’ klien menemukan lewat Card, lalu kirim pesan.
  • Agent Card itu kuncinya: tanpa Card yang jelas, agen lain tidak tahu agenmu bisa mengerjakan apa.

Catatan Keamanan

A2A membuka agenmu supaya bisa dihubungi pihak lain, jadi perlakukan Agent Card dan endpoint-nya seperti API publik:

  • Jangan expose Agent Card internal ke publik begitu saja. A2A mendukung extended agent card yang isinya cuma terlihat untuk klien yang sudah terautentikasi, pisahkan informasi sensitif ke situ.
  • Update SDK secara rutin. Basis data NVD mencatat lima CVE pada A2A Java SDK yang terbit 20 Oktober 2026, mencakup kebocoran token notifikasi push dan parsing request yang tidak aman. Semuanya sudah diperbaiki di versi 1.3.0.Final dan 1.3.2.Final.
  • Validasi setiap Task dari agen eksternal. Agen dari luar sistemmu tetap input yang tidak sepenuhnya bisa kamu percaya; perlakukan seperti data dari pengguna umum.

Dampaknya buat Bisnis di Indonesia

Buat bisnis yang baru mulai pakai satu dua AI agent, A2A belum jadi prioritas. Nilainya baru terasa begitu kamu mulai menghubungkan agen buatan sendiri dengan agen dari software pihak ketiga, misalnya sistem CRM atau helpdesk yang sudah punya AI agent sendiri. Komunitech mengajarkan pembuatan AI Agent berbasis OpenClaw untuk operasional bisnis sehari-hari, dan memahami A2A sejak awal membantu kamu menilai apakah software atau vendor yang kamu pilih nanti bisa diajak kerja sama dengan agen buatanmu sendiri.

Pertanyaan yang Sering Ditanya

Apa itu A2A Protocol?

A2A (Agent2Agent) Protocol adalah standar terbuka untuk komunikasi antar-AI agent dari framework dan vendor berbeda, diumumkan Google pada 9 April 2025 dan kini dikelola Linux Foundation.

Apakah A2A menggantikan MCP?

Tidak. MCP menghubungkan satu agen ke tool dan resource-nya sendiri (vertikal), sedangkan A2A menghubungkan agen ke agen lain di luar sistemmu (horizontal). Keduanya dipakai bersama, bukan saling menggantikan.

Apakah A2A gratis dipakai?

Ya. Spesifikasi dan SDK resminya berlisensi Apache-2.0 dan gratis dipakai. Biaya yang muncul biasanya dari pemakaian model AI lewat API, bukan dari protokolnya sendiri.

Framework apa saja yang sudah mendukung A2A?

Dokumentasi resmi menyebut LangGraph, CrewAI, Google ADK, dan Genkit sebagai contoh framework yang kompatibel. Karena A2A adalah protokol komunikasi, bukan library bawaan satu framework, dukungan ini bisa terus bertambah.

Apakah saya wajib pakai A2A untuk sistem multi-agent sederhana?

Tidak wajib. Kalau semua agenmu berada dalam satu basis kode yang kamu kendalikan penuh, pola supervisor biasa lebih sederhana. A2A baru bernilai ketika agen yang diajak kerja sama berasal dari luar timmu atau framework berbeda.

Kesimpulan

A2A Protocol menjawab masalah spesifik: menghubungkan agen dari framework dan vendor berbeda tanpa integrasi custom di tiap pasangan. Ia bukan pengganti MCP maupun pola supervisor yang sudah kamu pakai, melainkan lapisan tambahan untuk saat agenmu perlu bicara dengan agen di luar kendalimu.

Langkah praktisnya: kalau sistem multi-agentmu masih dalam satu tim dan satu basis kode, tunda dulu A2A dan fokus ke pola supervisor. Baru pelajari A2A lebih dalam ketika ada kebutuhan nyata menyambungkan agenmu ke agen pihak lain.

Referensi

Disclaimer

Contoh kode disediakan untuk tujuan edukasi dan diadaptasi dari dokumentasi resmi A2A Protocol per November 2026. API dan versi paket bisa berubah; selalu cek dokumentasi terbaru sebelum dipakai di produksi. Komunitech tidak berafiliasi dengan Google, Linux Foundation, atau proyek A2A.

Avatar Priyo Harjiyono

Workshop ยท Batch 12

2 jam bikin AI Agent pertamamu

Minggu, 18 Okt 2026 ยท 20.00 WIB

Rp399.000 Rp1.800.000

Modul Gratis

Modul intro Karyawan AI

Tiga bab video + worksheet + grup Telegram. Gratis.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *