Zum Hauptinhalt springen

A2A-Befehlsreferenz

Diese Seite dokumentiert jeden A2A-bezogenen iac-code-Befehl. Verwenden Sie sie, wenn Sie exakte Optionsnamen, gaengige Befehlsmuster und die betriebliche Bedeutung jedes Flags benoetigen.

Befehlsuebersicht

BefehlZweck
iac-code a2aiac-code als A2A-Server ausfuehren
iac-code a2a-client callEine entfernte Agent Card entdecken und einen Prompt senden
iac-code a2a-client discoverEine Agent Card abrufen und optional verifizieren
iac-code a2a-client task-getEinen Task per ID abrufen
iac-code a2a-client task-listTasks mit Filtern und Paginierung auflisten
iac-code a2a-client task-cancelEinen aktiven Task abbrechen
iac-code a2a-client task-subscribeEinen aktiven Task-Event-Stream abonnieren
iac-code a2a-client push-config-createEine Task-Push-Notification-Config erstellen
iac-code a2a-client push-config-getEine Task-Push-Notification-Config abrufen
iac-code a2a-client push-config-listTask-Push-Notification-Configs auflisten
iac-code a2a-client push-config-deleteEine Task-Push-Notification-Config loeschen
iac-code a2a-client extended-cardDie authentifizierte erweiterte Agent Card abrufen
iac-code a2a-route-previewLokale Routenauswahl fuer a2a-client call voranzeigen

Alle HTTP-Clientbefehle akzeptieren dieselben Authentifizierungsoptionen:

OptionBeschreibung
--tokenBearer Token, gesendet als Authorization: Bearer <token>
--basic-usernameBenutzername fuer Basic Auth
--basic-passwordPasswort fuer Basic Auth
--api-keyAPI-Key-Wert
--api-key-headerAPI-Key-Headername; standardmaessig X-API-Key

A2A-Client-Konfiguration

Alle a2a-client-Unterbefehle akzeptieren eine YAML-Konfigurationsdatei auf Gruppenebene:

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

CLI-Optionen ueberschreiben Konfigurationswerte. Verwenden Sie Konfiguration fuer stabile Verbindung, Auth, Verifikation, Routing und wiederholte Task- oder Push-Einstellungen; behalten Sie einmaligen Prompt-Text auf der Befehlszeile.

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

Fuehren Sie iac-code als A2A-Server aus.

iac-code a2a

Standardmaessig bindet der Server an 127.0.0.1:41242 und stellt JSON-RPC ueber HTTP bereit. Port 41242 ist der iac-code-Standard; er ist kein registrierter A2A-Port.

Grundlegende Serveroptionen

OptionStandardBeschreibung
--configleerYAML-Konfigurationsdatei mit A2A-Serveroptionen
--host127.0.0.1HTTP-Serverhost
--port41242HTTP-Serverport
--transporthttpServer-Transport: http, stdio, unix, websocket, grpc, grpc-jsonrpc oder redis-streams
--thinking-exposuretool-traceLegt einen A2A-Thinking-Signaltyp offen; fuer mehrere Werte wiederholen. Werte: raw-thinking, tool-trace
--debug, -dfalseDebug-Logging aktivieren

Beispiel:

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

YAML-Konfiguration

Verwenden Sie --config fuer Authentifizierung, Speicherung, Signierung, transportspezifische Einstellungen, Push-Zustellung und andere Deployment-Details. Schluessel koennen Bindestriche oder Unterstriche verwenden. Die gaengigen CLI-Flags --host, --port und --transport ueberschreiben Werte aus der Konfigurationsdatei.

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

Fuehren Sie ihn aus mit:

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

HTTP-Authentifizierung

Authentifizierung ist optional. Konfigurieren Sie Serverauthentifizierung in YAML oder mit Umgebungsvariablen. Wenn keine Auth-Einstellung konfiguriert ist, sind Anfragen unauthentifiziert. Wenn ein oder mehrere Schemas konfiguriert sind, kann eine Anfrage jedes konfigurierte Schema erfuellen.

KonfigurationsschluesselUmgebungsvariableBeschreibung
tokenIACCODE_A2A_HTTP_TOKENBearer Token
basic-usernameIACCODE_A2A_BASIC_USERNAMEBenutzername fuer Basic Auth
basic-passwordIACCODE_A2A_BASIC_PASSWORDPasswort fuer Basic Auth
api-keyIACCODE_A2A_API_KEYAPI-Key-Wert
api-key-headerIACCODE_A2A_API_KEY_HEADERAPI-Key-Headername

Bearer Token:

token: local-dev-token

Basic Auth:

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

API Key:

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

Persistenz und Artifacts

KonfigurationsschluesselStandardBeschreibung
persistence-dir~/.iac-code/a2aLokale JSON-Metadaten fuer Tasks, Kontexte, Routen und Push-Configs
artifact-dir<persistence-dir>/artifactsLokaler Artifact-Payload-Speicher

Persistenz spiegelt Task- und Kontext-Snapshots fuer Wiederherstellungsmetadaten. Sie startet einen laufenden asyncio-Task nach einem Prozessabsturz nicht neu.

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

Agent-Card-Signierung

KonfigurationsschluesselBeschreibung
signing-secretHMAC-Secret zum Signieren der oeffentlichen Agent Card

Der Server gibt A2A-SDK-AgentCardSignature-JWS-Felder aus. Der symmetrische Modus verwendet HS256.

signing-secret: local-card-signing-secret

Push-Notification-Zustellung

KonfigurationsschluesselStandardBeschreibung
push-notificationsfalseA2A-Task-Push-Notification-Config-Methoden und Terminalzustands-Zustellung aktivieren
push-queuelocal-filePush-Queue-Backend: local-file oder redis-streams
push-redis-urlleerRedis-URL fuer die Redis-gestuetzte Push-Queue
push-streamiac-code:a2a:pushRedis Stream fuer Push-Jobs
push-retry-keyiac-code:a2a:push:retryRedis Sorted Set fuer verzoegerte Wiederholungen
push-dead-streamiac-code:a2a:push:deadRedis Stream fuer Dead-Letter-Jobs
push-consumer-groupiac-code-pushRedis Consumer Group fuer Push-Worker
push-consumer-nameleerRedis Consumer-Name fuer diesen Worker
push-lease-timeout-ms300000Redis Pending-Lease-Timeout

Lokale Datei-Queue:

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

Redis-Streams-Queue:

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

Redis-gestuetzte Push-Zustellung erfordert das Extra a2a-redis.

Transportoptionen

TransportBefehlHinweise
HTTP JSON-RPC und RESTiac-code a2a --transport httpStandard. Bewirbt JSONRPC- und HTTP+JSON-Schnittstellen.
stdioiac-code a2a --transport stdioExperimentelle benutzerdefinierte JSON-RPC-Frames ueber Standardeingabe/-ausgabe.
Unix socketiac-code a2a --config a2a-server.yml --transport unixErfordert socket-path in der Konfiguration.
WebSocketiac-code a2a --config a2a-server.yml --transport websocketVerwendet ws-path aus der Konfiguration, standardmaessig /a2a.
gRPCiac-code a2a --config a2a-server.yml --transport grpcVerwendet grpc-host und grpc-port aus der Konfiguration.
gRPC JSON-RPCiac-code a2a --config a2a-server.yml --transport grpc-jsonrpcBenutzerdefinierter JSON-RPC Envelope ueber gRPC.
Redis Streamsiac-code a2a --config a2a-server.yml --transport redis-streamsErfordert redis-url in der Konfiguration.

Redis-Streams-Transportoptionen:

KonfigurationsschluesselStandardBeschreibung
redis-urlleerRedis-Verbindungs-URL; erforderlich fuer --transport redis-streams
request-streamiac-code:a2a:requestsName des Request Streams
response-streamiac-code:a2a:responsesName des Response Streams
consumer-groupiac-codeConsumer Group des Request Streams

Thinking-Offenlegung

KonfigurationsschluesselStandardBeschreibung
thinking-exposuretool-traceNicht zur Antwort gehoerende Laufzeitsignaltypen, die ueber A2A metadata.iac_code offengelegt werden. Verwenden Sie eine YAML-Liste, eine kommaseparierte Zeichenkette oder wiederholte --thinking-exposure-Flags. Unterstuetzte Werte sind tool-trace und raw-thinking.

tool-trace behaelt die vorhandenen Metadaten fuer Tool-Fortschritt, Berechtigungen und Ergebnisse bei. raw-thinking gibt Provider-Reasoning-Chunks als metadata.iac_code.thinking-Updates mit type: raw_thinking und text aus. iac-code erzeugt derzeit keine separaten thought-summary- oder progress-summary-Events, daher sind diese keine gueltigen Offenlegungstypen.

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

Berechtigungsverhalten

KonfigurationsschluesselStandardBeschreibung
auto-approve-permissionsfalseTool-Berechtigungsanfragen, die waehrend A2A-Turns entstehen, automatisch genehmigen

Ohne auto-approve-permissions: true lehnt der A2A-Modus Berechtigungsabfragen ab und gibt Berechtigungsmetadaten aus. Verwenden Sie es nur fuer vertrauenswuerdige Automatisierungsumgebungen.

iac-code a2a-client call

Entdeckt eine Agent Card, waehlt den beworbenen Endpunkt und sendet einen Prompt.

iac-code a2a-client --config a2a-client.yml call \
--prompt "Create a ROS VPC template with two vSwitches." \
--cwd "$PWD"
OptionStandardBeschreibung
--urlleerA2A-Agent-Basis-URL oder JSON-RPC-Endpunkt-URL; kann aus der Konfiguration kommen
--routewiederholbarRoute-Spec, die verwendet wird, wenn --url ausgelassen ist
--route-nameleerAuszuwaehlende benannte Route
--prompt, -perforderlichPrompt-Text
--cwd.Workspace-Pfad, gesendet als message.metadata.iac_code.cwd
--context-idleerVorhandene A2A-Kontext-ID fuer eine Follow-up-Nachricht
--verify-card-secret, --signing-secretleerHMAC-Secret fuer Agent-Card-Verifikation
--verify-card-jwks-urlleerEntfernte JWKS-URL fuer Agent-Card-Verifikation
--require-card-signature, --require-signaturefalseUnsignierte oder ungueltige Agent Cards ablehnen
--timeout30.0Aufruf-Timeout in Sekunden
--streamfalseSendStreamingMessage verwenden und Stream-Events ausgeben

Follow-up im selben Kontext:

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

Signierte Agent Card verlangen:

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

Mit einer entfernten JWKS-URL verifizieren:

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

iac-code a2a-client discover

Eine entfernte Agent Card abrufen und ausgeben.

iac-code a2a-client --config a2a-client.yml discover
OptionBeschreibung
--urlA2A-Agent-Basis-URL; kann aus der Konfiguration kommen
--verify-card-secret, --signing-secretHMAC-Secret fuer Verifikation
--verify-card-jwks-urlEntfernte JWKS-URL fuer Verifikation
--require-card-signature, --require-signatureEine gueltige Signatur verlangen

Authentifizierte Discovery:

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

Task-Befehle

Task-Befehle rufen JSON-RPC-Task-Methoden direkt auf. Sie sind fuer Betriebswerkzeuge, Dashboards und Debugging nuetzlich.

iac-code a2a-client task-get

iac-code a2a-client --config a2a-client.yml task-get \
--task-id task-123 \
--history-length 20
OptionBeschreibung
--urlA2A-JSON-RPC-Endpunkt-URL; kann aus der Konfiguration kommen
--task-idTask-ID; kann aus der Konfiguration kommen
--history-lengthMaximale Anzahl zurueckzugebender Task-Historieneintraege

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
OptionStandardBeschreibung
--urlleerA2A-JSON-RPC-Endpunkt-URL; kann aus der Konfiguration kommen
--context-idleerNach Kontext-ID filtern
--statusleerNach Task-Zustand filtern
--page-sizeleerMaximale Anzahl zurueckzugebender Tasks
--page-tokenleerPaginierungstoken
--include-artifactsfalseTask-Artifacts in die Antwort einschliessen
--outputtabletable oder json

JSON-Ausgabe:

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

Der Abbruch ist kooperativ. Ein abgeschlossener, fehlgeschlagener, abgebrochener oder input-required Task gibt den standardmaessigen A2A-Task-not-cancelable-Fehler zurueck.

iac-code a2a-client task-subscribe

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

Der Befehl streamt Events fuer aktive Tasks. Fuer einen neuen Turn bevorzugen Sie a2a-client call --stream; dies startet den Task und streamt Aktualisierungen in einem Befehl.

Push-Notification-Config-Befehle

Diese Befehle erfordern einen Server, der mit push-notifications: true gestartet wurde. Sie verwalten standardmaessige A2A-Task-Push-Notification-Configs.

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"
OptionBeschreibung
--urlA2A-JSON-RPC-Endpunkt-URL; kann aus der Konfiguration kommen
--task-idTask-ID; kann aus der Konfiguration kommen
--config-idPush-Config-ID; kann aus der Konfiguration kommen
--callback-urlHTTP(S)-Callback-URL; kann aus der Konfiguration kommen
--notification-tokenToken, gesendet als X-A2A-Notification-Token
--auth-schemeCallback-Auth-Schema, zum Beispiel bearer oder basic
--auth-credentialsCallback-Auth-Zugangsdaten

Callback-URLs werden vor Speicherung und Versand validiert. Der Standardvalidator lehnt Nicht-HTTP(S)-URLs, localhost-Namen und literale private/lokale IP-Adressen ab.

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

Die authentifizierte erweiterte Agent Card abrufen.

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

Die oeffentliche Agent Card bewirbt capabilities.extendedAgentCard=true. Die erweiterte Karte fuegt authentifizierte Laufzeitdetails hinzu, einschliesslich Task-Verwaltung und Push-Konfigurationsfaehigkeitsmetadaten.

iac-code a2a-route-preview

Vorschau, wie a2a-client call konfigurierte Routen aufloest, wenn --url ausgelassen ist.

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"
OptionBeschreibung
--routeWiederholbare Route-Spec im Format name=url;skills=a,b;tags=x,y
--nameAufzuloesender Routenname
--skillAufzuloesende Skill-ID
--promptPrompt-Text fuer Name-/Tag-Abgleich
--route-state-dir, --persistence-dirVerzeichnis zum Persistieren von Routen-Snapshots
--save-routesAngegebene Routen im Routen-Zustandsverzeichnis speichern

Routen-Snapshots speichern:

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

Aufruf ueber Routen:

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"

Umgebungsvariablen

VariableBeschreibung
IACCODE_A2A_HTTP_TOKENStandard fuer Server-/Client-Bearer-Token
IACCODE_A2A_BASIC_USERNAMEStandard fuer Server-/Client-Basic-Auth-Benutzername
IACCODE_A2A_BASIC_PASSWORDStandard fuer Server-/Client-Basic-Auth-Passwort
IACCODE_A2A_API_KEYStandard fuer Server-/Client-API-Key
IACCODE_A2A_API_KEY_HEADERStandard fuer API-Key-Headername
IACCODE_A2A_ALLOWED_CWDSOS-pfadgetrennte Liste erlaubter Workspace-Roots fuer eingehende Nachrichtenmetadaten und File-URLs
IACCODE_A2A_TEXT_MIME_TYPESZusaetzliche komma- oder semikolongetrennte textartige MIME-Typen
IACCODE_A2A_MULTIMODAL_MIME_TYPESZusaetzliche komma- oder semikolongetrennte multimodale MIME-Typen
IAC_CODE_A2A_PUSH_KEYRINGUmgebungsgesteuerter verschluesselter Push-Secret-Keyring