なぜ code ではなく config なのか

QueryMT の根本にある考え方: AI agent は program ではなく file であるべきです。

Code の問題

現在のほぼすべての AI agent framework は code を書くことを求めます。Python、TypeScript、その他の言語で、命令的に behavior を定義します。つまり:

  • Review しにくい。 200 行の Python script を一目見て agent が何をするか把握するのは困難です。
  • 共有しにくい。 agent を共有するには dependency tree、virtualenv、そして祈りが必要になりがちです。
  • portable ではない。 code は runtime に縛られます。LangChain agent は browser や phone で同じようには動きません。
  • audit しにくい。 2 つの version の diff を見ても agent behavior の変化が明確には分かりません。

なぜ TOML か

TOML file は意図の宣言です。agent が 何を すべきかを示し、どう 実行するかは framework が担当します。

# これは完全な 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

得られるもの

  • Reviewable: file を開いて読むだけで、agent が何をするか正確に分かります。
  • Shareable: TOML を Slack message に添付するだけです。
  • Portable: 同じ config が CLI、dashboard、VS Code、iOS、Android で動きます。
  • Auditable: git diff で agent behavior の変更が正確に見えます。
  • Versionable: 設定 は code と一緒に git に置けます。rollback は簡単です。

Tradeoff

Config-driven では任意の logic は表現できません。custom routing algorithm や bespoke tool が必要なら、Rust code を書いて framework に組み込む必要があります。config system は use cases の 90% を扱い、Rust API が残りを扱います。

これは意図的な設計です。config が product で、code が platform です。