Zum Hauptinhalt springen

Referenz zur Host-Integration des IaC Code Skills

Diese Referenz richtet sich an Entwickler von Agenten und Skill-Verteilungssystemen. Endbenutzer lesen IaC Code Skill installieren und verwenden.

Integrationsmodell und Konfiguration

Das Paket enthaelt SKILL.md und die nur auf der Standardbibliothek basierende Bridge scripts/iac_code.py. Fuehren Sie sie mit CPython 3.8 bis 3.14 aus. stdout ist das stabile JSON-Ergebnis, stderr enthaelt Diagnose und Fortschritt. Bewahren Sie jobId, contextId, cursor und Korrelationsfelder auf. Bei Fehlern darf nicht auf eine andere Runtime oder direkte Cloud-API-Aufrufe ausgewichen werden.

Ein Verteiler kann neben SKILL.md diese config.json ablegen:

{
"channel": "codex",
"pipelineName": "selling_solution_first",
"permissionWaitPolicy": {
"residentTimeoutSeconds": null,
"subPipelineTimeoutSeconds": null,
"timeoutGraceSeconds": 30
}
}

Die Bridge setzt skill/ vor channel. Standard fuer pipelineName ist selling_solution_first; selling dient nur einem explizit benoetigten Legacy-Ablauf. null bedeutet unbegrenztes Warten. Unbekannte oder ungueltige Werte werden abgewiesen. Diese Installationsrichtlinie darf nicht aus Benutzerwuenschen abgeleitet, ausgegeben oder waehrend einer Aufgabe veraendert werden.

Job starten und verfolgen

Schreiben Sie die vollstaendige Anfrage in eine UTF-8-Datei im Workspace und verwenden Sie einen absoluten Pfad:

python3 scripts/iac_code.py start --mode normal --cwd <workspace> --prompt-file <prompt-file> --language <language> --follow

Verwenden Sie standardmaessig normal, pipeline nur fuer Vergleich, Bestaetigung und Bereitstellung. Moegliche Sprachen sind en, zh, es, fr, de, ja, pt und auto; behalten Sie danach preferredLanguage bei. llm_not_configured stoppt vor der Job-Erstellung, cloud_credentials_not_configured meldet fehlende Zugangsdaten in Pipeline.

--follow kehrt an der naechsten Darstellungs- oder Interaktionsgrenze, bei turn_completed oder einem terminalen Pipeline-Status zurueck. Bei boundaryReached: true zeigen Sie alle userUpdates und folgen demselben Job:

python3 scripts/iac_code.py follow --job-id <job-id> --cursor <cursor> --wait-seconds 60

boundaryReached ist kein Abschluss. presentationRequired verlangt eine sichtbare Ausgabe vor dem naechsten Aufruf. Im Normalmodus sind finalText und artifacts bei turn_completed massgeblich; bei einer terminalen Pipeline pipelineResult und artifacts. Melden Sie Fehler der Bereinigung. Nur fuer Diagnose oder Wiederaufnahme:

python3 scripts/iac_code.py poll --job-id <job-id> --cursor <cursor> --wait-seconds 5

Bei state: input-required ohne inputRequired melden Sie den letzten Text oder Fehler und lassen den Job unveraendert.

Benutzereingaben behandeln

Jedes inputRequired ist eine harte Interaktionsgrenze. Zeigen Sie es in der nativen Host-Oberflaeche und warten Sie auf eine ausdrueckliche Antwort. Leiten Sie keine Standardantwort ab. Bewahren Sie kind, inputId, requestTaskId, contextId und gegebenenfalls toolUseId auf.

kindAnzuzeigende InformationenAntwort
permissionZweck, Wirkung, Ziel, Nur-Lesen, Bereitstellungs- und Sicherheitszusammenfassung, Aktionenallow_once / deny
ask_user_questionFrage, Optionen und erlaubter FreitextAntwort
candidate_selectionAlle Zusammenfassungen, Mermaid-Diagramme, Monatssumme und PositionenID oder Nummer
deployment_confirmationLoesung, URL, Preis, effektive Werte, Ueberschreibungen, Preview, Aktionenconfirm / adjust / reselect / cancel

Schreiben Sie die korrelierte Antwort in eine neue UTF-8-JSON-Datei und setzen Sie denselben Job fort:

python3 scripts/iac_code.py respond --job-id <job-id> --input-file <answer-file> --follow
{"kind":"permission","requestTaskId":"<requestTaskId>","contextId":"<contextId>","inputId":"<inputId>","toolUseId":"<toolUseId>","decision":"allow_once"}
{"kind":"ask_user_question","requestTaskId":"<requestTaskId>","contextId":"<contextId>","inputId":"<inputId>","answer":"<answer>"}
{"kind":"candidate_selection","requestTaskId":"<requestTaskId>","contextId":"<contextId>","inputId":"<inputId>","answer":"<candidate ID or index>"}
{"kind":"deployment_confirmation","requestTaskId":"<requestTaskId>","contextId":"<contextId>","inputId":"<inputId>","action":"<confirm|adjust|reselect|cancel>","parameterOverrides":{"<parameter>":"<value>"}}

Lassen Sie parameterOverrides ohne Anpassung weg. Leiten Sie die Bestaetigung nicht aus dem urspruenglichen Wunsch oder einer Host-Freigabe ab.

Fortsetzen, abbrechen und wiederaufnehmen

Nach einem normalen Turn oder dem Wechsel einer abgeschlossenen Pipeline in den Normalmodus setzen Sie den Job fort:

python3 scripts/iac_code.py continue --job-id <job-id> --prompt-file <prompt-file> --follow

Behalten Sie jobId und contextId; eine neue taskId ist normal. So koennen auch Freigabewartezeiten und Host-Unterbrechungen wiederaufgenommen werden. Vollstaendiger Abbruch:

python3 scripts/iac_code.py cancel --job-id <job-id>

Dies unterscheidet sich von der Ablehnung einer einzelnen Freigabe.

Fehler und Runtime

Ein Fehler vor Job-Erstellung ist fuer den Aufruf massgeblich. Zeigen Sie bei incompatible_host die Kompatibilitaetsdaten und stoppen Sie, ohne pip, eine andere Runtime oder direkte APIs zu verwenden. Die Runtime liegt unter <IAC_CODE_CONFIG_DIR or ~/.iac-code>/skill-runtime/<runtime-tag>/<target>/. Aufbau und Integritaet werden durch skill-runtime/skill-package-contract.json und das Release-Manifest festgelegt. Bereinigung erfolgt nur auf ausdruecklichen Wunsch; aktuelle und aktive Pakete sind geschuetzt.

Die Runtime verwendet einen zufaelligen 127.0.0.1-Port und einen prozessspezifischen Bearer token. Legen Sie token, lokalen Zustand, Zugangsdaten, Umgebungswerte und rohe Tool-Ein-/Ausgaben nicht offen.

Weitere Dokumentation