Skip to main content

Documentation Index

Fetch the complete documentation index at: https://smithers.sh/llms.txt

Use this file to discover all available pages before exploring further.

// Props
import { Panel } from "smithers-orchestrator";

type PanelistConfig = { agent: AgentLike; role?: string; label?: string };

type PanelProps = {
  id?: string;                                           // default: "panel"
  panelists: PanelistConfig[] | AgentLike[];
  moderator: AgentLike;
  panelistOutput: OutputTarget;
  moderatorOutput: OutputTarget;
  strategy?: "synthesize" | "vote" | "consensus";        // default: "synthesize"
  minAgree?: number;                                     // for "vote" / "consensus"
  maxConcurrency?: number;                               // default: Infinity
  skipIf?: boolean;
  children: string | ReactNode;                          // prompt sent to every panelist
};
<Workflow name="code-review-panel">
  <Panel
    panelists={[
      { agent: securityAgent, role: "Security Reviewer" },
      { agent: qualityAgent, role: "Code Quality Reviewer" },
      { agent: architectureAgent, role: "Architecture Reviewer" },
    ]}
    moderator={moderatorAgent}
    panelistOutput={outputs.review}
    moderatorOutput={outputs.synthesis}
  >
    Review the changes in src/auth/ for security, quality, and architecture concerns.
  </Panel>
</Workflow>

Notes

  • Panelist task ids: {prefix}-{label|role|panelist-N}; moderator is {prefix}-moderator.
  • strategy and minAgree are passed as prompt context to the moderator, which interprets them.
  • All panelists write to the same panelistOutput schema, differentiated by task id.