Fähigkeiten
Was go-exons mit einer Spezifikation macht: parsen, validieren, serialisieren, exportieren und mehr.
go-exons parst, validiert und serialisiert .exons-Spezifikationen. Es ruft kein LLM auf — die Ausführung übernimmt die Laufzeitumgebung. Alles Folgende arbeitet auf der Spezifikation und ihrem Template.
Parsen & validieren
spec, _ := exons.Parse(source) // aus einem String
spec, _ := exons.ParseFile("agent.exons")
err := spec.Validate() // strukturelle Validierung
err := spec.ValidateCredentialRefs() // Credential-ReferenzenSerialisieren & exportieren
out, _ := spec.Serialize(exons.DefaultSerializeOptions())
out, _ := spec.Serialize(exons.FullExportWithCredentials())
out, _ := spec.ExportToSkillMD() // Agent-Skills-kompatibelMulti-Provider-Tool-Export
Werkzeuge einmal in der Spezifikation definieren, in das Format jedes Anbieters exportieren:
for _, fn := range spec.Tools.Functions {
fn.ToOpenAITool() // {"type":"function","function":{...}}
fn.ToAnthropicTool() // {"name":...,"input_schema":{...}}
fn.ToGeminiTool() // {"name":...,"parameters":{...}}
fn.ToMCPTool() // {"name":...,"inputSchema":{...}}
fn.ToCohereTool() // {"name":...,"parameter_definitions":{...}}
fn.ToMistralTool() // OpenAI-kompatibel
}Template-Engine
Eine erprobte Engine (aus go-prompty übernommen): Variablen, Bedingungen, Schleifen, Includes, Vererbung. Erweiterbar durch eigene Resolver (eigene Tags) und eigene Funktionen in Ausdrücken; {~exons.ref~}-Referenzen werden über einen SpecResolver aufgelöst, um Agenten aus Skills zusammenzusetzen.
Kataloge
Skill-/Tool-Kataloge automatisch erzeugen und in den Template-Kontext injizieren — in den Formaten default (Markdown), detailed, compact oder function_calling (JSON-Schema).
A2A Agent Cards
Google-A2A-Protokoll-Agent-Cards aus den Metadaten der Spezifikation erzeugen — reine Metadaten-Transformation, ohne Template-Ausführung oder Netzwerkaufrufe. Dispatch-Keywords werden zu Skill-Tags, die Registry-Version zur Card-Version.
Token-Schätzung
estimate := exons.EstimateTokens(source)
// estimate.EstimatedGPT, estimate.EstimatedClaude, estimate.EstimatedGenericDebug & Validierung
AST-Validierung (unbekannte Tags, fehlende Attribute), ein statischer Dry-Run und eine menschenlesbare Explain-Erklärung der Ausführung.
Sicherheit per Default
Die Engine ist standardmäßig gehärtet:
- Env-Zugriffskontrolle —
{~exons.env~}blockiert gängige Secret-Muster (*_KEY,*_SECRET,*_TOKEN,*_PASSWORD) per Default; konfigurierbare Allow-/Deny-Listen. - Ausgabe-Größenlimit — gerenderte Ausgabe standardmäßig auf 10 MB begrenzt.
- Zip-Import-Schutz — Schutz vor Path-Traversal und Dekompressionsbomben.
- Rekursionslimits — Includes, Vererbung und Ref-Auflösung sind alle begrenzt.
JSON-Schema
Ein JSON-Schema für die Frontmatter liegt unter schema/exons.schema.json — nutzbar in der VS-Code-YAML-Erweiterung oder in CI. Siehe Format-Referenz.