에이전트 카드는 무엇을 선언하며, A2A로 스킬을 어떻게 호출합니까?
접근 경로 · 태그가 붙은 여덟 가지 스킬, 하나의 JSON-RPC 엔드포인트, 두 가지 호출 방법
- 에이전트용
- 6분
- 고급
- 개발자
- A2A
/.well-known/agent-card.json의 카드(버전 1.4.0, A2A 프로토콜 1.0.0)는 입력 스키마를 갖춘 여덟 가지 스킬, JSON-RPC 엔드포인트 /a2a, 인증 방식 none, CAIP-2 id를 가진 일곱 개 네트워크, 분당 1,200 요청의 요청 한도, MCP 안내를 선언합니다. 스킬은 A2A 코어 방식 — 데이터 파트를 담은 SendMessage — 으로 호출하거나, 버전 헤더 없이 자체 JSON-RPC 메서드 {"jsonrpc": "2.0", "id": 1, "method": "get-address-risk", "params": {…}}로 호출합니다.
카드에 담긴 것
GET /.well-known/agent-card.json은 application/a2a-agent-card+json으로 답합니다 — 2026-10-13에 캡처한 응답 헤더의 콘텐츠 유형이며, AI 카탈로그가 이 카드에 대해 선언하는 유형이기도 합니다. 그날 카드가 선언한 내용: name Stablecoin Scanner, version 1.4.0, protocolVersion 1.0.0; endpoint https://stablescan.achivx.com/a2a; supportedInterfaces JSONRPC 바인딩 하나, 프로토콜 1.0; authentication.schemes 항목 하나, 방식 none — 공개 읽기 전용 텔레메트리. 인증이 필요 없습니다.; defaultInputModes application/json과 text/plain, 출력 application/json; rateLimits publicPerMinute 1200; documentationUrl 매뉴얼; 연결 명령이 담긴 x-mcp. 카드 고유의 추가 항목은 매뉴얼의 표현으로 평면 메서드 목록, 스킬별 입력 스키마, 인덱싱된 네트워크(networks[]: name, slug — chain이 허용하는 표기 — , caip2)입니다. capabilities는 streaming과 pushNotifications를 false로 선언하며 — 메시지 전용 에이전트 — 두 가지 확장을 선언합니다: 아래의 스킬 메서드 확장, 그리고 더 넓은 ACHIVX 생태계를 매핑하는 데이터 전용 확장(여기서는 다루지 않음). 카드는 스키마와 한도에 대한 권위 있는 기준입니다. 1.0 이전 경로 /.well-known/agent.json은 카드로 301을 답합니다(2026-10-13 확인).
여덟 가지 스킬
get-address-risk, get-address-compliance, get-address-exposure, get-address-approvals, get-sanctions-status, get-sync-status, get-recent-transactions, get-wallet-graph-walk — 각각 태그(risk, verdict, screening, compliance; graph, flow, walk, tracing, explainability; …), 예시 질문, 입력 스키마가 있습니다. 네트워크를 받는 일곱 개 스킬에서는 스키마의 chain 설명이 허용되는 모든 형식을 밝힙니다(get-sanctions-status는 매개변수를 받지 않습니다). 각 스킬에는 이 섹션에 자체 페이지가 있습니다.
두 가지 호출 방법
A2A 1.0 코어 — 매뉴얼: 데이터 파트 {"skill": "<id>", "params": {…}}를 담은 SendMessage는 그 스킬을 실행하고 직접적인 에이전트 Message로 답합니다 … Task는 결코 생성되지 않습니다. 봉투는 ProtoJSON입니다: messageId(직접 정하는 임의의 고유 문자열)와 role: "ROLE_USER"가 필수이며, 코어 작업에는 헤더 A2A-Version: 1.0이 필요합니다. 텍스트만 있는 메시지는 추측해서 처리하지 않습니다: 2026-10-13 텍스트 파트 하나만 있는 SendMessage는 텍스트 파트가 이것은 결정론적 텔레메트리 에이전트입니다 — 자유 텍스트를 해석하지 않습니다. 데이터 파트를 보내 스킬을 호출하십시오 …이고 데이터 파트가 여덟 가지 스킬을 예시와 함께 나열하는 메시지로 답했습니다.
스킬 메서드 — 선언된 확장 https://stablescan.achivx.com/a2a-ext/skill-methods/v1: 모든 스킬이 자체 JSON-RPC 메서드이며, {"jsonrpc":"2.0","id":1,"method":"get-sanctions-status","params":{}}, 버전 헤더 없음. 응답에는 그 확장을 지정하는 헤더 A2A-Extensions가 붙습니다. 봉투는 필수입니다: 봉투 없는 {"method": …}는 2026-10-13에 HTTP 200 안에서 -32600 Invalid Request: jsonrpc must be 2.0으로 답했습니다.
응답 코드
모든 JSON-RPC 응답은 result 또는 error를 담은 HTTP 200이므로, 클라이언트는 코드로 분기합니다. 두 응답은 JSON-RPC 밖에 있으며 봉투가 없습니다: 요청 한도는 Retry-After와 함께 429로 답합니다 — §6이 말하듯 헤더에 따라 간격을 두십시오. 그리고 엔드포인트가 POST 전용이므로, GET /a2a는 2026-10-13에 Allow: POST와 평면 {"error": "method_not_allowed", "use": "POST", "see": …}가 붙은 405로 답했습니다. 매뉴얼 §1과 §6에서: -32602 매개변수 수정이 필요하며 메시지에 지정됨. -32050 deadline exceeded, data: {"reason": "timeout", "retryable": true, "read": "<skill>"}와 함께 — data.read는 끝나지 않은 조회를 지정합니다. 간격을 둔 뒤 재시도하되 반복하지 마십시오. 무거운 조회는 다시 시간 초과될 수 있습니다. -32001 GetTask/CancelTask에 대한 TaskNotFoundError로, 정직한 응답입니다 — 태스크는 존재하지 않으며, ListTasks는 빈 페이지로 답합니다. -32009 A2A-Version: 1.0 없이 보낸 코어 작업. -32004 / -32003 명세의 스트리밍, 푸시, 확장 카드 작업 이름 — 카드가 제공하지 않는 기능입니다(streaming과 pushNotifications는 false). -32601 그 밖의 모든 메서드 이름, 0.3 시대의 슬래시 이름 포함. 내부 오류에는 스킬 메서드에서 -32000, SendMessage에서 -32603. 전체 목록 — 모든 REST 상태와 코드, 메시지가 붙은 모든 A2A 코드, 모든 MCP 거부 — 은 응답은 어떤 것일 수 있습니까?에 있습니다.
Stablecoin scanner ACHIVX에서
- 카드: /.well-known/agent-card.json.
- 엔드포인트
POST /a2a와 스킬 메서드 확장은 매뉴얼 §1에 있습니다: /agents.md. - AI 카탈로그는 이 카드를 Stablecoin Scanner A2A agent로 나열합니다: /.well-known/ai-catalog.json.
출처
더 알아보기
관련 질문
- 에이전트는 어떤 접근 경로를 써야 합니까 — MCP, A2A, REST, 아니면 Markdown 페이지?
- Stablecoin scanner ACHIVX MCP 서버는 어떻게 연결합니까?
- 한도는 무엇이며, 거부는 어떤 모습입니까?
접근 경로 · A2A · 2026-10-13 작성, 스캐너 자체의 기계용 문서와 그날 조회한 실시간 응답을 바탕으로 했습니다. 구조는 그대로 인용했으며, 수치는 날짜 기준이고 인덱스에 따라 바뀝니다.
이 페이지는 ACHIVX Academy 영어 원문을 한국어로 옮긴 것입니다. 번역과 원문이 다르면 영어 원문이 기준입니다.