Skip to content
Orchestrator & Subagents

Orchestrator & Subagents

Vectora’s agent is built on a native engine (backend/engine/conversation_loop.py::run_conversation) — an imperative loop, not a compiled graph. This gives access to configurable HITL, pluggable filesystem backends, and a supervisor that delegates to specialized subagents via the native delegate_to_subagent tool.

Orchestrator

The supervisor decides, on every turn: answer directly (simple questions, general conversation) or delegate to a subagent with an explicit instruction. There’s no unnecessary routing hop — if the question doesn’t need a file, terminal, or search, the orchestrator answers right away.

The two subagents

SubagentSpecialtyMain tools
coderFilesystem, terminal, git — code generation and reviewfile_read, file_edit, file_write, grep, list_dir, terminal, git tools
searchReal-time web search + RAGweb_search, web_fetch, vector_search, embedding, ingest_docs

There’s no separate third subagent dedicated to RAG — context retrieval is a search responsibility, not its own subagent.

HITL (Human-in-the-Loop)

Before any destructive action (writing a file, running a terminal command, git push), the graph pauses and asks for your approval — via the harness’s native HumanInTheLoopMiddleware, not a raw interrupt(). Behavior changes based on the active permission mode:

ModeBehavior
Always askevery destructive action pauses
Accept editsfile edits go straight through; terminal/git still pause
Autonomousnothing pauses (advanced/trusted use)
Planthe agent only plans, never executes

Why this matters in practice

You don’t have to blindly trust the agent: every tool call is traceable, every risky action goes through you before happening, and the “answer directly vs. delegate” decision is visible in the UI (the chat’s “thinking” block shows the orchestrator’s reasoning).

See also