Zum Inhalt springen

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

go
spec, _ := exons.Parse(source)       // aus einem String
spec, _ := exons.ParseFile("agent.exons")
err := spec.Validate()               // strukturelle Validierung
err := spec.ValidateCredentialRefs() // Credential-Referenzen

Serialisieren & exportieren

go
out, _ := spec.Serialize(exons.DefaultSerializeOptions())
out, _ := spec.Serialize(exons.FullExportWithCredentials())
out, _ := spec.ExportToSkillMD()     // Agent-Skills-kompatibel

Multi-Provider-Tool-Export

Werkzeuge einmal in der Spezifikation definieren, in das Format jedes Anbieters exportieren:

go
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

go
estimate := exons.EstimateTokens(source)
// estimate.EstimatedGPT, estimate.EstimatedClaude, estimate.EstimatedGeneric

Debug & 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.