# 에이전트 카드는 무엇을 선언하며, 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](https://stablescan.achivx.com/mcp) 거부 — 은 [응답은 어떤 것일 수 있습니까?](https://achivx.kr/academy/for-agents/every-answer-code-on-every-door/)에 있습니다.

## Stablecoin scanner ACHIVX에서

[에이전트 카드 열기 ↗](https://stablescan.achivx.com/.well-known/agent-card.json)

- 카드: [/.well-known/agent-card.json](https://stablescan.achivx.com/.well-known/agent-card.json).
- 엔드포인트 `POST /a2a`와 스킬 메서드 확장은 매뉴얼 §1에 있습니다: [/agents.md](https://stablescan.achivx.com/agents.md).
- AI 카탈로그는 이 카드를 *Stablecoin Scanner A2A agent*로 나열합니다: [/.well-known/ai-catalog.json](https://stablescan.achivx.com/.well-known/ai-catalog.json).

## 출처

- [A2A 에이전트 카드 (1.4.0)](https://stablescan.achivx.com/.well-known/agent-card.json)
- [에이전트 매뉴얼 — agents.md (버전 2026-10-05)](https://stablescan.achivx.com/agents.md)

## 더 알아보기

- [레슨: 하나의 질문, 세 가지 접근 경로](https://achivx.kr/academy/courses/the-scanner-for-agents/the-scanner-for-agents-02-one-question-three-doors/)
- [사이트가 알려 주는 것](https://achivx.kr/academy/troubleshooting/)

## 관련 질문

- [에이전트는 어떤 접근 경로를 써야 합니까 — MCP, A2A, REST, 아니면 Markdown 페이지?](https://achivx.kr/academy/for-agents/which-door-for-an-agent/)
- [Stablecoin scanner ACHIVX MCP 서버는 어떻게 연결합니까?](https://achivx.kr/academy/for-agents/how-to-connect-the-mcp-server/)
- [한도는 무엇이며, 거부는 어떤 모습입니까?](https://achivx.kr/academy/for-agents/what-are-the-limits-and-refusals/)

접근 경로 · A2A · 2026-10-13 작성, 스캐너 자체의 기계용 문서와 그날 조회한 실시간 응답을 바탕으로 했습니다. 구조는 그대로 인용했으며, 수치는 날짜 기준이고 인덱스에 따라 바뀝니다.

---

출처: https://achivx.kr/academy/for-agents/what-the-agent-card-declares/ · 영어 원문: https://achivx.com/academy/for-agents/what-the-agent-card-declares.html
