Back openDesk Edu for a sovereign, open-source education â every vote counts.
Vote nowSave products you love by clicking the heart icon.
A technical comparison of OpenSpec against OpenAPI, ADRs, RFCs, BDD/Gherkin, and traditional project management â and why the AI agent era demands a fundamentally different approach to change management.
KI-Coding-Agenten haben die Art und Weise, wie wir Applikationscode schreiben, transformiert. Sie erstellen ProjektgerĂŒste, implementieren Features, beheben Bugs und fĂŒhren Refactorings mit zunehmender ZuverlĂ€ssigkeit durch. Doch es gibt einen Bereich, in dem die meisten Agenten immer noch Schwierigkeiten haben: das Infrastruktur-Management.
Der Grund dafĂŒr ist simpel. Applikations-Codebases folgen gut verstandenen Konventionen â TypeScript-Projekte folgen src/, Frameworks geben Dateipfade vor und Linter erzwingen die Formatierung. Infrastruktur-Repositories hingegen sind oft idiosynkratisch. Jeder DevOps-Engineer hat seinen eigenen Ansible-Stil, seine eigene Variablenbenennung und seine eigene Rollenstruktur. Ein KI-Agent, der in ein unbekanntes Ansible-Repo geworfen wird, hat keine Möglichkeit zu erschlieĂen, ob Variablen in defaults/main.yml oder vars/main.yml hingehören, ob Tasks name: mit oder ohne Doppelpunkt verwenden oder ob die Konvention eine Rolle pro Playbook oder viele Rollen ist.
opencode-ansible löst dies durch die Bereitstellung eines agent-nativen Infrastruktur-Skeletts â ein öffentliches Ansible-Repository, das speziell fĂŒr AI-first Operations strukturiert ist.
Das Repository ist um drei Ebenen der Agenten-Interaktion organisiert:
Zwei Dateien definieren, wie Agenten mit dem Repository interagieren:
AGENTS.md â Der Kontext-Kontrakt fĂŒr den Agenten. Er enthĂ€lt die ProjektĂŒbersicht, die Betriebsprinzipien (deklarativ statt imperativ, idempotente Operationen, agentenfreundliches YAML), die vollstĂ€ndige Konvention der Rollenstruktur, Anforderungen an die Task-Benennung inklusive Beispielen sowie das Protokoll fĂŒr Ănderungen, dem die Agenten folgen mĂŒssen. Ein Agent, der das Repository betritt, liest zuerst diese Datei.
SKILL.md â Eine OpenCode-Skill-Definition, die automatisch geladen wird, wenn der Agent erkennt, dass er in einem Ansible-Repository arbeitet. Sie bietet Dokumentationen zu den FĂ€higkeiten, Schnellbefehle und Links zu verfĂŒgbaren Skripten.
opencode-ansible/
âââ .opencode/agents/ # Three agent roles
â âââ sysadmin.yaml # Day-to-day operations
â âââ deployer.yaml # Application deployment
â âââ security.yaml # Security posture
âââ inventory/
â âââ hosts.yml # Host definitions
â âââ group_vars/ # Hierarchical variables
âââ roles/ # Reusable roles
â âââ sysctl/ # Kernel tuning
â âââ docker/ # Docker engine
â âââ ... # User-defined roles
âââ playbooks/
â âââ site.yml # Master playbook
â âââ bootstrap.yml # Initial host setup
â âââ security.yml # Firewall + SSH hardening
â âââ monitoring.yml # Prometheus/node_exporter
â âââ docker.yml # Docker deployment
âââ role-skeletons/ # Scaffold templates
â âââ config-deploy/ # Config file deployment
â âââ docker-compose-service/ # Docker Compose services
â âââ systemd-wrapper/ # Systemd service units
â âââ pip-package/ # Python package installation
â âââ sysctl-tune/ # Kernel parameter tuning
âââ scripts/
â âââ new-role # Scaffold new roles
â âââ validate # Lint + syntax check
âââ AGENTS.md
âââ SKILL.md
âââ Makefile
âââ ansible.cfg
Das Verzeichnis .opencode/agents/ definiert drei spezialisierte Agenten-Personas. Wenn OpenCode eine Infrastruktur-Anfrage erhĂ€lt, wird diese basierend auf der Intention an den entsprechenden Agenten geroutet â ein Security-Audit geht an den security-Agenten, ein Deployment an den deployer-Agenten und die routinemĂ€Ăige Wartung an den sysadmin-Agenten.
Das Skelett bettet Sicherheitsmechanismen ein, die Agenten vor der DurchfĂŒhrung von Ănderungen nutzen mĂŒssen:
make try â FĂŒhrt ansible-playbook --check --diff gegen localhost aus.make lint â FĂŒhrt ansible-lint sowie eine Syntax-Validierung aus../scripts/validate â Kombinierter Lint- und Syntax-Check fĂŒr CI-Pipelines.Diese werden in AGENTS.md als obligatorische Pre-Commit-Schritte referenziert. Ein Agent, der die Validierung ĂŒberspringt, verletzt sein eigenes Betriebsprotokoll.
Traditionelle Ansible-Repositories kodieren Konventionen implizit. HĂ€ufige Anti-Pattern, die KI-Agenten verwirren:
| Anti-Pattern | Warum es scheitert | Agent-native Lösung |
|---|---|---|
Vage Task-Namen ("Setup monitoring") | Agent kann Intention nicht bestimmen oder VollstĂ€ndigkeit prĂŒfen | "Install node_exporter for hardware metrics â exposes :9100" |
| Variablen an zufĂ€lligen Orten | Agent weiĂ nicht, wo neue Konfigurationen hinmĂŒssen | Alle Variablen in defaults/main.yml pro Rolle |
| Gemischte Rollenstrukturen | Agent erstellt inkonsistente neue Rollen | role-skeletons/ bieten kanonische Templates |
| Keine Task-Benennungskonvention | Agent generiert Namen, die nicht passen | Striktes <verb> <noun> for <purpose>-Muster |
| Keine Pre-Commit-Checks | Agent wendet fehlerhaftes YAML an | make lint + make try erzwungen |
Das opencode-ansible-Skelett eliminiert diese Fehlerquellen, indem es jede Konvention explizit und auffindbar macht.
Die wichtigste Design-Entscheidung ist das Rollen-Skelett-System. Wenn ein Agent eine neue Rolle erstellen muss (z. B. nginx), erfindet er die Struktur nicht aus dem Nichts. Er referenziert das entsprechende Skelett:
# Example: Agent creating an nginx role
# 1. Agent reads role-skeletons/config-deploy/
# 2. Agent copies structure to roles/nginx/
# 3. Agent populates:
# - defaults/main.yml with all configurable values
# - tasks/main.yml with idempotent tasks
# - handlers/main.yml with reload/restart handlers
# - templates/nginx.conf.j2 with service-specific Jinja2
# 4. Agent validates with make lint
# 5. Agent dry-runs with make try
# 6. Agent commits with descriptive message
Dies garantiert, dass jede Rolle im Repository denselben Konventionen folgt, unabhÀngig davon, welcher Agent sie wann erstellt hat.
Ein praktisches Beispiel dafĂŒr, warum diese Struktur wichtig ist, ist das Management von Arbeitsspeicher in einem heterogenen Cluster.
Betrachten wir ein Setup mit 7 Hosts: GPU-Server (DGX Spark, AI-Nodes), Webserver, Datenbank-Hosts und Entwicklungs-Workstations. Jeder hat unterschiedliche Speicheranforderungen:
Ohne einen strukturierten Ansatz verteilen sich diese Konfigurationen ĂŒber sysctl-Dateien, Docker-Daemon-Configs und Service-Unit-Dateien. Mit opencode-ansible besitzt die sysctl-Rolle bereits die Struktur fĂŒr das Tuning von Kernel-Parametern, die group_vars/-Hierarchie trennt die Konfiguration pro Host-Typ, und das Monitoring-Playbook liefert die Observability-Ebene.
Ein Agent kann einen neuen Memory-Tuning-Parameter hinzufĂŒgen, indem er roles/sysctl/defaults/main.yml bearbeitet, die Host-Gruppenvariable in inventory/group_vars/ ergĂ€nzt und dies mit make try verifiziert â alles innerhalb der etablierten Konventionen.
Das Skelett ist darauf ausgelegt, adaptiert und nicht komplett ĂŒbernommen zu werden. Wenn Sie bereits ein Ansible-Setup haben:
AGENTS.md und SKILL.md in Ihr bestehendes Repo â diese Dateien sind additiv und stehen nicht im Konflikt mit der bestehenden Struktur.role-skeletons/ hinzu â erstellen Sie Templates aus Ihren bisher besten Rollen, damit Agents diese replizieren können..opencode/agents/ hinzu â definieren Sie Agent-Rollen, die Ihren operationalen Mustern entsprechen.Der Wert steigt exponentiell mit der Weiterentwicklung des Repos, da jede neue Rolle und jedes Playbook denselben Konventionen folgt, die die Agents bereits verstehen.
Agent-native Infrastrukturverwaltung bedeutet nicht, DevOps-Engineers zu ersetzen. Es geht darum, die âContext-Switching Taxâ zu eliminieren, die die Arbeit an der Infrastruktur verlangsamt.
Ein Senior Engineer, der 30 Server ĂŒber 3 Umgebungen hinweg verwaltet, verbringt die meiste Zeit mit Kontextwechseln: Er prĂŒft, welche Server welche Konfigurationen haben, verifiziert, ob eine Ănderung etwas beschĂ€digt, und erinnert sich an die exakte Konvention, die dieses spezifische Repo verwendet. Ein AI-Agent, der die Konventionen versteht, Validierungen automatisch ausfĂŒhrt und Ănderungen erzeugt, die den etablierten Mustern entsprechen, reduziert diesen Overhead drastisch.
Das opencode-ansible Skeleton ist das Infrastruktur-Ăquivalent zu einem gut strukturierten Application Template â es schreibt Ihre Playbooks nicht fĂŒr Sie, aber es macht jede Interaktion zwischen Mensch, Agent und Infrastruktur vorhersehbar und zuverlĂ€ssig.
Das Repository ist öffentlich auf GitHub unter der MIT-Lizenz verfĂŒgbar.