Warum config, nicht Code

Die philosophische Wette hinter QueryMT: Dein AI agent sollte eine Datei sein, kein Programm.

Das Problem mit Code

Heute verlangt fast jedes AI agent Framework, dass du Code schreibst. Python, TypeScript oder etwas anderes: Du definierst Verhalten imperativ. Das bedeutet:

  • Schwer zu reviewen. Du kannst kein 200-Zeilen-Python-Script überfliegen und sofort wissen, was der agent tut.
  • Schwer zu teilen. Einen agent zu teilen bedeutet oft dependency tree, virtualenv und Hoffnung.
  • Nicht wirklich portabel. Code ist an eine runtime gebunden. Ein LangChain agent läuft nicht gleich im Browser oder auf dem Telefon.
  • Schwer zu auditieren. Ein Diff zwischen zwei Versionen zeigt nicht klar, wie sich das Verhalten des agents geändert hat.

Warum TOML

Eine TOML-Datei ist eine Absichtserklärung. Sie sagt was der agent tun soll, nicht wie. Um das Wie kümmert sich das Framework.

# Das ist ein vollständiger agent
[agent]
provider = "anthropic"
model = "claude-sonnet-4-5-20250929"
tools = ["shell", "knowledge_ingest", "knowledge_query"]

[agent.execution]
max_steps = 30

[[middleware]]
type = "limits"
max_turns = 15

Was du bekommst

  • Reviewbar: Öffne die Datei. Lies sie. Du weißt genau, was der agent tut.
  • Teilbar: Haenge die TOML an eine Slack-Nachricht. Das ist alles.
  • Portabel: Dieselbe config läuft in CLI, dashboard, VS Code, iOS und Android.
  • Auditierbar: git diff zeigt genau, was sich am Verhalten des agents geändert hat.
  • Versionierbar: Configs leben in git neben deinem Code. Rollback ist trivial.

Der Tradeoff

Config-driven bedeutet, dass du keine beliebige Logik ausdrücken kannst. Wenn du einen custom routing algorithmus oder ein bespoke tool brauchst, musst du Rust-Code schreiben und ihn ins Framework einbinden. Das config system deckt 90% der Use Cases ab. Die Rust API deckt den Rest ab.

Das ist Absicht. Config ist das Produkt. Code ist die Plattform.