Por que configuração, não código

A aposta filosófica do QueryMT: o seu agente de IA deveria ser um ficheiro, não um programa.

O problema do código

Hoje quase todos os frameworks de agentes de IA pedem que escreva código. Python, TypeScript ou qualquer outra coisa: define comportamento de forma imperativa. Isso implica:

  • Difícil de rever. Não consegue passar os olhos por um script Python de 200 linhas e saber o que o agente faz.
  • Difícil de partilhar. Partilhar um agente costuma significar partilhar uma árvore de dependências, um virtualenv e esperança.
  • Pouco portátil. O código depende de um runtime. Um agente LangChain não corre igual no navegador ou num telemóvel.
  • Difícil de auditar. Um diff entre duas versões não mostra claramente como o comportamento do agente mudou.

Por que TOML

Um ficheiro TOML é uma declaração de intenção. Ele diz o que o agente deve fazer, não como. O framework cuida do como.

# Este é um agente completo
[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

O que recebe

  • Revisável: Abra o ficheiro. Leia. Sabe exatamente o que o agente faz.
  • Partilhável: Anexe o TOML a uma mensagem no Slack. E só isso.
  • Portátil: A mesma config corre na CLI, dashboard, VS Code, iOS e Android.
  • Auditável: git diff mostra exatamente o que mudou no comportamento do agente.
  • Versionável: As configs vivem no git junto com o seu código. Fazer rollback é trivial.

O compromisso

Config-driven significa que não pode expressar lógica arbitrária. Se precisar de um algoritmo de routing personalizado ou uma tool específica, deve escrever Rust e compilá-la no framework. O sistema de config cobre 90% dos casos de uso. A API Rust cobre o restante.

É intencional. A config é o produto. O código é a plataforma.