Two paths. Every step has exactly one job.
For small talk, simple questions, and information requests. The Classifier evaluates the input — no LLM, purely rule-based. It decides in milliseconds: tool needed or not? If not, the process goes directly to Thinking.
Thinking analyses and plans on every request today. A skip-Thinking config exists for future budget savings at classifier confidence ≥ 0.90, but it isn't wired into the pipeline yet. If the plan is rejected by theVerifier, it goes back with a note. Once approved, Outputgenerates the response: a single LLM call, streamed directly.
For tool use, container actions, and multi-step tasks. When the Classifier detects tool calls, the Orchestrator takes over — wired into the pipeline, though its maturity is still tracked as Shadow Mode while it hardens. It collects context — and decides upfront which toolsThinking is even allowed to see. What is not approved cannot be recommended.
Thinking creates a plan, the Verifier reviews it. Then the Task Loop takes over — entirely without LLM. Every step is executed and verified deterministically. At the end, Outputgenerates the response — again a single LLM call.
TRION applies the PIANO principle not as a parallel engine but as an architectural rule: no module should invent its own operational truth.
Rules, signals, and capabilities live inintelligence_modules/. The routing_frame bundles them into a shared decision state — which all downstream components read instead of re-classifying on their own.
TRION translates the PIANO principle from cognitive science into architecture — but not as parallel processing. The pipeline runs deliberately sequential: each stage waits for the previous.
What TRION takes from the principle: many signals from different modules flow into the routing_frame — built once, then shared truth forOrchestrator,Thinking,Task Loop, andOutput. No module interprets the request a second time.
The Thinking component can never execute tools directly — it can only recommend them. This prevents erroneous, hallucinated tool calls.
Long documents take a separate path before theClassifier runs. The Input Processor detects long-doc inputs, cuts them into overlapping chunks, runs a deterministic summary, and passes aDocumentContext to Thinking for retrieval-aware planning. Normal chat inputs pass through unaffected. No LLM is involved in this stage.