AI Cockpit

Agents editor

The Agents tab in the AI Cockpit lets you tune each of the six specialist agents Pulse Copilot routes to — without touching code or waiting for a deploy.

The six specialists

Pulse Copilot is not one monolithic agent — it's an orchestrator that routes your question to a specialist:

Specialist What it handles
accounting Invoices, payments, payouts, city tax
messaging Inbox replies, AI Suggest, language decisions
operations Tasks, cleanings, turnover scheduling
knowledge FAQ / guest knowledge-base updates
property Property configuration, pricing, calendar
general Anything that doesn't match a specialist

Each runs as a sub-agent with its own system prompt, model, and reasoning budget.

What you can edit per agent

For each specialist:

System prompt

The mandate text — the static role and rules portion. Edit it in the textarea, hit Save, and the change is live on the next Pulse Copilot turn.

The dynamic context (routing reason, plan, tool results) continues to be layered on top by the orchestrator; you don't need to hand-wire placeholders for live runtime values.

{{placeholders}} work the same as everywhere else (see Placeholders).

A Reset to default button per field rolls back to the seeded default.

Model

Dropdown of supported Claude model SKUs, with cost hints:

Model Input $/Mtok Output $/Mtok When to use
Claude Opus 4.6 $5 $25 Hardest reasoning (accounting math, multi-step plans)
Claude Sonnet 4 $3 $15 Balanced default
Claude Haiku $0.80 $4 Fast classification, simple lookups

Picking a cheaper model reduces cost per turn — and usually reduces quality. The cost dashboard (cost-dashboard.md) shows the real spend per agent so you can A/B.

This is where the gh#412 cost-reduction work becomes operator-tunable: instead of waiting for a code edit + deploy to swap Opus 4.0 → 4.6 on the accounting agent, you flip the dropdown.

Thinking budget

How many extended-thinking tokens the agent gets before it must commit. 0 = thinking off.

Higher budget = more deliberate reasoning + more cost. The accounting agent ships at 6000 by default because invoice math benefits from thinking; the general agent ships at 0 because most general questions don't.

Max tool rounds

How many tool-use rounds the agent can take before being cut off. Higher = it can chain more tool calls; lower = capped at a smaller plan.

Default is 12 for most specialists. If you see the agent regularly running out of rounds (look at the cost dashboard — accounting_round_N chips), raise it. If it loops, lower it.

Plan-then-execute

Toggle. When ON, the agent first emits a plan, then executes the plan. When OFF, it executes step-by-step.

Plan-then-execute usually produces tighter answers for multi-step questions; it costs slightly more on the first turn.

Max response tokens

Cap on the final assistant message size. Must be larger than thinkingBudget (Anthropic constraint).

Default 8000. If you see the agent truncating answers, raise it. If answers are too long, lower it.

Save behavior

Save is per-agent. After save:

  • The change is live on the next Pulse Copilot turn.
  • An audit row lands in the audit log with the actor (manual:operator-<your-id>) + the field diff + timestamp.

The audit row is visible in Admin → Audit Log filtered by admin_chat_agents.

What's protected

The operator-editable prompt is the mandate — the agent's role + rules. It cannot override:

  • The tool-execution scaffolding (which tools the agent can call).
  • The safety scaffolding (refusal patterns, PII handling).
  • The routing layer (which specialist gets a question).

These live in code and are not exposed to the editor. If a prompt edit ever tried to inject a tool-call instruction directly, the orchestrator strips it before runtime.

Reset everything

Each agent has a Reset agent to defaults button that restores all six fields to the seeded values. Useful if you've drifted into a configuration that's misbehaving and want to start clean.


Implements: gh#415 (operator-manageable subagents).

Source: the FlatsBratislava operator manual.