logo
  •   Produkt
  • euro Preise
  • description Dokumentation
  • file_downloadDownloads
  • supportSupport
  • chat Blog
  • person_add Registrieren
  • fingerprint Login
  • language Language

Admin Companion - Dokumentation

Dies ist die aktuellste version der Dokumentation für Client-Versionen 6.0+

Klicken Sie auf die Versionsnummern, um zur Dokumentation älterer Versionen zu gelangen.: 5.4 5.0 - 5.3 4.0 3.1 - 3.2 3.0 2.3 2.0 - 2.2 1.x

Inhalt

  • Admin Companion Client
    • Netzwerk-Flow
    • Schnellstart
    • ai - Interaktiv
      • Sicherheitsschicht (ai)
      • Verwendung des Clients (ai)
      • Kommandozeilenparameter (ai)
    • ac-ops - Automatisierung
    • Vom Admin-Companion-Client verwendete Dateien
  • Admin Companion Gateway
  • Web-Konsole
    • Dashboard
    • API-Keys
    • Requests
    • Mein Profil
    • Konto / Saldo
    • Mein Abo

Admin Companion Client - Dokumentation (ai and ac-ops)

Netzwerk-Flow

Der Admin-Companion-Client muss in der Lage sein, POST-Anfragen an diese beiden Admin-Companion-API-Endpunkte zu senden und Antworten von ihnen zu empfangen:

  • https://api.admin-companion.ai:443/dialogue/*
  • https://api.admin-companion.ai:443/search/*

Stellen Sie sicher, dass Ihre Firewalls diesen Datenverkehr nicht blockieren.

Vereinfachter Netzwerkablauf:


Schnellstart

  1. Registrieren Sie ein Admin-Companion-Konto.
  2. Erstellen Sie einen API-Key auf der API-Keys-Seite in der Web-Konsole (Sie müssen sich anmelden, um dorthin zu gelangen).
  3. Installieren Sie die Client-Software auf Ihrem System. Folgen Sie dazu den Anweisungen auf der Download-Seite für Ihr Betriebssystem.
  4. Konfigurieren Sie den Client mit dem API-Key. Es gibt drei Stellen, an denen Sie den API-Key setzen können. Wählen Sie eine der folgenden Optionen:
    • Umgebungsvariable (benutzerspezifisch)
      Setzen Sie eine Umgebungsvariable ADMIN_COMPANION_KEY auf den Wert des API-Keys:
      export ADMIN_COMPANION_KEY="<Your API key>"
      Damit dies dauerhaft ist, fügen Sie den Befehl in Ihre Shell-Konfigurationsdatei ein, zum Beispiel $HOME/.bashrc für bash. Verwenden Sie die Resource-Datei Ihrer eigenen Shell.
      Denken Sie daran, Ihre Shell neu zu starten oder source $HOME/.bashrc nach dem Ändern der Datei auszuführen.
      Sie können prüfen, ob die Umgebungsvariable gesetzt ist, indem Sie echo $ADMIN_COMPANION_KEY in Ihrer Shell ausführen. Es sollte den Wert des API-Keys zurückgeben.
    • Datei $HOME/.admin-companion/api-key (benutzerspezifisch)
      Fügen Sie eine Zeile im Format
      ADMIN_COMPANION_KEY="<Your API key>"
      in die Datei $HOME/.admin-companion/api-key
      Sie können zusätzliche Zeilen hinzufügen, die mit einem Rautenzeichen (#) beginnen. Diese Zeilen werden von der Client-Software ignoriert.
      Stellen Sie sicher, dass die Datei nur von Ihnen lesbar ist, zum Beispiel mit chmod 600 $HOME/.admin-companion/api-key.
    • Datei /etc/admin-companion/api-key (systemweit)
      Achtung: Diese Option kann ein Sicherheitsrisiko sein, da jeder Benutzer auf dem System den API-Key sehen kann.
      Fügen Sie eine Zeile im Format
      ADMIN_COMPANION_KEY="<Your API key>"
      in die Datei /etc/admin-companion/api-key
      Sie können zusätzliche Zeilen hinzufügen, die mit einem Rautenzeichen (#) beginnen. Diese Zeilen werden von der Client-Software ignoriert.
      Die Datei muss für alle lesbar sein, sollte aber nur für root schreibbar sein, zum Beispiel mit:
      chown root:root /etc/admin-companion/api-key
      chmod 644 /etc/admin-companion/api-key

  5. Rufen Sie zum Beispiel auf:
    ai "Are you there?"
    um zu prüfen, dass Admin Companion antwortet.
    Versuchen Sie, Ihre Anfrage in Ihrer eigenen Sprache zu stellen. Es funktioniert genauso:
    ai "¿Estás ahí?"
    ai "Est-ce que tu es là?"
    ai "Bist du da?"
  6. Wenn es nicht korrekt funktioniert, prüfen Sie die Admin-Companion-Logdatei unter $HOME/.admin-companion/admin-companion.log für Details.

Module

  • terminal ai - Interaktiv
  • settings_suggest ac-ops - Automatisierung
  • category Admin Companion Gateway

ai: Interaktiver Co-Administrator mit Human-in-the-Loop by Design

Sicherheitsschicht

Die Client-Software verfügt über eine integrierte Sicherheitsschicht, die sicherstellt, dass nur vom Benutzer freigegebene Befehle ausgeführt werden können.
Die Künstliche Intelligenz interagiert niemals direkt mit dem System. Sie kann nur mit der Sicherheitsschicht der Client-Software kommunizieren. Diese Sicherheitsschicht stellt die Zustimmung des Benutzers vor jeder Befehlsausführung sicher.


Verwendung des Clients

Sie können den Admin-Companion-Client mit dem Befehl ai aufrufen.

Verwendung: ai [options] | [max request token size] [model] [natural language request]
Sie können entweder eine Option oder eine Anfrage in natürlicher Sprache angeben, aber niemals beides gleichzeitig.

[options]: Siehe Kommandozeilenparameter unten

[max request token size]: -s <number of tokens>  oder  --size <number of tokens>:

Admin Companion arbeitet mit der „max request token size“ (auch Kontextfenster genannt), die in Tokens gezählt wird (ein Token entspricht ca. 0,75 Wörtern).
Der gemerkte Dialog kann nicht länger sein als die „max request token size“. Wenn er länger wird, „verblassen“ ältere Nachrichten im Dialog aus dem Speicher.
Die Standard-„max request token size“ ist in der Konfigurationsdatei festgelegt.
Mit diesem Parameter können Sie optional für diese einzelne Anfrage eine andere „max request token size“ setzen.
Sie möchten möglicherweise eine kleinere „max request token size“ wählen, um Tokens zu sparen (die Abrechnung basiert auf der Anzahl der Eingabe-Tokens und Completion-Tokens pro Anfrage).
Sie möchten möglicherweise eine größere „max request token size“ wählen, wenn Sie vorübergehend mehr Informationen verarbeiten müssen oder einen längeren Dialogverlauf behalten möchten.

[model]: -m <model-name>  oder  --model <model-name>:

Sie können auswählen, welches Modell Ihre Anfrage beantwortet. Die Liste der verfügbaren Modelle wird in der Kopfzeile jeder Antwort angezeigt.
Wenn Sie kein Modell angeben, wird das Standardmodell des Backends verwendet. In der Kopfzeile der Antwort sehen Sie, welches Modell verwendet wurde.
Beispiel: ai -m gpt-5-mini "Are you there?"

[natural language request]:

Um Admin Companion zu instruieren, haben Sie zwei Möglichkeiten für die Anfrage in natürlicher Sprache:
  1. Geben Sie Ihre Anweisung als Klartext in der Kommandozeile ein
    • Der sauberste Weg ist, Anführungszeichen um Ihre Anweisung zu setzen:
      ai "I'd like to create a backup script with 10 rotating files for the content of the path /mnt/data"
      So können Sie alle Zeichen in Ihrer Anweisung ohne Probleme verwenden.
    • Wenn Sie die Anfrage nicht in Anführungszeichen setzen, beachten Sie bitte, dass die Shell Ihre Eingabe als Parameter für den Befehl interpretiert.
      Das bedeutet zum Beispiel:
      • Sie müssen Klammern escapen:
        Nicht: ai find and list the configuration files of the application xyz (you find the application in /usr/xyz)
        Sondern: ai find and list the configuration files of the application xyz \(you find the application in /usr/xyz\)

      • Beachten Sie, dass Anführungszeichen von der Shell als Anführungszeichen interpretiert werden und daher wieder geschlossen werden müssen:
        Nicht: ai I'd like to create a backup script with 10 rotating files for the content of the path /mnt/data
        Sondern: ai I would like to create a backup script with 10 rotating files for the content of the path /mnt/data

        ...oder schließen Sie das Anführungszeichen einfach am Ende der Zeile. Nicht schön, aber funktioniert:
        ai I'd like to create a backup script with 10 rotating files for the content of the path /mnt/data'

        ...oder setzen Sie einfach alles in Anführungszeichen:
        ai "I'd like to create a backup script with 10 rotating files for the content of the path /mnt/data"

      • Beachten Sie, dass * und ? von der Shell durch die jeweils gefilterten Inhalte des aktuellen Verzeichnisses ersetzt werden.

  2. Starten Sie ai ohne Parameter und geben Sie Ihre Anweisung interaktiv ein:
    • In diesem Fall fordert der Admin-Companion-Client Sie auf, Ihre Anweisungen einzugeben; diese können mehrzeilig sein (drücken Sie einfach „Enter“, um zur nächsten Zeile zu wechseln). Hier können Sie sogar Dateien als Teil der Anweisungen hineinkopieren. Wenn Sie Ihre Anweisung beenden möchten, senden Sie einfach ein EOF (End-Of-File), indem Sie „Strg-D“ am Anfang einer Zeile drücken.
      $ ai
      Edit your input below. Submit with Alt+Enter:
      Ich möchte ein Backup-Skript erstellen.
      Ich möchte sichern: /mnt
      Bitte packe die Dateien als tar.gz
      Das Tarball soll nach /backup geschrieben werden
      <Alt-Enter>

Beispiele:

  • ai "Are you there?"
  • ai -s 100000 "Are you there?"
    Admin Companion arbeitet mit der „max request token size“, die in Tokens gezählt wird (ein Token entspricht ca. 0,75 Wörtern).
    Der gemerkte Dialog kann nicht länger sein als die „max request token size“. Wenn er länger wird, „verblassen“ ältere Nachrichten im Dialog aus dem Speicher.
    Die Standard-„max request token size“ ist in der Konfigurationsdatei festgelegt.
    Mit -s können Sie für diese einzelne Anfrage eine andere „max request token size“ setzen.
    Sie möchten möglicherweise eine kleinere „max request token size“ wählen, um Tokens zu sparen (die Abrechnung basiert auf der Anzahl der Ein- und Ausgabe-Tokens pro Anfrage).
    Sie möchten möglicherweise eine größere „max request token size“ wählen, wenn Sie vorübergehend viele Informationen verarbeiten müssen oder einen längeren Dialogverlauf behalten möchten.
  • ai -v
  • ai -t "We analyze an issue with our web server not reacting to requests on port 443."
    Damit wird ein Thema gesetzt, das gespeichert wird und nicht aus dem Speicher „verblasst“, bis Sie es mit dem Parameter -rt löschen.
  • ai
    Damit können Sie die Anfrage interaktiv eingeben.


Kommandozeilenparameter

  • -h or --help
    Hilfetext anzeigen
  • -l or --list
    Gespeicherten Dialogverlauf anzeigen
  • -c or --clear-messages
    Dialogverlauf löschen. Das ist sinnvoll, um ein neues Thema zu beginnen und Admin Companion die vorherige Konversation vergessen zu lassen. Außerdem reduziert es die Anzahl der Tokens und damit die Kosten der Anfrage.
  • -b [<background>] / --set-background [<background>]
    Damit setzen Sie Hintergrundinformationen über Ihr System für Admin Companion.
    Admin Companion weiß (fast) alles über Linux, kennt jedoch Ihr konkretes System oder Setup nicht. Wenn Admin Companion bestimmte Informationen über Ihr System oder Setup kennen soll, können Sie diese mit dieser Option als Hintergrundinformation setzen.
    Die Informationen werden in jede Anfrage eingebunden, die Sie an Admin Companion senden.
    Sie könnten zum Beispiel angeben, ob Sie apache2 oder nftables statt nginx oder iptables verwenden. Oder wenn Sie für bestimmte Logdateien nicht standardmäßige Verzeichnisse nutzen. Dann muss Admin Companion das System nicht erst untersuchen, wenn Sie in diesem Bereich arbeiten.
    Hinweis: Wenn Sie diese Option verwenden, muss sie die letzte Option in der Kommandozeile sein. Der Hintergrund kann in der Kommandozeile angegeben werden oder Sie lassen ihn leer; dann werden Sie aufgefordert, die Eingabe interaktiv zu machen. Nehmen Sie die <>-Klammern nicht in den Hintergrund auf.
  • -rb or --remove-background
    Entfernt die Hintergrundinformationen dauerhaft, die zuvor mit -b oder --set-background gesetzt wurden.
  • -sb or --show-background
    Zeigt die aktuell gesetzten Hintergrundinformationen an.
  • -t [<topic>] / --set-topic [<topic>]
    Setzt ein Thema für Admin Companion.
    Das Thema „verblasst“ nicht aus dem Dialog, sondern bleibt im Speicher von Admin Companion. So bleibt bei längeren Aufgaben der Fokus auf diesem Thema.
    Hinweis: Wenn Sie diese Option verwenden, muss sie die letzte Option in der Kommandozeile sein. Das Thema kann in der Kommandozeile angegeben werden oder Sie lassen es leer; dann werden Sie aufgefordert, die Eingabe interaktiv zu machen. Nehmen Sie die <>-Klammern nicht in das Thema auf.
  • -rt or --remove-topic
    Entfernt das allgemeine Thema, das zuvor mit -t oder --set-topic gesetzt wurde.
  • -st or --show-topic
    Zeigt das aktuell gesetzte Thema an.
  • -rm or --remove-memory
    Entfernt alle Informationen aus dem Langzeitspeicher.
  • -sm or --show-memory
    Zeigt den Inhalt des aktuellen Langzeitspeichers an.
  • -er or --enable-use-release
    Aktiviert das Auslesen und Senden der OS-Release-Nummer, damit Admin Companion die Antworten besser an Ihr OS-Release anpassen kann. Diese Einstellung wird dauerhaft gespeichert und für zukünftige Anfragen verwendet.
  • -dr or --disable-use-release
    Deaktiviert das Auslesen und Senden der OS-Release-Nummer. Mit dieser Einstellung sind die Antworten von Admin Companion allgemeiner. Diese Einstellung wird dauerhaft gespeichert und für zukünftige Anfragen verwendet.
  • -ek or --enable-knowledge
    Verwendung des internen Wissens aktivieren. [Standard]
  • -dk or --disable-knowledge
    Verwendung des internen Wissens deaktivieren.
  • -ec or --enable-citations
    Zitate im Fazit anzeigen (internes Wissen) aktivieren. [Standard]
  • -dc or --disable-citations
    Zitate im Fazit nicht anzeigen.
  • -v or --version
    Version und Revision der Client-Software anzeigen.

ac-ops: KI Server-Automatisierung mit erzwungenen Policies (guard-railed by design)

Was ac-ops ist

ac-ops ist ein Client für Automatisierung in operativen Workflows, der durch Richtlinien (Policies) strikt begrenzt wird. Es ist kein General-Purpose-Agent: Es kann ausschließlich über Tools agieren, die durch eine ausgewählte Use-Case-Konfiguration (YAML) explizit erlaubt wurden.

Nutzen Sie ac-ops, um LLM-Unterstützung sicher in Automatisierung (Skripte, Cronjobs, DevOps, CI-Pipelines, Incident-Runbooks) einzubetten, mit:

  • einer festen Use-Case-Policy (YAML)
  • einer Allowlist an Tools (inklusive run_as-Regeln)
  • parameterbezogenen Einschränkungen pro Tool (allow/deny)
  • stdout-Ausgabe, die für automatisierte Pipelines gedacht ist

High-Level-Ablauf:

  1. Wählen Sie eine Use-Case-YAML, die erlaubte Tools, Policies und eine Default-Instruktion für das LLM definiert.
  2. Übergeben Sie optional ein Event-Payload (z.B. einen Fehler-Logauszug).
  3. ac-ops sendet Instruktion + Payload an das Backend-LLM.
  4. Das Backend kann Tool-Ausführungen anfordern; ac-ops führt nur Tools aus, die im Use-Case erlaubt sind.
  5. Die finale Antwort wird auf stdout gestreamt, optional als JSON oder Text, damit nachgelagerte Pipeline-Schritte sie verarbeiten können.

Schnellstart

Voraussetzungen (/etc/admin-companion/admin-companion.cfg):

  • ADMIN_COMPANION_DIALOGUE_API
  • ADMIN_COMPANION_DIALOGUE_API_VER
  • ADMIN_COMPANION_KEY (API key)

...sind gesetzt.

Beispielaufruf mit Vendor default use-case (Event über stdin):

Der Aufruf unten benötigt auf der lokalen Maschine docker installiert.
Er liest das beispielhafte Docker Fehler-Event von stdin und versucht dieses auf Ihrer Maschine zu finden, was naturgemäß nicht möglich sein wird. Versuchen Sie es.
Er hat Debugging auf der Konsole aktiviert, sodass Sie ein Live-Ausführungs-Transkript auf der Konsole sene können. Dieses wird auf der Konsole mit der Ausgabe von ac-ops gemischt und ist nicht für Produktion geeignet.
Ersetzen Sie <prefix> mit /usr (oder /usr/local für FreeBSD). Dies ist abhängig vom Standard-Installationsverzeichnis der Distribution.

ac-ops \
  --use-case <prefix>/libexec/admin-companion/ops/use-cases/docker-issue-analysis.yaml \
  --event - \
  --debug-console \
  <<'EOF'
2026-02-20T17:35:02.458350834Z container die 7af8edcbaaac4000d38709787d6241a20715e48d476ca7d7d44446257d2175ac (exitCode=1, image=alpine:3.19, name=acme-crm)
EOF

Alternativ können Sie auch ihre eigene reale Docker Fehlermeldung in den Use Case streamen.


Beispielaufruf mit benutzerdefiniertem Usecase

Erstellen Sie die Datei /etc/admin-companion/ops/use-cases/test-ls-path.yaml mit diesem Inhalt:

id: test.ls.path.v1
description: Execute the tool LsPath for testing
# Whether to use Admin Companion's internal knowledge base
use_internal_knowledge: true
# Whether to use this client's platform release information to tailor LLM's answers better to this system
use_platform_release_information: true

instruction: |
  Execute the tool LsPath twice for testing purposes:
  - Once with disallowed parameter /var/log/apache2
  - Once with allowed parameter /var/log
  Show a summary of what you find.
  Rate, whether the output is what you expected and why.
output_mode: text

tools:
  - name: LsPath
    run_as: sudo

tool_config:
  LsPath:
    restrict:
      path:
        match: path_prefix_real
        allow:
          - /var/log
        deny:
          - /var/log/apache2

Führen Sie dann dieses Kommando aus:

ac-ops --use-case /etc/admin-companion/ops/use-cases/test-ls-path.yaml --debug-console


Kommandozeilenparameter

Synopsis

ac-ops --use-case PATH [--event PATH|-] [--ssh-restricted] [--debug-console] [instruction]

Optionen

  • --use-case PATH

    • Erforderlich

    • Pfad zu einer Use-Case-YAML (siehe unten).

  • --event PATH|-

    • Optional

    • Fügt der Anfrage ein Event-Payload hinzu.

    • Nutzen Sie -, um von stdin zu lesen.

  • --ssh-restricted

    • Optional

    • Nutzen Sie diese Option, wenn ac-ops per SSH im Forced-Command-Modus ausgeführt wird (z. B. über die ForceCommand-Direktive in sshd_config oder über command="ac-ops --ssh-restricted" in authorized_keys).

    • In diesem Modus liest ac-ops die eigentlichen CLI-Argumente aus SSH_ORIGINAL_COMMAND und erwartet das Event-Payload auf stdin (nutzen Sie --event -).

  • --debug-console

    • Optional

    • Gibt ein menschenlesbares Ausführungsprotokoll auf stdout aus, inklusive:

      • Request-Context (Use-Case-ID, Instruktion, Event-Payload)

      • jeden Tool-Run (Tool-Name, ob als User oder via sudo ausgeführt)

      • Tool stdout/stderr (begrenzt; optional redacted)

  • instruction (positional)

    • Optional

    • Überschreibt die Default-Instruktion des Use-Cases.

Exit-Codes

  • 0 - Request wurde erfolgreich abgeschlossen
  • 2 - ungültige Argumente/Konfiguration, fehlende Backend-Umgebung, Backend- oder Tool-Loop-Fehler

Laden von Konfiguration und API-Key

Beim Start lädt ac-ops die Konfiguration:

1) API-Key aus der Datei (nur wenn ADMIN_COMPANION_KEY nicht bereits in der Umgebung gesetzt ist):

  • Prio 1: ~/.admin-companion/api-key
  • Prio 2: /etc/admin-companion/api-key

2) Konfigurationsdatei:

  • /etc/admin-companion/admin-companion.cfg

Die Konfigurationsdatei überschreibt keine Variablen, die bereits in der Umgebung gesetzt sind.

Warum Use-Cases existieren

Use-Cases definieren die Policies für einen Typ von Automatisierung.

Ein Use-Case existiert, um:

  • einzuschränken, welche Tools der Assistent verwenden darf (Principle of Least Privilege)
  • festzulegen, ob ein Tool als user oder via passwortlosem sudo läuft
  • per-Tool Policies zu definieren (Beispiel: welche Verzeichnisse FileQuery lesen darf)
  • eine stabile Default-Instruktion vorzugeben, damit wiederholte Runs konsistent bleiben

Überblick über die Tool-Implementierung

Die Definition eines Tools folgt dieser Kette:

  1. Implementierung (nur erforderlich für benutzerdefinierte Tools. Keine Implementierungsarbeit ist nötig, wenn Sie vendor-shipped Tools und vendor-shipped Use-Cases unverändert verwenden.)

    a. Tool-Funktionalität und Parameter definieren (.../admin-companion/ops/tools-spec/)

    b. Tool-Wrapper implementieren, z.B. als Shell-Skript, das die Parameter konsumiert und die definierte Funktionalität umsetzt (admin-companion/ops/tools-bin/)

    c. Tool in ac-ops registrieren und auf den ausführbaren Wrapper mappen (.../admin-companion/ops/tools.yaml)

    d. Tool im Use-Case erlauben und Policies definieren (.../admin-companion/ops/use-cases/)

  2. Ausführung

    a. Ihre Maschine ruft ac-ops mit einem Use-Case auf.

    b. Der Request wird an das LLM gesendet.

    c. Das LLM möchte ein Tool ausführen.

    d. ac-ops prüft, ob das Tool im Use-Case erlaubt ist und ob der Call den Policies entspricht.

    e. Wenn ja, wird der Wrapper ausgeführt (.../admin-companion/ops/tools-bin/).

Vendor-provided Tools befinden sich unter <prefix>/libexec/admin-companion/ops/...

Admin-Overrides und zusätzliche benutzerdefinierte Tools befinden sich unter /etc/admin-companion/ops/...

<prefix> ist /usr oder /usr/local, abhängig davon, wo ac-ops installiert ist.

Hinweis

Die Strukturen unter <prefix>/libexec/admin-companion/ops (vendor-provided) und /etc/admin-companion/ops (override und benutzerdefiniert) sind identisch.
Sie können daher in die vendor-provided-Tools schauen, um über die Implementierung von Tools zu lernen, die Sie dann im Verzeichnis für override und user defined implementieren können.

Konventionen für Ops-Tool-Wrapper

Ops-Tools werden lokal von ac-ops als externe Wrapper ausgeführt unter:

  • Vendor defaults: <prefix>/libexec/admin-companion/ops/tools-bin/<impl>
  • Admin override und zusätzliche benutzerdefinierte Wrapper: /etc/admin-companion/ops/tools-bin/<impl>

<prefix> ist /usr oder /usr/local, abhängig davon, wo ac-ops installiert ist.

Argument-Mapping:

  • Backend-Tool-Calls senden arguments als JSON an ac-ops.
  • Der Client übersetzt JSON-Args in CLI-Flags:
  • string oder number: {"unit":"docker.service"} -> --unit docker.service
  • boolean true: {"full":true} -> --full
  • boolean false oder nicht gesetzt: Flag wird weggelassen

Wrapper-Implementierungs-Konventionen:

  • Wrapper sind POSIX-sh-Skripte und können optional "$DIR/lib/common.sh" sourcen (ausgeliefert unter tools-bin/lib/common.sh)
  • --help und -h können via common.sh-Helper _ac_handle_help usage "$@" und einer benutzerdefiniert usage-Funktion unterstützt werden
  • Argument-Parsing kann _ac_parse_args und Validatoren aus lib/common.sh verwenden
  • Wrapper müssen read-only sein und dürfen keine interaktiven Kommandos ausführen (z.B. --no-pager bevorzugen)

Um zu sehen, wie die Helper in common.sh genutzt werden können, ist es am besten, einige vendor-provided Implementierungen zu prüfen.

Ops-Tools

Verfügbare Tools werden im lokalen Tool-Registry (tools.yaml) deklariert. Nur diese Tools können in einer Use-Case-Definition verwendet werden.

  • Vendor default: <prefix>/libexec/admin-companion/ops/tools.yaml
  • Admin override: /etc/admin-companion/ops/tools.yaml

Die meisten Tools werden über lokale Wrapper-Implementierungen unter tools-bin/ ausgeführt.

  • Vendor default: <prefix>/libexec/admin-companion/ops/tools-bin/
  • Admin override und zusätzliche benutzerdefiniert Tools: /etc/admin-companion/ops/tools-bin/

FileQuery ist ein builtin-security Tool, das im Client implementiert ist (kein externer Wrapper).

Aktuelle Tool-Namen:

  • DockerEvents
  • DockerInfo
  • DockerInspect
  • DockerLogs
  • DockerNetworkInspect
  • DockerNetworkLs
  • DockerPort
  • DockerPs
  • DockerStatsSnapshot
  • DockerSystemDf
  • DockerVolumeInspect
  • DockerVolumeLs
  • FileQuery
  • JournalctlUnit
  • SystemctlStatus

(Diese Liste wird in künftigen Versionen von Admin Companion erweitert.)

Use-Case YAML

Eine Use-Case-YAML definiert:

  • id: Stabiler Identifier
  • description: Kurzer Text, nur zu Dokumentationszwecken
  • use_internal_knowledge: true|false -> definiert, ob die interne Knowledge Base von Admin Companion verwendet werden soll
  • use_platform_release_information: true|false -> definiert, ob ac-ops das Betriebssystem und das Release lokal ermittelt und an das LLM sendet (um Antworten besser ans System anzupassen)
  • instruction: Default-Instruktion für das LLM (kann durch positionales instruction im ac-ops-Kommando überschrieben werden)
  • background: Optionaler Background-Kontext (z.B. spezifische Systemkonfigurationen, Pfade, etc.), der an das LLM übergeben wird (Use-Case-spezifisch)
  • output_mode: text|json -> Hinweis an das LLM, wie die finale Antwort formatiert werden soll
  • tools: Erlaubte Tools und wie sie laufen (run_as sudo|user)
  • tool_config: Policies pro Tool

Orte: - Vendor default: <prefix>/libexec/admin-companion/ops/use-cases/*.yaml - Admin override und zusätzliche benutzerdefiniert Tools: /etc/admin-companion/ops/use-cases/*.yaml

tool_config-Policies (Syntax und Semantik)

tool_config definiert parameterbezogene Einschränkungen pro Tool als Policies. Einschränkungen werden als allow/deny-Listen pro Parameter ausgedrückt.

Syntax:

tool_config:
  <ToolName>:
    restrict:
      <param>:
        match: exact | path_prefix_real  # optional
        allow:
          - <string>
          - <string>
          - ...
        deny:
          - <string>
          - <string>
          - ...

Semantik:

  • Wenn tool_config für ein Tool fehlt, oder restrict fehlt, oder restrict.<param> fehlt: Dieser Parameter ist unbeschränkt.
  • Wenn restrict.<param> vorhanden ist:
  • deny gewinnt: Wenn der Wert auf einen Eintrag in deny matcht, wird der Call von ac-ops abgelehnt.
  • wenn allow nicht leer ist: Der Wert muss auf genau einen Eintrag in allow matchen.
  • wenn allow leer ist: Der Parameter ist effektiv verboten (deny-all).
  • Werte sind Strings. Wrapper können zusätzliche Validierung durchführen (Beispiel: Unit-Name-Format).

Matching:

  • match steuert, wie allow/deny-Einträge von ac-ops interpretiert werden.
  • Unterstützte Match-Modi:
  • exact (default): exakter String-Vergleich.
  • path_prefix_real: behandelt allow/deny-Einträge als absolute Directory-Präfixe; der angeforderte Pfad wird kanonisiert (real path) und muss unterhalb eines erlaubten Verzeichnisses liegen.
  • Wenn match fehlt, ist der Default exact.
  • FileQuery-Spezialfall:
  • FileQuery.restrict.path nutzt immer path_prefix_real.
  • Der Nutzer kann diesen Match-Modus nicht ändern.

Enforcement:

  • Alle tool_config.<Tool>.restrict.*-Regeln werden client-seitig erzwungen, bevor externe Tools ausgeführt werden.
  • FileQuery ist ein builtin-security Tool und erzwingt zusätzlich seine fest verdrahtete Semantik match: path_prefix_real.

Hinweis: tool_config wird in Tool-Descriptions injiziert, die an das LLM gesendet werden. Halten Sie diese kurz, um Tokens zu sparen.

Hartes limit: 32768 Bytes (JSON-serialized). In der Praxis sollte es deutlich kleiner sein.

Use-Case background

Use-Cases können background (Freitext) definieren, um stabilen Kontext für das LLM innerhalb dieses Use-Cases bereitzustellen.

  • Der Inhalt wird an das LLM gesendet.
  • Er sollte Fakten und Constraints zur Umgebung enthalten, die nicht Teil des Event-Payload sind.
  • Verbessern soe diesen iterativ: Use-Case ausführen, Ergebnis prüfen, dann background auf Basis fehlender oder unklarer Informationen nachschärfen.
  • Halten Sie ihn so kurz wie möglich und so lang wie nötig.

Wichtiger Hinweis zu output_mode

output_mode ist nur ein Hinweis an das LLM. Es verbessert Konsistenz, ist aber keine harte Garantie.

Ihre Automatisierung sollte damit umgehen können:

  • nicht-JSON-Ausgabe, obwohl output_mode: json
  • zusätzlicher erklärender Text

Wenn Sie strikt maschinenlesbare Ausgaben benötigen, ergänzen Sie Validierung im Pipeline-Schritt.

Beispiel-Use-Case-YAML

id: docker.issue.analyze.v2
description: Analyze a Docker issue from an event payload (log line/snippet)

# Whether to use Admin Companion's internal knowledge base
use_internal_knowledge: true

# Whether to use this client's platform release information to tailor LLM's answers better to this system
use_platform_release_information: true

# This use case is intended for root cause analysis based on a Docker error snippet.
# Ths error snippet is either piped into ac-ops via --event - or by providing it in a file via --event <filename>

background: |
  The docker installation is fully local.
instruction: |
  Analyze the provided Docker event/log snippet.
  By collecting evidence via allowed tools, identify the likely root cause of the issue as well as the proposed steps to fix it.
  Output the results as ticket to an Administrator, which handles the issue then.
  Format of the ticket:
  ```TICKET
  Use Case: <use case id>
  Event: <dump of the event>

  Result of the first analysis:
  <result of your analysis>```

output_mode: text

tools:
  - name: DockerInfo
    run_as: sudo
  - name: DockerPs
    run_as: sudo
  - name: DockerInspect
    run_as: sudo
  - name: DockerLogs
    run_as: sudo
  - name: DockerEvents
    run_as: sudo
  - name: DockerStatsSnapshot
    run_as: sudo
  - name: DockerNetworkLs
    run_as: sudo
  - name: DockerNetworkInspect
    run_as: sudo
  - name: DockerPort
    run_as: sudo
  - name: DockerVolumeLs
    run_as: sudo
  - name: DockerVolumeInspect
    run_as: sudo
  - name: DockerSystemDf
    run_as: sudo
  - name: SystemctlStatus
    run_as: sudo
  - name: JournalctlUnit
    run_as: sudo

  - name: FileQuery
    run_as: sudo

tool_config:
  FileQuery:
    restrict:
      path:
        match: path_prefix_real
        allow:
          - /var/log
          - /etc/docker
        deny:
          - /var/log/apache2
  SystemctlStatus:
    restrict:
      unit:
        match: exact
        allow:
          - docker.service
          - containerd.service

Tools

Wrapper-Tools (Ausführung auf dem Client)

Beispiele: DockerInfo, DockerPs, DockerInspect, ...

  • Das Backend fordert einen Tool-Run an.
  • ac-ops löst das Tool in eine lokale Wrapper-Implementierung unter tools-bin/ auf und führt sie aus.
  • Für diese Tools werden die Function-Specs typischerweise client-seitig über tools-spec/<impl>.yaml bereitgestellt (siehe unten).
  • Die Ausgabe des Tools wird zurück ans Backend gesendet, um mit den nächsten Schritten zu iterieren.

Builtin-security Tools

Aktuell: FileQuery

  • Ist im ac-ops-Client implementiert.
  • Erzwingt die allow/deny-Policy aus dem Use-Case.
  • Read-only und zeilenbasiert.
  • Output wird begrenzt.

Tool-Registry und Tool-Implementierung

Tool-Registry: tools.yaml

ac-ops nutzt ein lokales Tool-Registry (tools.yaml), das Tool-Name auf Folgendes mappt:

  • impl: Name des Implementierungs-Skripts (Lookup unter tools-bin/)
  • timeout_seconds: maximale Laufzeit für dieses Tool

Suchreihenfolge für das Tool-Registry:

  • Vendor default: <prefix>/libexec/admin-companion/ops/tools.yaml
  • Admin override oder benutzerdefinierte Tools: /etc/admin-companion/ops/tools.yaml <prefix> ist /usr oder /usr/local, abhängig davon, wo ac-ops installiert ist.

Hinweis

Wenn Sie das Vendor-Default tools.yaml ergänzen möchten, müssen Sie die Datei in den entsprechenden Unterordner vom Admin-Override-Verzeichnis kopieren und sie dann ergänzen. Anderenfalls verlieren Sie die Vendor-Default-Tools.

Suchreihenfolge für das Implementierungs-Skript:

  • Vendor default: <prefix>/libexec/admin-companion/ops/tools-bin
  • Admin override oder benutzerdefinierte Tools: /etc/admin-companion/ops/tools-bin <prefix> ist /usr oder /usr/local, abhängig davon, wo ac-ops installiert ist.

Registry-Struktur:

  • builtin_tools: ac-ops built-in Tools
    • aktuell: FileQuery (builtin-security)
  • external_tools: Tool-Implementierungen, die via externem Wrapper auf der Client-Maschine ausgeführt werden (vendor-provided oder user-defined)
    • Beispiele: DockerInfo, DockerLogs, SystemctlStatus, LsPath

Beispiel:

builtin_tools:
  FileQuery:
    impl: <internal>
    timeout_seconds: 15

external_tools:
  DockerInfo:
    impl: DockerInfo
    timeout_seconds: 15
  LsPath:
    impl: ls_path_v1
    timeout_seconds: 10

Was ist <impl>?

<impl> ist der Dateiname der Tool-Implementierung, die auf dem Client ausgeführt wird.

Beispiel:

  • Tool-Name: DockerInfo
  • <impl>: DockerInfo
  • ausgeführter Pfad .../admin-companion/ops/tools-bin/DockerInfo

    ... folgt der oben beschriebenen Auflösung.

Tool-Specs: tools-spec/<impl>.yaml

Für Tools, deren Function-Specs client-seitig bereitgestellt werden ("external_tools" in tools.yaml), werden die Specs als separate YAML-Dateien nach Implementierungsnamen gespeichert:

  • Vendor provided:

    • /usr/libexec/admin-companion/ops/tools-spec/<impl>.yaml

    • oder /usr/local/libexec/admin-companion/ops/tools-spec/<impl>.yaml

  • Admin override oder zusätzliche benutzerdefiniert Tools:

    • /etc/admin-companion/ops/tools-spec/<impl>.yaml

Dateiformat:

description: <string>
parameters:
  type: object
  properties:
    <param>:
      type: <string|integer|boolean>
      description: <string>
      # Optional JSON-schema fields:
      # ATTENTION:
      # These fields are only a weak guidance for the LLM, not hard constraints for execution
      # Hard constraints need to be managed either in the use-case definition or in the execution wrapper!
      # enum: [..]
      # minimum: <int>
      # maximum: <int>
    ...
  required: [<param>, ...]   # optional

Hinweise:

  • Eine description pro Parameter ist empfohlen (sie hilft dem LLM, das Tool korrekt zu verwenden).

Lookup-Reihenfolge für Implementierungen

Beim Ausführen eines Tools löst ac-ops die Implementierung in dieser Reihenfolge auf:

1) Admin override

  • /etc/admin-companion/ops/tools-bin/<impl>

2) Vendor default (abhängig vom Install-Prefix)

  • /usr/libexec/admin-companion/ops/tools-bin/<impl>
  • oder /usr/local/libexec/admin-companion/ops/tools-bin/<impl>

FileQuery (sichere Datei-Inspektion)

Wofür es da ist

FileQuery ist ein built-in Tool ohne externen Wrapper und wird vom Assistenten genutzt, um lokale Dateien sicher zu inspizieren - typischerweise Logs.

Es ist dafür ausgelegt, um u.a. folgende Aufgabenstellungen zu unterstützen:

  • "zeige mir die letzten N Zeilen"
  • "suche nach Mustern mit Kontextzeilen"
  • "zeige einen Zeilenbereich"

Guardrails

  • Read-only
  • Keine Shell-Ausführung
  • Policy-enforced allow/deny-Verzeichnisse (deny gewinnt)
  • Output wird größenbegrenzt
  • Timeout wird client-seitig erzwungen

FileQuery-Aktivität in ac-ops-Logs lesen

Wenn Debug-/Audit-Logging aktiviert ist, sehen Sie typischerweise:

  • welcher Datei-Pfad angefordert wurde
  • welche Query angewendet wurde: eine kleine, read-only DSL
  • ob Zeilennummern angefordert wurden
  • die gebundene Tool-stdout/stderr-Ausgabe (möglicherweise redacted)

Logging and audit

ac-ops hat 3 Ausgabekanäle:

  • Primäre Ausgabe: wird nach stdout geschrieben (text oder json).
  • Debug-Konsolen-Transkript (optional): aktiviert mit --debug-console.
  • Debug- und Audit-Dateilogs (optional): konfiguriert über /etc/admin-companion/admin-companion.cfg.

Überblick

Debug-Log:

  • Zweck: Troubleshooting (ausführlicher, enthält Kontext und Tool-Aktivität).
  • Format: JSONL.
  • Ablageort:
    • system: /var/log/admin-companion/ac-ops.debug.jsonl
    • user: ~/.admin-companion/ac-ops/debug.jsonl

Audit-Log:

  • Zweck: kompakter, maschinenlesbarer Aktivitäts-Trace für Automationsläufe.
  • Format: JSONL.
  • Ablageort:
    • system: /var/log/admin-companion/ac-ops.audit.jsonl
    • user: ~/.admin-companion/ac-ops/audit.jsonl

Beispielkonfiguration

Folgendes ist eine Beispielkoniguration, typischerweise am Ende von /etc/admin-companion/admin-companion.cfg:

# Debug-Log (JSONL)
ops.debug.enabled=true
ops.debug.destination=auto
ops.debug.max_bytes=1048576
ops.debug.backup_count=2
ops.debug.max_record_bytes=65536
ops.debug.redact=true

# Audit-Log (JSONL)
ops.audit.enabled=true
ops.audit.destination=auto
ops.audit.max_bytes=1048576
ops.audit.backup_count=2
ops.audit.max_record_bytes=65536
ops.audit.redact=true

# Audit-Elemente (CSV)
# Hinweis: wenn ops.audit.enabled=true und ops.audit.elements leer/fehlend ist, bricht ac-ops früh mit einem Fehler ab.
ops.audit.elements=context,tool_call,tool_exec,tool_result,errors

Parameter

ops.debug.enabled / ops.audit.enabled

  • true|false
  • Wenn deaktiviert, wird das jeweilige Log nicht geschrieben.

ops.debug.destination / ops.audit.destination

Wohin die JSONL-Logdatei geschrieben wird:

  • system
    • schreibe nach /var/log/admin-companion/...
    • muss beschreibbar sein, andernfalls schlägt ac-ops fehl
  • user
    • schreibe nach ~/.admin-companion/...
    • Best-Effort; wenn nicht beschreibbar, wird Logging deaktiviert
  • auto (default)
    • zuerst system versuchen; wenn nicht beschreibbar, auf user ausweichen
    • Best-Effort; wenn keines von beidem beschreibbar ist, wird Logging deaktiviert

ops.debug.max_bytes / ops.audit.max_bytes

  • Maximale Größe der JSONL-Logdatei vor Rotation.

ops.debug.backup_count / ops.audit.backup_count

  • Anzahl der rotierten Backup-Dateien, die behalten werden.

ops.debug.max_record_bytes / ops.audit.max_record_bytes

  • Maximale Größe eines einzelnen JSONL-Records nach Trunkierung.
  • Das hält Logs begrenzt, auch wenn Tool-Ausgaben groß sind.

ops.debug.redact / ops.audit.redact

  • true|false (default: true)
  • Wenn aktiviert, werden Werte, die wie Secrets aussehen, in Debug- und Audit-Logs redigiert.

Auswahl der Audit-Elemente

ops.audit.elements

CSV-Liste der Audit-Elemente, die ins Audit-Log geschrieben werden. Wenn ein Element nicht gelistet ist, wird es nicht geschrieben.

Aktuell emittierte Elementnamen:

  • context
    • Use-Case-ID, Run-ID, Instruction, Event-Metadaten/Payload.
  • tool_call
    • Tool-Call, den das LLM angefordert hat (Tool-Name, call_id, arguments).
  • tool_exec
    • Wie ein Tool lokal ausgeführt wurde (run_as, impl path, argv, timeout).
  • tool_result
    • Tool-Exit-Code und begrenztes stdout/stderr.
  • errors
    • Fehler in Backend-Kommunikation, Tool-Ausführung, Tool-Loop.

Redaction

Wenn ops.*.redact=true, wird Redaction auf Debug- und Audit-Logs (und das Debug-Konsolen-Transkript) angewendet. Redaction ist zeilenbasiert und versucht, Secret-Werte zu entfernen, während Kontext erhalten bleibt.

Beispiel:

  • password=supersecret wird zu password= <redacted>

Troubleshooting

Fehlende Backend-Konfiguration

Wenn Sie sehen:

  • Missing ADMIN_COMPANION_DIALOGUE_API or ADMIN_COMPANION_DIALOGUE_API_VER
  • Missing ADMIN_COMPANION_KEY

Setzen Sie diese in der Umgebung oder in /etc/admin-companion/admin-companion.cfg (und stellen Sie sicher, dass die API-Key-Datei existiert).

Sudo-Probleme

Wenn ein Tool mit run_as: sudo konfiguriert ist:

  • sudo wird als sudo -n ausgeführt (non-interactive)
  • passwordless sudo muss für den aufrufenden Benutzer konfiguriert sein

FileQuery not_found / forbidden

  • not_found: Datei existiert nicht (strikte Path-Resolution)
  • forbidden: Zugriff wird durch Policy abgelehnt (deny gewinnt)


Admin Companion Gateway - Konfigurationsreferenz

Diese Seite beschreibt, wie Admin Companion Gateway konfiguriert wird.

Admin Companion Gateway ist ein schlanker Webhook-Receiver und Router: es nimmt HTTP-Events entgegen (z. B. von Prometheus Alertmanager), normalisiert sie über profiles.yaml und ruft anschließend ac-ops per SSH auf einem Zielhost im --ssh-restricted Modus auf. Je nach Profil liefert es die ac-ops Ausgabe zurück und/oder triggert Post-Actions (Sinks) wie z. B. ServiceNow oder Slack - dabei werden Allow - Deny Policies für Zielhosts und Use-Cases durchgesetzt. Admin Companion Gateway ist hochgradig konfigurierbar und lässt sich ohne individuelle Softwareentwicklung an eine Vielzahl von Ein- und Ausgabesystemen anbinden.

Für Consulting-Services zur Integration in Ihre Umgebung, kontaktieren Sie uns über das Kontaktformular: https://www.admin-companion.ai/contact

Für die Installation siehe:

  • https://www.admin-companion.ai/downloads#gateway

Inhalt

  • Dateien und Pfade
  • Sicherheitsmodell (kurz)
  • Gateway-Konfiguration (ac-ops-gateway.cfg)
  • Profiles Routing (ac-ops-gateway.profiles.yaml)
  • Expression-Sprache
  • Sinks (webhook - exec)
  • Templating

Dateien und Pfade

Nach der Installation sind diese Dateien am wichtigsten:

  • Gateway-Konfiguration (dotenv):

    • /etc/admin-companion/ac-ops-gateway.cfg
  • Profiles Routing (YAML):

    • /etc/admin-companion/ac-ops-gateway.profiles.yaml
  • Secrets (read-only in den Container gemountet als /run/secrets):

    • /etc/admin-companion/ac-ops-gateway-secrets/

Sicherheitsmodell (kurz)

  • Inbound:

    • HTTP-Webhook-Endpunkte benötigen ein Bearer-Token.
  • Outbound:

    • Das Gateway verbindet sich per SSH als Benutzer acops mit dem Zielhost.
    • Der Zielhost muss den Forced-Command-Modus erzwingen (ac-ops --ssh-restricted).

Zusätzlich validiert das Gateway:

  • target_host gegen Allow - Deny Policies.
  • use_case gegen eine Allowlist.

Gateway-Konfiguration (ac-ops-gateway.cfg)

Das Gateway liest seine Konfiguration aus /etc/admin-companion/ac-ops-gateway.cfg.

Häufige Einstellungen:

  • Listener:

    • AC_OPS_GATEWAY_LISTEN=0.0.0.0:8080
  • Profiles-Datei:

    • AC_OPS_GATEWAY_PROFILES_YAML=/etc/admin-companion/ac-ops-gateway.profiles.yaml
  • Bearer-Token:

    • AC_OPS_GATEWAY_BEARER_TOKEN_FILE=/run/secrets/ac_ops_gateway_token
  • SSH:

    • AC_OPS_GATEWAY_SSH_USER=acops
    • AC_OPS_GATEWAY_SSH_PORT=22
    • AC_OPS_GATEWAY_SSH_IDENTITY_FILE=/run/secrets/acops_gateway_ed25519
    • AC_OPS_GATEWAY_SSH_KNOWN_HOSTS=/run/secrets/known_hosts (nur erforderlich bei Strict Host Key Checking; kann read-only sein)
    • AC_OPS_GATEWAY_SSH_STRICT_HOST_KEY_CHECKING=true (empfohlen)
    • bei false persistiert das Gateway keine Host Keys (UserKnownHostsFile=/dev/null)
  • Policies:

    • AC_OPS_GATEWAY_TARGETS_ALLOW_CIDRS=...
    • AC_OPS_GATEWAY_TARGETS_DENY_CIDRS=...
    • AC_OPS_GATEWAY_USE_CASE_ALLOW=... (CSV oder ALL)
    • AC_OPS_GATEWAY_USE_CASE_DEFAULT=...

Tipp:

  • Verwenden Sie die mitgelieferten Template-Dateien als Ausgangspunkt.

Profiles Routing (ac-ops-gateway.profiles.yaml)

Die Profiles-Datei definiert:

  • HTTP Endpoints (Paths)
  • welches Profil welchen Endpoint verarbeitet
  • wie target_host, use_case, stdin_payload berechnet werden
  • optionale Post-Actions (Sinks)

Top-level Struktur:

  • endpoints: [ {path, profile}, ... ]
  • profiles: { <name>: <profile>, ... }

Profil-Felder:

  • Pflicht:

    • target_host
    • stdin_payload
  • Optional:

    • use_case
    • dedup_key (wenn nicht gesetzt, ist es ein leerer String)
    • ctx_vars (optionale berechnete Variablen, nutzbar in Sink-Templates als ${ctx.<name>})
    • output

Expression-Sprache

Ein Expression-Node ist entweder:

  • ein String (Kurzform für const), oder
  • ein Mapping mit genau einem Operator-Key plus optional transforms.

Operatoren:

  • path: <string>

    • Syntax: a.b[0].c oder $ für das Root-Objekt
  • const: <scalar>

  • coalesce: [<expr>, ...] (erstes nicht-leeres Ergebnis)
  • join: {sep, parts}
  • json_dump: {path: <path>}
  • map: {key: <expr>, table: {...}, default: <value>} (exakter Match)

Transforms (Strings):

  • trim, lower, upper, strip_port
  • regex_sub: {pattern, repl}
  • regex_capture: {pattern, group}
  • truncate: <n>
  • sha256_hex

Sinks (webhook - exec)

Sinks laufen nach der remote ac-ops Ausführung.

  • webhook Sink:

    • sendet eine HTTP Anfrage (z. B. an Slack)
  • exec Sink:

    • führt einen lokalen Befehl aus (advanced)

Output-Verhalten:

  • output.return_result=true (default)

    • liefert HTTP 200 mit kombiniertem stdout - stderr und Header X-Exit-Code
  • output.return_result=false

    • liefert HTTP 204 wenn alle Sinks erfolgreich waren
    • liefert HTTP 502 wenn ein Sink fehlschlägt

Option:

  • output.http_error_on_ac_ops_failure=true

    • wenn ac-ops mit Exit-Code != 0 endet, liefert das Gateway HTTP 502 und überspringt Sinks

Templating

Sink Bodies unterstützen String-Templating:

  • ${ctx.<field>}

    • ctx.target_host, ctx.use_case, ctx.dedup_key
    • ctx.ac_ops_exit_code, ctx.ac_ops_output
    • plus alle im Profil definierten ctx_vars (z. B. ctx.alertname_norm)
  • ${in.<path>}

    • liest aus dem eingehenden JSON mit derselben path Syntax
  • ${file.<path>}

    • liest die erste nicht-leere nicht-kommentierte Zeile aus einer Datei

Helpers:

  • ${json_escape:<ref>} zum Einbetten von Text in JSON-String-Fragmente
  • ${urlenc:<ref>} für URL-Encoding

Hinweise:

  • Das Output-Templating ist bewusst klein gehalten (nur json_escape, urlenc).
  • Wenn Sie normalisierte Felder benötigen (lowercase, strip_port, regex capture, etc), berechnen Sie diese im Profil via ctx_vars und referenzieren sie als ${ctx.<name>}.

Von Admin Companion Clients verwendete Dateien

Die folgenden Dateien und Ordner werden von Admin Companion verwendet.Einige werden von den Clients 'ai' und 'ac-ops' gemeinsam genutzt, anderesind client-spezifisch.

  • Gemeinsam (ai, ac-ops)
    • Ordner: $HOME/.admin-companion/
      • api-key: Optionale API-Key-Datei. Wenn ADMIN_COMPANION_KEY in der Umgebung gesetztist, wird diese Datei nicht verwendet.
    • Ordner: /etc/admin-companion/
      • admin-companion.cfg: Admin-Companion-Konfigurationsdatei.
      • api-key: Optionale systemweite API-Key-Datei. Wenn ADMIN_COMPANION_KEY in derUmgebung gesetzt ist, wird diese Datei nicht verwendet.
      • symlink_name: Interne Datei für Installation/Deinstallation. Ändern Sie diese Datei niemals.
    • Ordner: /usr/bin/ oder /usr/local/bin/
      Dieser Ordner enthält die ausführbaren Dateien (z.B. admin-companion, ai undac-ops).
  • ai (interaktiver Client)
    • Ordner: $HOME/.admin-companion/
      • admin-companion.log: Logdatei des interaktiven Clients. Die Datei wird rotiert; es werden zweiDateien mit jeweils etwa 1 MB Größe vorgehalten.
      • admin-companion.bill: Diese Datei protokolliert für jede Anfrage die Anzahl der verbrauchten Tokens. Die Datei wird rotiert; es werden zwei Dateien mit jeweils etwa 1 MB Größe vorgehalten.
      • conversation_history.pickle: Diese Datei speichert den Gesprächsverlauf dauerhaft (auch über Neustartshinweg).
  • ac-ops (Automatisierungs-Client)
    • Ordner: /etc/admin-companion/ops/
      Admin-Overrides für vendor-bereitgestellte Tools und zusätzlichebenutzerdefinierte Tools.
      • use-cases/: Use-Case-Definitionen (YAML), um erlaubte Tools und Guardrails für ac-opsfestzulegen.
      • tools.yaml: Tool-Registry (YAML), die verfügbare Tools und deren Implementierungendefiniert.
      • tools-bin/: Optionale, vom Administrator bereitgestellte Tool-Wrapper-Implementierungen(ausführbare Dateien).
      • tools-spec/: Optionale, vom Administrator bereitgestellte Tool-Spezifikationen (YAML) fürexterne Tools (vom Client bereitgestellte Function-Spezifikationen).
    • Ordner: $HOME/.admin-companion/ac-ops/
      Benutzerseitige ac-ops-Debug- und Audit-Logs (wenn mitops.*.destination=user konfiguriert oder ops.*.destination=auto und dasSystem-Ziel nicht beschreibbar ist).
      • debug.jsonl
      • audit.jsonl
    • Ordner: /var/log/admin-companion/
      Systemweites Ziel für ac-ops-Debug- und Audit-Logs (wenn mitops.*.destination=system konfiguriert oder ops.*.destination=auto undbeschreibbar).
      • ac-ops.debug.jsonl
      • ac-ops.audit.jsonl
    • Ordner: /usr/libexec/admin-companion/ops/ oder /usr/local/libexec/admin-companion/ops/
      Vendor-bereitgestellte ac-ops-Assets (tools.yaml, use-cases/, tools-bin/,tools-spec/). Das genaue Prefix hängt vom Installationsort ab.

Web-Konsole

Web-Konsole – Dashboard

Im Dashboard der Web-Konsole sehen Sie eine Übersicht über Ihre Guthaben und Ihre Nutzung auf Monatsbasis (6 Monate) sowie auf Tagesbasis (aktueller Kalendermonat).


Web-Konsole – Anfragen

Auf dieser Seite sehen Sie die Metadaten der neuesten Anfragen, die über einen Ihrer API-Keys gestellt wurden (ohne den Inhalt der Anfrage).


Web-Konsole – API-Keys

API-Keys werden zur Authentifizierung der Anfragen des Admin-Companion-Clients verwendet. Behandeln Sie Ihre API-Keys wie ein Passwort und halten Sie sie geheim!

Sie können Ihre API-Keys auf der API-Keys Seite in der Web-Konsole erstellen, verwalten und löschen.
Sie haben folgende Optionen:

  • Einen neuen API-Key erstellen.
    Sie müssen dem API-Key einen Namen geben, um ihn später identifizieren zu können.
    Der API-Key wird nur einmal bei der Erstellung angezeigt. Stellen Sie sicher, dass Sie ihn an einem sicheren Ort aufbewahren. Wenn Sie den API-Key verlieren, können weder Sie noch wir ihn wiederherstellen!
    Sie können API-Keys jedoch jederzeit löschen und neu erstellen. Beachten Sie, dass der Key auf dem Bildschirm angezeigt wird. Stellen Sie sicher, dass keine unbefugte Person Ihren Bildschirm sehen kann.
  • Deaktivieren Sie einen API-Key vorübergehend, indem Sie auf sein Statussymbol klicken.
  • Benennen Sie einen API-Key um, indem Sie auf das Stiftsymbol am Ende der Zeile des API-Keys klicken.
  • Einen API-Key dauerhaft löschen
    Ein gelöschter API-Key kann nicht wiederhergestellt werden. Sie können jedoch jederzeit neue API-Keys erstellen.
Sobald Sie einen API-Key erstellt haben, können Sie ihn im Admin-Companion-Client verwenden. Siehe oben, wie Sie den API-Key für Ihren Admin-Companion-Client setzen.


Web-Konsole – Mein Profil

Auf der Seite „Mein Profil“ in der Web-Konsole können Sie Ihren Namen, Ihre USt-IdNr. und Ihre Adresse ändern. Land, Firmenname oder E-Mail-Adresse können Sie nicht ändern.


Web-Konsole – Konto

Diese Seite zeigt Ihre Kontoguthaben. Es gibt zwei Guthaben:

  • Ablaufendes Guthaben: Dieses Guthaben verfällt am Ende eines Abrechnungszeitraums. Zu Beginn jedes Abrechnungszeitraums, wenn Sie die wiederkehrende Gebühr bezahlen, wird dieser Betrag auf den Wert der wiederkehrenden Zahlung zurückgesetzt.
    Sie können diesen Betrag dann innerhalb des Abrechnungszeitraums durch die Nutzung von Admin Companion verwenden.
  • Nicht ablaufendes Guthaben: Dieses Guthaben verfällt erst, wenn Ihr Abonnement gekündigt wird. Solange Sie ein Abo haben, wird ein verbleibender Betrag dieses Guthabens in den nächsten Abrechnungszeitraum übertragen.
    Wenn Sie die automatische Aufladefunktion verwenden (siehe unten), fließen alle darauf basierenden Zahlungen in das nicht verfallende Guthaben.
    Wenn Sie Ihren Tarif wechseln, wird Ihnen sofort die neue wiederkehrende Gebühr berechnet (ohne das Datum der Abrechnungszeiträume zu ändern). Diese Gebühr fließt ebenfalls in das nicht verfallende Guthaben.
Wenn Sie ein verfallendes und ein nicht verfallendes Guthaben haben, wird die Nutzung von Admin Companion immer zuerst vom verfallenden Guthaben abgezogen, bis dieses vollständig verbraucht ist. Erst danach wird das nicht verfallende Guthaben verwendet.

Automatische Aufladefunktion: Standardmäßig lehnt der Admin-Companion-Client bei vollständigem Verbrauch aller Guthaben weitere Anfragen mit der Meldung „Account limit reached“ ab.
Wenn Sie die automatische Aufladefunktion aktivieren, belastet Admin Companion Ihre Zahlungsmethode automatisch erneut, sobald Sie alle Guthaben innerhalb eines Abrechnungszeitraums verbraucht haben. Alle Aufladungen fließen in das nicht verfallende Guthaben und folgen den oben beschriebenen Mechanismen.
Die Aufladung erfolgt immer in derselben Höhe wie die wiederkehrende Gebühr.
Vergessen Sie nicht, nach dem Ändern der automatischen Aufladung auf „Kontoeinstellungen aktualisieren“ zu klicken, damit die Änderung wirksam wird.

Transaktionen: Auf der Kontoseite sehen Sie außerdem Ihre letzten 30 Transaktionen (z. B. wiederkehrende Zahlungen, Aufladungen, Änderungen der Zahlungsmethode usw.).


Mein Abo

Auf der Abonnement-Seite sehen Sie, welchen Tarif Sie aktuell abonniert haben. Sie können ein Abonnement aktivieren, zu einem anderen Abonnement wechseln oder Ihr Abonnement kündigen.

Tarif wechseln: Wenn Sie zwischen den Tarifen S, M, L wechseln, wird die wiederkehrende Gebühr des neuen Tarifs sofort über Ihre hinterlegte Zahlungsmethode abgerechnet und dem nicht verfallenden Guthaben gutgeschrieben (siehe „Konto“ für Details). Ihre weitere Nutzung wird dann sofort zum Stückpreis des neuen Tarifs abgerechnet.

Zahlungsmethode aktualisieren: Auf dieser Seite können Sie auch Ihre Zahlungsmethode aktualisieren.

Abo kündigen: Die Kündigung wird zum Ende des Abrechnungszeitraums eingeplant. Sie können Admin Companion bis zum Ende des Abrechnungszeitraums weiter nutzen.
Wenn die Aufladefunktion aktiviert ist, wird Ihre Zahlungsmethode weiterhin für mögliche Aufladungen belastet.
Wenn Sie ein Abonnement kündigen, verfällt das gesamte nicht verfallende Guthaben am Ende des Abrechnungszeitraums.
In der letzten etwa eine Stunde vor dem Ende eines Abrechnungszeitraums sind keine Änderungen am Abonnement möglich.
Ihr Konto bleibt mindestens ein Jahr verfügbar, sodass Sie sich später entscheiden können, erneut einen Tarif zu abonnieren.

  • IMPRESSUM
  • ALLGEMEINE GESCHÄFTSBEDINGUNGEN
  • Cookie-Einstellungen ändern
  • Presse
  • © ayonik GmbH - Made in Germany - Alle Rechte vorbehalten