Files
multi-agent-paper/gRPC_Based_Interface/docs/agent_card_template.json
T

98 lines
3.4 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "AgentCard",
"description": "A2A 표준 기반 이종 에이전트 및 물리 장치 발견용 Agent Card 스키마 템플릿",
"type": "object",
"properties": {
"agent_id": {
"type": "string",
"description": "에이전트 또는 물리 노드의 고유 UUID 또는 식별자"
},
"name": {
"type": "string",
"description": "에이전트/장치 명칭 (예: smart-farm-sprinkler-01)"
},
"role": {
"type": "string",
"description": "시스템 내에서의 역할 (예: sensing-layer, control-layer, planner, developer, reviewer)"
},
"version": {
"type": "string",
"description": "에이전트 모듈 소프트웨어 버전"
},
"endpoint": {
"type": "object",
"description": "연동 엔드포인트 정보",
"properties": {
"uri": {
"type": "string",
"description": "접속 Endpoint URI (예: dns:///edge-gateway.local:50051 또는 mqtt://broker.local:1883)"
},
"protocol": {
"type": "string",
"enum": ["grpc", "grpc-over-quic", "mqtt-v5", "coap", "http2"],
"description": "통신 전송 프로토콜 규격"
},
"transport_fallback": {
"type": "string",
"enum": ["grpc-over-http2", "mqtt-v3.1.1", "none"],
"description": "네트워크 제한 시 fallback할 전송 계층"
}
},
"required": ["uri", "protocol"]
},
"security": {
"type": "object",
"description": "보안 및 신원 정보",
"properties": {
"auth_type": {
"type": "string",
"enum": ["spiffe-svid", "hmac-sha256", "mtls", "none"],
"description": "인증/인가 보안 프로토콜"
},
"spiffe_id": {
"type": "string",
"description": "SPIFFE 신원 식별자 (예: spiffe://example.org/ns/smartfarm/sa/sprinkler)"
},
"hmac_token_ref": {
"type": "string",
"description": "HMAC 토큰 서명을 위한 환경변수명"
}
},
"required": ["auth_type"]
},
"capabilities": {
"type": "array",
"description": "에이전트가 제공하는 과업/제어 기능 및 RPC 메소드 매핑",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "기능/명령 이름 (예: spray_pesticide)"
},
"grpc_method": {
"type": "string",
"description": "gRPC 패키지/메서드 매핑 경로 (예: /smartfarm.ControlService/SprayPesticide)"
},
"mqtt_topic": {
"type": "string",
"description": "하부 센싱/제어 매핑 MQTT 토픽 (예: farm/device/sprinkler/control)"
},
"idempotency": {
"type": "string",
"enum": ["idempotent", "non-idempotent"],
"description": "제어 명령의 멱등성 여부 분류 (비멱등 시 CIK 적용 필수)"
},
"input_schema": {
"type": "object",
"description": "입력 파라미터 Protobuf/JSON 스키마 정의"
}
},
"required": ["name", "idempotency"]
}
}
},
"required": ["agent_id", "name", "role", "endpoint", "security", "capabilities"]
}