Publiczne wykrywanie agentów
Użyj tych przykładów, aby ukształtować JSON, który inny klient A2A pobiera przed podjęciem decyzji, czy Twój agent może wykonać zadanie.
6 gotowych do skopiowania szablonów JSON · A2A v1.0
Przeglądaj praktyczne szablony A2A v1.0, zrozum ich decyzje projektowe, a następnie dostosuj dowolny przykład do własnego agenta.
Użyj tych przykładów, aby ukształtować JSON, który inny klient A2A pobiera przed podjęciem decyzji, czy Twój agent może wykonać zadanie.
Dostosuj dostawcę, umiejętności, tagi, możliwości, i metadane bezpieczeństwa, aby recenzenci rozumieli, co robi agent i kto go obsługuje.
Ustandaryzuj opisy endpointów, uwierzytelniania, i umiejętności w agentach wewnętrznych, zanim zespoły zintegrują je z przepływami pracy.
Szablony JSON
Obsługuje pytania o produkty, wyszukiwanie zamówień, zwroty, i przekazywanie eskalacji.
Dlaczego zbudowano to w ten sposób
{
"name": "Agent Obsługi Klienta",
"description": "Odpowiada na pytania obsługi klienta, pobiera kontekst zamówienia i przekazuje nierozwiązane problemy zespołowi ludzkiemu.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/customer-support",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Przykładowa firma",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "resolve-customer-support-request",
"name": "Rozwiąż żądanie obsługi klienta",
"description": "Klasyfikuje żądanie obsługi klienta, zbiera potrzebny kontekst, proponuje rozwiązanie i eskaluje, gdy poziom zaufania jest niski.",
"tags": [
"support",
"orders",
"returns"
],
"examples": [
"Pomóż mi zwrócić moje zamówienie."
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/customer-support/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}Znajduje dostępne terminy spotkań i przygotowuje potwierdzenia rezerwacji.
Dlaczego zbudowano to w ten sposób
{
"name": "Agent Rezerwacji",
"description": "Wyszukuje dostępność, proponuje opcje rezerwacji i przygotowuje rezerwacje terminów do zatwierdzenia.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/booking",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Przykładowa firma",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": false,
"pushNotifications": true,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "find-and-prepare-booking",
"name": "Znajdź i przygotuj rezerwację",
"description": "Sprawdza dostępność zasobów, porównuje okna rezerwacji i zwraca ustrukturyzowaną propozycję rezerwacji.",
"tags": [
"booking",
"calendar",
"availability"
],
"examples": [
"Znajdź 30-minutowe spotkanie jutro po południu."
]
}
],
"securitySchemes": {
"apiKey": {
"apiKeySecurityScheme": {
"location": "header",
"name": "X-API-Key"
}
}
},
"security": [
{
"apiKey": []
}
]
}Porównuje produkty, dostępność, ceny, i ograniczenia zakupowe.
Dlaczego zbudowano to w ten sposób
{
"name": "Agent Zakupowy",
"description": "Porównuje produkty z ograniczeniami użytkowników i zwraca wybrane opcje zakupu z kompromisami.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/shopping",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Przykładowa firma",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "compare-shopping-options",
"name": "Porównaj opcje zakupów",
"description": "Ocenia potencjalne produkty, filtruje według ograniczeń i zwraca rankingowe rekomendacje wraz z uzasadnieniem.",
"tags": [
"shopping",
"commerce",
"recommendations"
],
"examples": [
"Porównaj lekkie laptopy poniżej 1200 USD."
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/shopping/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}Przegląda zadania kodowe, proponuje poprawki, i wyjaśnia decyzje implementacyjne.
Dlaczego zbudowano to w ten sposób
{
"name": "Agent Programistyczny",
"description": "Pomaga w zadaniach związanych z inżynierią oprogramowania, analizując kod, proponując zmiany i przesyłając notatki dotyczące wdrożenia.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/coding",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Przykładowa firma",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true,
"extendedAgentCard": true
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "implement-code-change",
"name": "Zaimplementuj zmianę kodu",
"description": "Odczytuje żądanie kodowania, sprawdza odpowiednie pliki, zwraca propozycję poprawki i podsumowuje kroki weryfikacji.",
"tags": [
"coding",
"review",
"patches"
],
"examples": [
"Dodaj paginację do interfejsu API użytkowników."
]
}
],
"securitySchemes": {
"apiKey": {
"apiKeySecurityScheme": {
"location": "header",
"name": "X-API-Key"
}
}
},
"security": [
{
"apiKey": []
}
]
}Zbiera źródła, wydobywa dowody, i zwraca ustrukturyzowane notatki badawcze.
Dlaczego zbudowano to w ten sposób
{
"name": "Agent Badawczy",
"description": "Zbiera materiał źródłowy, wyodrębnia dowody i tworzy uporządkowane notatki badawcze z cytatami.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/research",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Przykładowa firma",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "prepare-research-brief",
"name": "Przygotuj brief badawczy",
"description": "Przeszukuje zatwierdzone źródła, wyodrębnia twierdzenia i dowody oraz zwraca zwięzły opis badań.",
"tags": [
"research",
"evidence",
"citations"
],
"examples": [
"Przygotuj cytowany brief na temat polityki w zakresie energii odnawialnej."
]
}
]
}Koordynuje zatwierdzenia, kontrole stanu, i aktualizacje przepływu pracy back-office.
Dlaczego zbudowano to w ten sposób
{
"name": "Agent Wewnętrznego Przepływu Pracy",
"description": "Koordynuje wewnętrzne zatwierdzenia, sprawdza stan systemu i przygotowuje aktualizacje przepływu pracy dla zespołów operacyjnych.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/workflow",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Przykładowa firma",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": false,
"pushNotifications": true,
"extendedAgentCard": true
},
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "coordinate-internal-workflow",
"name": "Koordynuj wewnętrzny przepływ pracy",
"description": "Otrzymuje zamiar przepływu pracy, sprawdza wymagania zasad, zbiera zatwierdzenia i raportuje ostateczny stan.",
"tags": [
"workflow",
"operations",
"approval"
],
"examples": [
"Poproś o zatwierdzenie wdrożenia aktualizacji listy płac."
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/workflow/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}Dostosuj z pewnością
Każdy przykład Agent Card jest celowo wystarczająco kompletny, aby go skopiować, ale Agent Card nie powinna być publikowana bez zmian. Traktuj ją jako mapę pól dla własnego serwera A2A: zastąp tożsamość, endpoint, dostawcę, uwierzytelnianie, możliwości, tryby, i szczegóły umiejętności wartościami produkcyjnymi.
Najsilniejsze Agent Card wyjaśniają granicę zadania agenta zarówno prostym językiem, jak i metadanymi czytelnymi maszynowo. Klient powinien być w stanie stwierdzić, co agent może zrobić, czego nie może zrobić, jaki URL wywołać, i czy wymagane są poświadczenia.
Zastąp każdy URL example.com wdrożonym endpointem A2A i stroną internetową dostawcy.
Przepisz nazwę umiejętności, opis, tagi (wymagane w v1.0), i przykłady dla rzeczywistej granicy zadania.
Ustaw provider.organization i zwiększaj version najwyższego poziomu za każdym razem, gdy zmienia się zawartość Agent Card.
Usuń pola uwierzytelniania tylko wtedy, gdy endpoint jest celowo publiczny.
Utrzymuj defaultInputModes i defaultOutputModes zgodne z tym, co Twój serwer faktycznie akceptuje i zwraca.
Zwaliduj ostateczny JSON i opublikuj go pod adresem /.well-known/agent-card.json w domenie Twojej usługi.
Gotowi do budowania
Otwórz dowolny wzorzec w Generatorze Agent Card, przejrzyj JSON, i zwaliduj go przed publikacją.