Why config, not code

The philosophical bet behind QueryMT: your AI agent should be a file, not a program.

The Problem with Code

Every AI agent framework today asks you to write code. Python, TypeScript, whatever — you're defining behavior imperatively. That means:

  • Not reviewable. You can't glance at a 200-line Python script and know what the agent does.
  • Not shareable. Sharing an agent means sharing a dependency tree, a virtualenv, and hope.
  • Not portable. Code is tied to a runtime. A LangChain agent doesn't run in the browser or on a phone.
  • Not auditable. You can't diff two versions of an agent and see what changed in its behavior.

Why TOML

A TOML file is a declaration of intent. It says what the agent should do, not how. The framework handles the how.

# This is a complete 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

What You Get

  • Reviewable: Open the file. Read it. You know exactly what the agent does.
  • Shareable: Attach the TOML to a Slack message. That's it.
  • Portable: The same config runs on CLI, dashboard, VS Code, iOS, Android.
  • Auditable: git diff shows exactly what changed in agent behavior.
  • Versionable: Configs live in git alongside your code. Rollback is trivial.

The Tradeoff

Config-driven means you can't express arbitrary logic. If you need a custom routing algorithm or a bespoke tool, you need to write Rust code and compile it into the framework. The config system handles 90% of use cases. The Rust API handles the rest.

That's by design. The config is the product. The code is the platform.