Orchestrator & Buddies
The agent runtime ships with five personas. One orchestrator, four specialists. Each has a distinct persona, sprite, tool allowlist, and chat thread. This page covers how they work, how to steer them, and how delegation flows between the orchestrator and its kids.
Orchestrator
The Orchestrator (ORC) is Waypath’s main agent. It holds the full
cross-pillar tool union plus delegate_to_buddy, and refers to the
specialists as “my kids” or “my little ones.”
- Renders only in AgentView (the full-screen agent surface); never spawns a bottom-bar sprite or floating chat.
- Dispatch-gated: only the orchestrator can call
delegate_to_buddy. Every other buddy that tries to delegate gets rejected withorchestrator_only. - Falls back to direct execution via its full tool union if a target buddy is disabled or refuses delegation.
Specialist buddies
| Buddy | Persona | Tool scope |
|---|---|---|
| Insights | Cross-platform correlation, top customers, signal scan. Mirrors the pre-buddy general agent. | All read + analysis tools |
| Prospect | Signal engine, ICP research, hyper-signal tracking, outreach drafts. | Signal + outreach + read tools |
| Campaign | CIO / Mailchimp / HubSpot / Salesforce operator: segments, broadcasts, metrics. | Campaign + read tools |
| Pipeline | CRM hygiene, stage moves, field fixes on the native Waypath pipeline. | mutate + read tools |
Every specialist has a recommended integration hint (e.g. Campaign recommends Customer.io) but no hard gate. If at least one matching platform is connected, no warning. Buddies that don’t need an external integration (Prospect’s signal credits are included with your plan; Pipeline uses Waypath’s internal CRM) show no warning regardless.
Delegation
User → Orchestrator
│
├─ handles it directly (full tool union)
│
└─ delegate_to_buddy({ buddyId, task })
│
├─ child buddy runs with its own tools
├─ streams status events back, prefixed "[Prospect] …"
└─ returns { status, buddyId, summary }Delegation is a tool call. The orchestrator’s decision is observable in the
trace: you’ll see a tool_use block for delegate_to_buddy followed by the
child buddy’s nested stream. If the target buddy is disabled, the tool
returns rejected: user_opted_out and the orchestrator falls back to
running the task itself.
Settings → Buddies
Open Settings → Buddies to manage the agent roster for the current workspace:
| Control | What it does |
|---|---|
| Enable toggle | Adds/removes the buddy from the bottom-bar sprite roster. Insights is locked-on (defaultEnabled); the orchestrator is always-on in AgentView. |
| Model mode | Per-buddy routing: Metered (Waypath bills) · BYOK Claude · BYOK OpenAI. See BYOK. |
| Accept delegation from orchestrator | If off, the orchestrator’s delegate_to_buddy call for that target returns rejected: user_opted_out and the orchestrator executes directly. Useful when you want a buddy’s chat thread kept “clean” from orchestrator bleed-through. |
All three settings persist per-workspace in localStorage:
wp-buddies-{wsId}. Enabled setwp-buddy-models-{wsId}. Per-buddy model modewp-buddy-delegation-{wsId}. Per-buddy delegation mode
The client sends the full delegation map in every chat request body; the server whitelists known modes before passing them to the agent dispatch.
System-prompt assembly
Each buddy’s system prompt is assembled server-side in this order:
- Brand block: workspace business + voice from
getBrandContext() - Buddy persona intro: the buddy-specific role (from
BUDDY_SPECSinchat-agent-service.ts) - Base system prompt: the 5 pillars, hyper-signal engine, tool-usage rules, dynamic customer/campaign/workspace block
- Playbook block: either the workspace’s active playbook inventory or a feature description (when 0 specs). See Playbooks.
Because the brand block comes first, tuning your voice sliders takes effect on the very next turn. No reboot or re-deploy.
Agent persona notes
The agent persona asserts that the agent IS Waypath’s correlation / intelligence engine. When a user references “the correlation engine,” “the intelligence engine,” or “Claude,” the agent answers affirmatively, never “I don’t have that in my toolkit.” The orchestrator persona additionally refers to the specialist buddies as “my kids / the children / my little one.”
Streaming contract
Every buddy streams responses over Server-Sent Events. The event contract is provider-agnostic:
| Event | Meaning |
|---|---|
status | Live reasoning step (“Reading customer graph…”, “Running signal scan…”) |
text | Token-level text delta |
action | Tool-call summary (with nested [Prospect] … prefix for delegated calls) |
error | Turn failed; done still follows |
done | Turn complete |
OpenAI BYOK buddies yield the same event shape as the default Anthropic path, so the client contract stays the same regardless of provider.