Saltar al contenido principal

Referencia de comandos A2A

Esta página documenta todos los comandos de iac-code relacionados con A2A. Úsala cuando necesites nombres exactos de opciones, patrones comunes de comandos y el significado operativo de cada flag.

Resumen de comandos

ComandoPropósito
iac-code a2aEjecutar iac-code como servidor A2A
iac-code a2a-client callDescubrir una Agent Card remota y enviar un prompt
iac-code a2a-client discoverObtener y opcionalmente verificar una Agent Card
iac-code a2a-client task-getObtener una tarea por ID
iac-code a2a-client task-listListar tareas con filtros y paginación
iac-code a2a-client task-cancelCancelar una tarea activa
iac-code a2a-client task-subscribeSuscribirse a un stream de eventos de una tarea activa
iac-code a2a-client push-config-createCrear una configuración de notificación push de tarea
iac-code a2a-client push-config-getObtener una configuración de notificación push de tarea
iac-code a2a-client push-config-listListar configuraciones de notificación push de tarea
iac-code a2a-client push-config-deleteEliminar una configuración de notificación push de tarea
iac-code a2a-client extended-cardObtener la Agent Card extendida autenticada
iac-code a2a-route-previewPrevisualizar la selección local de ruta para a2a-client call

Todos los comandos de cliente HTTP aceptan las mismas opciones de autenticación:

OpciónDescripción
--tokenToken Bearer enviado como Authorization: Bearer <token>
--basic-usernameNombre de usuario de Basic auth
--basic-passwordContraseña de Basic auth
--api-keyValor de clave de API
--api-key-headerNombre del encabezado de clave de API; por defecto es X-API-Key

Configuración del cliente A2A

Todos los subcomandos a2a-client aceptan un archivo de configuración YAML a nivel de grupo:

iac-code a2a-client --config a2a-client.yml call --prompt "Create a VPC"

Las opciones de CLI sobrescriben los valores de configuración. Usa la configuración para conexión estable, autenticación, verificación, enrutamiento y ajustes repetidos de tareas o push; mantén el texto de prompts puntuales en la línea de comandos.

url: http://127.0.0.1:41242/
token: your-bearer-token
basic-username: iac-code
basic-password: your-password
api-key: your-api-key
api-key-header: X-IAC-Code-Key
verify-card-secret: your-card-signing-secret
verify-card-jwks-url: https://a2a.example.com/.well-known/jwks.json
require-card-signature: true
timeout: 30
cwd: /path/to/workspace
context-id: ctx-123
task-id: task-123
config-id: webhook-1
callback-url: https://hooks.example.com/a2a
notification-token: notification-token
auth-scheme: bearer
auth-credentials: callback-token
routes:
- name: ros
url: http://127.0.0.1:41242/
skills:
- iac_generation
tags:
- ros
- template

iac-code a2a

Ejecuta iac-code como servidor A2A.

iac-code a2a

De forma predeterminada, el servidor se enlaza a 127.0.0.1:41242 y sirve JSON-RPC sobre HTTP. El puerto 41242 es el predeterminado de iac-code; no es un puerto A2A registrado.

Opciones básicas del servidor

OpciónPredeterminadoDescripción
--configvacíoArchivo de configuración YAML que contiene opciones del servidor A2A
--host127.0.0.1Host del servidor HTTP
--port41242Puerto del servidor HTTP
--transporthttpTransporte del servidor: http, stdio, unix, websocket, grpc, grpc-jsonrpc o redis-streams
--thinking-exposuretool-traceExpone un tipo de señal de thinking A2A; repite para varios. Valores: raw-thinking, tool-trace
--debug, -dfalseHabilitar logging de depuración

Ejemplo:

iac-code a2a --host 127.0.0.1 --port 41242 --debug

Configuración YAML

Usa --config para autenticación, almacenamiento, firma, ajustes específicos de transporte, entrega push y otros detalles de despliegue. Las claves pueden usar guiones o guiones bajos. Los flags comunes de CLI --host, --port y --transport sobrescriben los valores del archivo de configuración.

host: 127.0.0.1
port: 41242
transport: http
token: local-dev-token
persistence-dir: .iac-code-a2a/state
artifact-dir: .iac-code-a2a/artifacts
push-notifications: true

Ejecútalo con:

iac-code a2a --config a2a-server.yml --port 41243

Autenticación HTTP

La autenticación es opcional. Configura la autenticación del servidor en YAML o con variables de entorno. Si no se configura ningún ajuste de autenticación, las solicitudes no están autenticadas. Cuando se configuran uno o más esquemas, una solicitud puede satisfacer cualquier esquema configurado.

Clave de configuraciónVariable de entornoDescripción
tokenIACCODE_A2A_HTTP_TOKENToken Bearer
basic-usernameIACCODE_A2A_BASIC_USERNAMENombre de usuario de Basic auth
basic-passwordIACCODE_A2A_BASIC_PASSWORDContraseña de Basic auth
api-keyIACCODE_A2A_API_KEYValor de clave de API
api-key-headerIACCODE_A2A_API_KEY_HEADERNombre del encabezado de clave de API

Token Bearer:

token: local-dev-token

Basic auth:

basic-username: iac-code
basic-password: local-dev-password

Clave de API:

api-key: local-dev-key
api-key-header: X-IAC-Code-Key

Persistencia y artefactos

Clave de configuraciónPredeterminadoDescripción
persistence-dir~/.iac-code/a2aMetadatos JSON locales para tareas, contextos, rutas y configuraciones push
artifact-dir<persistence-dir>/artifactsAlmacén local de payloads de artefactos

La persistencia refleja instantáneas de tareas y contextos como metadatos de restauración. No reinicia una tarea asyncio en curso después de un fallo del proceso.

persistence-dir: ~/.iac-code/a2a
artifact-dir: ~/.iac-code/a2a/artifacts

Firma de Agent Card

Clave de configuraciónDescripción
signing-secretSecreto HMAC usado para firmar la Agent Card pública

El servidor emite campos JWS AgentCardSignature del SDK de A2A. El modo simétrico usa HS256.

signing-secret: local-card-signing-secret

Entrega de notificaciones push

Clave de configuraciónPredeterminadoDescripción
push-notificationsfalseHabilitar métodos de configuración de notificaciones push de tareas A2A y entrega de estados terminales
push-queuelocal-fileBackend de cola push: local-file o redis-streams
push-redis-urlvacíoURL de Redis para la cola push respaldada por Redis
push-streamiac-code:a2a:pushStream de Redis para trabajos push
push-retry-keyiac-code:a2a:push:retryConjunto ordenado de Redis para reintentos retrasados
push-dead-streamiac-code:a2a:push:deadStream de Redis para trabajos de dead-letter
push-consumer-groupiac-code-pushGrupo de consumidores Redis para workers push
push-consumer-namevacíoNombre de consumidor Redis para este worker
push-lease-timeout-ms300000Timeout de lease pendiente de Redis

Cola de archivo local:

push-notifications: true
persistence-dir: ~/.iac-code/a2a
push-queue: local-file

Cola Redis Streams:

push-notifications: true
push-queue: redis-streams
push-redis-url: redis://localhost:6379/0
push-stream: iac-code:a2a:push
push-retry-key: iac-code:a2a:push:retry
push-dead-stream: iac-code:a2a:push:dead
push-consumer-group: iac-code-push
push-consumer-name: worker-1

La entrega push respaldada por Redis requiere el extra a2a-redis.

Opciones de transporte

TransporteComandoNotas
HTTP JSON-RPC y RESTiac-code a2a --transport httpPredeterminado. Anuncia interfaces JSONRPC y HTTP+JSON.
stdioiac-code a2a --transport stdioFrames JSON-RPC personalizados experimentales sobre entrada/salida estándar.
Socket Unixiac-code a2a --config a2a-server.yml --transport unixRequiere socket-path en la configuración.
WebSocketiac-code a2a --config a2a-server.yml --transport websocketUsa ws-path desde la configuración, con valor predeterminado /a2a.
gRPCiac-code a2a --config a2a-server.yml --transport grpcUsa grpc-host y grpc-port desde la configuración.
gRPC JSON-RPCiac-code a2a --config a2a-server.yml --transport grpc-jsonrpcEnvoltorio JSON-RPC personalizado sobre gRPC.
Redis Streamsiac-code a2a --config a2a-server.yml --transport redis-streamsRequiere redis-url en la configuración.

Opciones de transporte Redis Streams:

Clave de configuraciónPredeterminadoDescripción
redis-urlvacíoURL de conexión Redis; requerida para --transport redis-streams
request-streamiac-code:a2a:requestsNombre del stream de solicitudes
response-streamiac-code:a2a:responsesNombre del stream de respuestas
consumer-groupiac-codeGrupo de consumidores del stream de solicitudes

Exposición de thinking

Clave de configuraciónPredeterminadoDescripción
thinking-exposuretool-traceTipos de señales de runtime que no son respuesta expuestas mediante A2A metadata.iac_code. Usa una lista YAML, una cadena separada por comas o flags --thinking-exposure repetidas. Los valores admitidos son tool-trace y raw-thinking.

tool-trace conserva los metadatos existentes de progreso de herramientas, permisos y resultados. raw-thinking emite chunks de razonamiento del provider como actualizaciones metadata.iac_code.thinking con type: raw_thinking y text. iac-code no produce actualmente eventos separados de thought-summary o progress-summary, por lo que no son tipos de exposición válidos.

thinking-exposure:
- tool-trace
- raw-thinking

Comportamiento de permisos

Clave de configuraciónPredeterminadoDescripción
auto-approve-permissionsfalseAprobar automáticamente solicitudes de permisos de herramientas generadas durante turnos A2A

Sin auto-approve-permissions: true, el modo A2A rechaza solicitudes de permisos y emite metadatos de permisos. Úsalo solo para entornos de automatización de confianza.

iac-code a2a-client call

Descubre una Agent Card, elige el endpoint anunciado y envía un prompt.

iac-code a2a-client --config a2a-client.yml call \
--prompt "Create a ROS VPC template with two vSwitches." \
--cwd "$PWD"
OpciónPredeterminadoDescripción
--urlvacíoURL base del agente A2A o URL del endpoint JSON-RPC; puede venir de la configuración
--routerepetibleEspecificación de ruta usada cuando --url se omite
--route-namevacíoRuta con nombre que seleccionar
--prompt, -prequeridoTexto del prompt
--cwd.Ruta de espacio de trabajo enviada como message.metadata.iac_code.cwd
--context-idvacíoID de contexto A2A existente para un mensaje de seguimiento
--verify-card-secret, --signing-secretvacíoSecreto HMAC para verificación de Agent Card
--verify-card-jwks-urlvacíoURL JWKS remota usada para verificación de Agent Card
--require-card-signature, --require-signaturefalseRechazar Agent Cards sin firmar o inválidas
--timeout30.0Timeout de llamada en segundos
--streamfalseUsar SendStreamingMessage e imprimir eventos de stream

Seguimiento en el mismo contexto:

iac-code a2a-client --config a2a-client.yml call \
--context-id ctx-123 \
--prompt "Now add outputs for the VPC and vSwitch IDs." \
--cwd "$PWD"

Streaming:

iac-code a2a-client --config a2a-client.yml call \
--prompt "Review this Terraform module." \
--cwd "$PWD" \
--stream

Requerir una Agent Card firmada:

iac-code a2a-client --config a2a-client.yml call \
--prompt "Generate a production VPC template." \
--cwd "$PWD"

Verificar usando una URL JWKS remota:

iac-code a2a-client --config jwks-client.yml call \
--prompt "Review the ROS stack."

iac-code a2a-client discover

Obtiene e imprime una Agent Card remota.

iac-code a2a-client --config a2a-client.yml discover
OpciónDescripción
--urlURL base del agente A2A; puede venir de la configuración
--verify-card-secret, --signing-secretSecreto HMAC para verificación
--verify-card-jwks-urlURL JWKS remota para verificación
--require-card-signature, --require-signatureRequerir una firma válida

Descubrimiento autenticado:

iac-code a2a-client --config a2a-client.yml discover

Comandos de tareas

Los comandos de tareas llaman directamente a métodos de tarea JSON-RPC. Son útiles para herramientas operativas, paneles y depuración.

iac-code a2a-client task-get

iac-code a2a-client --config a2a-client.yml task-get \
--task-id task-123 \
--history-length 20
OpciónDescripción
--urlURL del endpoint A2A JSON-RPC; puede venir de la configuración
--task-idID de tarea; puede venir de la configuración
--history-lengthEntradas máximas de historial de tarea que devolver

iac-code a2a-client task-list

iac-code a2a-client --config a2a-client.yml task-list \
--context-id ctx-123 \
--status TASK_STATE_INPUT_REQUIRED \
--page-size 20 \
--output table
OpciónPredeterminadoDescripción
--urlvacíoURL del endpoint A2A JSON-RPC; puede venir de la configuración
--context-idvacíoFiltrar por ID de contexto
--statusvacíoFiltrar por estado de tarea
--page-sizevacíoMáximo de tareas que devolver
--page-tokenvacíoToken de paginación
--include-artifactsfalseIncluir artefactos de tarea en la respuesta
--outputtabletable o json

Salida JSON:

iac-code a2a-client --config a2a-client.yml task-list \
--include-artifacts \
--output json

iac-code a2a-client task-cancel

iac-code a2a-client --config a2a-client.yml task-cancel \
--task-id task-123

La cancelación es cooperativa. Una tarea completada, fallida, cancelada o que requiere entrada devuelve el error estándar A2A de tarea no cancelable.

iac-code a2a-client task-subscribe

iac-code a2a-client --config a2a-client.yml task-subscribe \
--task-id task-123

El comando transmite eventos para tareas activas. Para un nuevo turno, prefiere a2a-client call --stream; inicia la tarea y transmite actualizaciones en un solo comando.

Comandos de configuración de notificaciones push

Estos comandos requieren un servidor iniciado con push-notifications: true. Gestionan configuraciones estándar de notificaciones push de tareas A2A.

iac-code a2a-client push-config-create

iac-code a2a-client --config a2a-client.yml push-config-create \
--task-id task-123 \
--config-id webhook-1 \
--callback-url https://hooks.example.com/a2a \
--notification-token "$NOTIFICATION_TOKEN" \
--auth-scheme bearer \
--auth-credentials "$WEBHOOK_BEARER_TOKEN"
OpciónDescripción
--urlURL del endpoint A2A JSON-RPC; puede venir de la configuración
--task-idID de tarea; puede venir de la configuración
--config-idID de configuración push; puede venir de la configuración
--callback-urlURL de callback HTTP(S); puede venir de la configuración
--notification-tokenToken enviado como X-A2A-Notification-Token
--auth-schemeEsquema de autenticación del callback, como bearer o basic
--auth-credentialsCredenciales de autenticación del callback

Las URL de callback se validan antes del almacenamiento y del despacho. El validador predeterminado rechaza URL que no sean HTTP(S), nombres localhost y direcciones IP literales privadas/locales.

iac-code a2a-client push-config-get

iac-code a2a-client --config a2a-client.yml push-config-get \
--task-id task-123 \
--config-id webhook-1

iac-code a2a-client push-config-list

iac-code a2a-client --config a2a-client.yml push-config-list \
--task-id task-123 \
--page-size 10

iac-code a2a-client push-config-delete

iac-code a2a-client --config a2a-client.yml push-config-delete \
--task-id task-123 \
--config-id webhook-1

iac-code a2a-client extended-card

Obtiene la Agent Card extendida autenticada.

iac-code a2a-client --config a2a-client.yml extended-card \
--token "$A2A_TOKEN"

La Agent Card pública anuncia capabilities.extendedAgentCard=true. La tarjeta extendida agrega detalles autenticados del runtime, incluidos metadatos de capacidades de gestión de tareas y configuración push.

iac-code a2a-route-preview

Previsualiza cómo a2a-client call resuelve rutas configuradas cuando --url se omite.

iac-code a2a-route-preview \
--route "template=http://127.0.0.1:41242/;skills=iac_generation;tags=ros,template" \
--skill iac_generation \
--prompt "Create a ROS VPC template"
OpciónDescripción
--routeEspecificación de ruta repetible en formato name=url;skills=a,b;tags=x,y
--nameNombre de ruta que resolver
--skillID de skill que resolver
--promptTexto de prompt usado para coincidencia de nombre/etiqueta
--route-state-dir, --persistence-dirDirectorio usado para persistir instantáneas de rutas
--save-routesGuardar las rutas proporcionadas en el directorio de estado de rutas

Guardar instantáneas de rutas:

iac-code a2a-route-preview \
--route "ros=http://127.0.0.1:41242/;skills=iac_generation;tags=ros" \
--route-state-dir ~/.iac-code/a2a \
--save-routes

Llamar mediante rutas:

iac-code a2a-client call \
--route "ros=http://127.0.0.1:41242/;skills=iac_generation;tags=ros" \
--route-name ros \
--prompt "Create a ROS VPC template." \
--cwd "$PWD"

Variables de entorno

VariableDescripción
IACCODE_A2A_HTTP_TOKENValor predeterminado del token Bearer de servidor/cliente
IACCODE_A2A_BASIC_USERNAMEValor predeterminado del nombre de usuario de Basic auth de servidor/cliente
IACCODE_A2A_BASIC_PASSWORDValor predeterminado de la contraseña de Basic auth de servidor/cliente
IACCODE_A2A_API_KEYValor predeterminado de clave de API de servidor/cliente
IACCODE_A2A_API_KEY_HEADERNombre predeterminado del encabezado de clave de API
IACCODE_A2A_ALLOWED_CWDSLista separada por rutas del sistema operativo de raíces de espacio de trabajo permitidas para metadatos de mensajes entrantes y URL de archivos
IACCODE_A2A_TEXT_MIME_TYPESTipos MIME extra similares a texto separados por comas o punto y coma
IACCODE_A2A_MULTIMODAL_MIME_TYPESTipos MIME multimodales extra separados por comas o punto y coma
IAC_CODE_A2A_PUSH_KEYRINGKeyring de secretos push cifrados gestionado por el entorno