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 { GatherAndSynthesize } from "smithers-orchestrator";
type SourceDef = {
agent: AgentLike;
prompt: string;
output?: OutputTarget;
children?: ReactNode; // overrides prompt
};
type GatherAndSynthesizeProps = {
id?: string; // default: "gather-and-synthesize"
sources: Record<string, SourceDef>;
synthesizer: AgentLike;
gatherOutput: OutputTarget;
synthesisOutput: OutputTarget;
gatheredResults?: Record<string, unknown> | null; // typically from ctx.outputMaybe()
maxConcurrency?: number; // default: Infinity
synthesisPrompt?: string;
skipIf?: boolean;
children?: ReactNode; // overrides synthesisPrompt
};
<Workflow name="research">
<GatherAndSynthesize
sources={{
docs: { agent: docsAgent, prompt: "Search the documentation." },
code: { agent: codeAgent, prompt: "Analyze the codebase." },
issues: { agent: issueAgent, prompt: "Review open issues." },
}}
synthesizer={synthesisAgent}
gatherOutput={outputs.gathered}
synthesisOutput={outputs.synthesis}
gatheredResults={gathered}
/>
</Workflow>
Notes
- Synthesis task auto-receives
needs for every source, gating it on all gathers.
- Source
children takes priority over prompt.
- When
gatheredResults is provided, it is folded into the default synthesis prompt.