Skip to content

Agents

Each agent is a GuildhallAgent wrapper around the engine's QueryEngine, carrying message history, tool-carryover state, and an attached session for persistence.

Source: ./src/agents/

Roles

RoleFactoryPurpose
speccreateSpecAgent()Interviews user during exploring.
coordinatorcreateCoordinatorAgent()Per-domain promotion/rejection decisions.
workercreateWorkerAgent()Builds code in in_progress.
reviewercreateReviewerAgent()Evaluates work in review.
gateCheckercreateGateCheckerAgent()Runs deterministic checks + custom gates.
persona reviewercreatePersonaReviewerAgent()Guild-specific review, fanned out at review.

Options

ts
new GuildhallAgent({
  name: 'worker',
  llm: modelSet.worker,
  systemPrompt,
  tools,
  maxTurns: 40,
  maxTokens: 100_000,
  permissionChecker,
  skills,
  hookExecutor,
  compactor,
  sessionPersistence,
})

Diff scope

./src/agents/diff-scope.ts categorizes proposed changes as critical, complex, or routine. The coordinator uses this to decide whether to invoke extra reviewer personas. Critical diffs always fan out to all applicable guilds; routine diffs may short-circuit to a single reviewer.

Warm resume

Every agent's conversation is snapshotted after each turn. When the orchestrator resumes a task, the agent is instantiated with restoreSessionId and continues from the snapshot. See Sessions.

Released under the FLL-1.2 License.