Skip to content

Wisp

Wisp is a triage companion that works on behalf of one person. Once that person turns it on, Wisp keeps an eye on the estate they are allowed to see, notices things that need a human (a cluster of alerts, a stalled ticket, a failing patch ring), and tells them about it. It remembers preferences and decisions so it nags less over time, and it can hand focused jobs to specialists.

Wisp never has more authority than the person it works for. It acts inside a grant that snapshots that person’s reach, and it cannot widen it. Anything that changes something in the world goes through the same approval cards you already use on web and mobile. Wisp adds no new approval tier and no bypass.

Wisp threads open at /ai/wisp/thread/<id>. Under an active grant the docked Breeze AI side panel speaks as Wisp (there is no toggle; see Where you talk to Wisp), and the Wisp entry in the AI section of the navigation opens the Wisp home.

Wisp is a paid-plan feature. It is enabled by default for Pro, Enterprise and Unlimited partners. On other plans the Wisp controls appear locked with an upgrade prompt; they are not hidden. Breeze operators control a deployment-level switch; if Wisp is off for the deployment, no partner can use it.

Creating a grant requires step-up MFA: you are asked to confirm your second factor, even if you signed in recently.

Wisp has three independent gates, and none of them overrides another:

  • The plan. Wisp is a paid-plan feature (above). Without it the controls are locked with an upgrade prompt.
  • The deployment switch (BREEZE_WISP_ENABLED). Turns the Wisp engine and the Wisp home on or off for a whole deployment.
  • The partner switch. A partner administrator can turn Wisp off for their own company; see Turning Wisp off for your company.

The Wisp entry in the AI section of the navigation opens the Wisp home at /wisp. It is where you see, at a glance, what Wisp has been doing for you and what is waiting on you. The page is drawn from stored results; opening it never runs a model.

The home appears when Wisp is on for the deployment and you signed in at partner scope. If Wisp is off for the deployment (self-hosted), /wisp shows the page locked: “Wisp runs on Breeze Cloud. It is not available on this server.” There is no upgrade link, and the Wisp sidebar entry shows the same lock. If you signed in at organization scope, /wisp sends you to Breeze AI at /ai/chat. If your plan does not include Wisp you see the same locked upgrade prompt as elsewhere. If you have no grant yet, a Put Wisp to work card starts one and opens the usual step-up confirmation.

The page is the conversation. One thread sits in the center at reading width with the composer at the bottom, and a rail on the right holds everything else. There is no page heading; the identity card in the rail carries the name.

The conversation column shows the whole thread, not just the current chat. Every earlier chat session with Wisp on this thread appears above the current one, in time order. Wisp’s own output appears in the same flow as posts from Wisp, each with a small label and the time it was sent:

  • Morning brief shows its sections.
  • Nudge is a concern Wisp raised. The post has an Open link to the concern; snooze, dismiss and the other actions are in Needs your attention in the rail.
  • Digest batches the items that waited for your digest cadence, such as a concern after two unanswered nudges.

An unread post, one whose notification you have not read yet, shows a small dot before its label.

How the thread reads:

  • Wisp’s replies run full width as prose, with Wisp shown above the first reply after each of your messages. Your messages are right-aligned bubbles.
  • Tool activity folds into one line per run of checks, for example “Searched devices · Listed sites · 4s”. Click the line to see each call. A failed check or a handoff that needs your approval opens the line by itself.
  • When Wisp hands work to specialists, each one shows as a run card in the thread.
  • Time dividers separate the conversation by day and after gaps of more than 20 minutes.
  • Long threads load the newest page first. Load earlier at the top of the conversation brings in older messages and posts without moving what you are reading.
  • New posts appear while the page is open. The home refreshes every 30 seconds, and the thread re-reads its newest messages when that refresh shows Wisp starting or finishing a check, a newer brief, or a change in the concerns that need you. If that read fails, the thread says so and offers Retry.
  • An empty thread shows Wisp’s welcome and four suggestions: What needs me today?, Which devices are offline?, Run a health sweep and What happened overnight?. Select one to send it. When a morning brief is already in the thread, only the suggestions show.

The composer says Message Wisp. Enter sends and Shift+Enter adds a line. The plus button links an item to the thread; see Working set. The thread resumes the last session instead of starting a new one on every visit. New conversation closes it, so its summary lands on the thread, and starts a fresh one on the grant. Nothing starts while the grant is paused or ended. While Wisp is paused, the conversation still shows its history, read-only, and the composer is replaced by the paused notice. When the grant has ended, the history is not shown.

The rail, from the top:

Section What it shows
Identity and grant controls Wisp’s name, its state (“Active” with the scope, or a live “Checking …” line while an assessment runs), and the grant controls: refresh, settings, turn off, the spend meter, and pause and resume.
Needs your attention Open and snoozed concerns for your grant, approvals first and then by severity, with a count of items waiting for your approval. Snooze, dismiss and give feedback exactly as on the thread page. Approvals open in the Approvals page.
Workers Up to five recent specialist runs, with All runs linking to the full list.
Linked items Pinned records, subjects of open concerns, and recent records Wisp worked on; see Working set.
Activity A timeline of what Wisp did. It starts collapsed; select Show to expand it.

At the bottom of the rail are links to All chats (/ai/chat) and Memory (/settings/wisp-memory).

Below large screen widths the rail becomes a one-line strip under the page header: Wisp’s state, how many items need you, and Details. Details opens the whole rail in a drawer. A link to a concern, such as /wisp#concern=<id>, opens the drawer by itself.

You can link straight to a section: /wisp#needs-you, #activity, #thread and #links. #brief scrolls to the thread, where the brief now lives. /wisp#concern=<id> opens Needs your attention on that concern. Below large screen widths, #needs-you, #links, #activity and #concern=<id> open the drawer instead of scrolling.

The thread page at /ai/wisp/thread/<id>, where nudges land, uses the same layout. The conversation is inline and is the same thread as the home, with the thread summary as its first post. The old Open in chat button is gone.

The side panel, when it speaks as Wisp, has an Open in Wisp link that goes to the home; concerns are listed on the home, not in the sidebar. On mobile, the Wisp thread screen shows the brief sections, the full activity timeline and the linked items (read-only, each opening its item).

The multi-tab chat page is Breeze AI, at /ai/chat. It has the same tabs (up to five; open tabs survive a reload) and shortcuts, and it works with Wisp off. The old /workspace and /wisp/chat addresses redirect to it, and old #session=<id> links still open their tab. When you have an active grant for the organization selected in the header (or a grant for all organizations), a new tab on the page starts under that grant, the way the side panel does, and the tab header says Wisp. With no active grant, Wisp off, or an organization-scoped sign-in, the tab is an ordinary chat and its header says Breeze AI. A conversation you open from history keeps whatever grant it started under. The side panel speaks as Wisp only while you have an active grant; there is no toggle. Its Open in Breeze AI control moves a conversation to the page. See Breeze AI.

Breeze AI and the docked panel use the same message list as the Wisp home, so tool activity folds into one line there too, and the composer sends on Enter and adds a line on Shift+Enter.

Wisp keeps a bounded working set of the records you are discussing. Its pills appear in three groups, in this order:

  • Pinned. Records you pin from the picker or a record page, plus records Wisp explicitly pins during a conversation. Pins stay until removed; a thread holds up to 50. Wisp’s pins carry an Added by Wisp marker.
  • Open concerns. The subjects of open and snoozed concerns. These are derived from the concerns, so there is no separate remove action. They leave this group when the concern resolves. A record that is already stored appears once under its stored source.
  • Recent. Records Wisp reads individually or changes in a successful tool call. List and fleet searches do not add records. A thread holds up to 20 recent records; the least recently touched recent record drops out when that cap is reached. Pins are kept. Recent records fade after 24 hours without being touched.

Select a pill to open its record. Use Pin on a recent record to keep it, Dismiss to drop it from the working set, or Remove on a pin. Dismiss removes the reference; a later focal action can add it again. The strip shows twelve records initially; More reveals the rest. Link an item opens the existing picker, which searches each kind’s normal list. Supported kinds include tickets, quotes, invoices, contracts, devices, organizations, sites, alerts, agent runs, operator tasks and users.

Device, ticket, quote, invoice, contract and organization headers have a Talk to Wisp button. With an active grant, it opens the docked Wisp chat and pins the record. When Wisp is focused on a different organization, an inline question offers to switch focus. Choosing No stops the action. If the composer is empty, the button prepares About {record label}: and focuses it; an existing draft is kept. It never sends a message for you.

Without an active grant, the control reads Ask AI about this and opens an ordinary AI chat with a draft about the record.

The docked chat receives record context from ticket, quote, invoice, contract, organization and site pages, as well as device context on device pages. The server reads the record and checks current permissions before including it in the prompt. The page label is a display hint, not authority to read a record. Wisp’s seed also checks access to working-set records against the live grant ceiling.

Working-set labels, status and destinations are read from the records each time:

  • A record you can no longer access, or that is outside the grant, is hidden; a stored reference can reappear if access returns.
  • A deleted record disappears.
  • Renaming a record updates its pill label.
  • Removing a stored reference does not require an active grant.

A reference gives Wisp a handle to the record (kind, id and label); the record body is read through the usual authorized tools.

A grant is the standing permission you give Wisp.

  • Self-only. You can grant Wisp to work for you, not for someone else. A grant is never shared.
  • Scope. Either partner-wide or one organization. You can hold one live grant per scope.
  • Reach is a snapshot. The grant records what you can reach at the time. If your access later shrinks, Wisp’s does too; if it grows, you refresh the grant to widen it.
  • 90-day expiry. A grant lasts 90 days. Refreshing re-snapshots your current reach and renews the 90 days.
  • A conversation keeps the terms it started with. Refreshing does not change a conversation that is already open; the header says so and offers Start a new conversation, which runs on the refreshed grant.
  • Revoke. You, or a partner admin, can revoke a grant at any time. Turn off Wisp in the thread header revokes your grant. A revoked or expired grant ends the delegation: Wisp stops working for you and its threads close. Their conversations, concerns and activity are no longer shown. To use Wisp again, start a new grant.

A grant can be paused rather than ended. You can pause and resume it yourself, and Wisp stays quiet while you are paused. Breeze also pauses a grant by itself, and shows the reason:

Reason What it means
Access changed You no longer have access to any of the organizations the grant covers, so Wisp stopped. (If your access only narrows, Wisp keeps going with the smaller reach.) Review and refresh the grant.
Account suspended Your account is suspended.
Sign-in check expired Your MFA confirmation lapsed. Confirm it and resume.
Plan no longer includes Wisp The partner lost the entitlement. Grants pause rather than disappear.
Partner disabled A partner administrator turned Wisp off for the company; see Turning Wisp off for your company.
Wisp acts alone Wisp asks first Wisp never
Reads anything you may see. Drafts ticket replies. Nudges you. Opens a ticket from an alert that an existing rule already turns into a ticket. Re-runs a check. Schedules a sweep. Stages work in a sandbox. Sends anything to a client contact. Closes or reassigns tickets. Applies or edits a configuration policy. Runs a script on a device. Changes alert thresholds. Anything billing. Anything that grants access. Acts outside the authority of the person it works for. Lets a sub-agent exceed that authority.

“Asks first” means an approval card in the Approvals inbox, on web and mobile. Approving is a decision by a person; Wisp cannot approve for itself.

A partner administrator can switch Wisp off for the whole company. Go to Settings → AI Agents and use the Wisp enabled switch on the Wisp card. It is set at partner level only (there is no per-organization override), is on by default, and changes autosave with a confirmation toast. Users who are not partner administrators see it read-only.

When the switch is off:

  • New grants, resume and refresh are refused.
  • Every active grant is paused (reason partner_disabled, shown as “Partner disabled” on the admin overview) at its next scheduled check. Saving the switch also triggers an immediate check. Nothing is deleted.
  • On the Wisp home, someone with no grant is told that an administrator turned Wisp off, instead of being offered Put Wisp to work.

When you turn it back on, only grants that this switch paused resume. A grant you paused yourself, or one paused because the plan lost Wisp, stays paused.

This is a governance control. Your plan is the commercial gate and the deployment switch is the operator’s kill switch; none of the three overrides another.

Wisp tells you about a concern once, with one subject, one suggested next step and a link to the thread. If you ignore it, Wisp backs off rather than repeating itself, and after two unanswered nudges a concern moves to your in-app digest.

You control delivery in your nudge preferences:

  • Channels. In-app and push, each on or off.
  • Quiet hours. Wisp respects your quiet hours. You can let urgent items through (urgent only) or never.
  • Proactivity dial. quiet, normal (the default) or chatty.
  • Digest cadence. How often batched items arrive (default every four hours).
  • Morning brief. A short summary at a time you choose (default 08:00) in your timezone.

Every nudge accepts feedback, and Wisp uses it to tune what it raises. The thread page also shows an activity feed of what Wisp did and a spend meter.

Every morning brief, concern nudge and digest is also kept on the Wisp thread as a post. Wisp records the post whatever your channel settings are, so it is kept even when both the in-app and push channels are off. Clearing notifications does not remove these posts. A retried delivery never creates a duplicate, because each delivery produces one post. The budget notice and other system notices are not posts; they stay notifications only. A paused thread still shows its history, and a revoked or expired delegation does not.

Wisp keeps short notes: your preferences, standing instructions, facts, and decisions (“leave that firewall alone until the renewal”). Notes belong to you, to an organization or to the partner.

Wisp writes notes; people confirm, correct or retract them. Open Settings → Wisp memory (/settings/wisp-memory) to review what Wisp has recorded and retract anything wrong. Each note is attributed to Wisp acting for you.

Everything Wisp does under a grant (assessments, specialist runs, tasks) is metered against that grant’s daily budget, in cents of AI spend.

Plan Default daily budget per grant
Pro 200 ¢
Enterprise 500 ¢
Unlimited 1000 ¢

A partner admin can raise a grant’s budget up to 5x the plan default, never beyond the plan ceiling. The budget window is the UTC day. When a budget is exhausted, Wisp makes no further model calls under that grant until the window resets: assessments and specialist requests are skipped, while events are still recorded as concern updates by plain code and appear in your digest. The grant itself stays on (it is not paused), and the thread’s spend meter shows the budget as used up.

When a concern needs focused work, Wisp can ask a specialist to do it. A request names a kind and a reason. Specialists are limited to one level deep: a specialist cannot request another specialist.

Kind What it does Starts
sweep Collects evidence across the estate On its own
analysis Runs sandboxed analysis over staged data (see AI Analysis Runs) On its own
operator_recipe Runs an AI task recipe After you approve
patch_plan Drafts a patch plan After you approve
remediation_research Researches a fix for a problem After you approve
bulk_ticket_reply Sends one message to a list of tickets (for example, everyone hit by the same outage). The approval card shows the exact tickets and the exact message; no ticket is added after approval, and the batch stops at the first failure and reports After you approve

The kinds marked “after you approve” appear as an approval card; nothing starts until a person says yes. When you approve one, it runs with your authority at that moment, and every normal gate still applies. Anything the specialist then wants to change creates its own approval, as usual. Specialist requests count against the same daily budget.

launch_specialist itself runs only sweep and analysis on the call. operator_recipe, patch_plan, remediation_research and bulk_ticket_reply escalate to a supervised Tier-3 approval in chat.

Two refusals are user-visible. bulk_reply_incomplete means a bulk reply stopped part-way; what was sent and what was not is stored on the intent. uncertain means Wisp could not tell whether the work had taken effect, so it did not retry.

Work started this way is labeled Wisp for followed by the person’s name on the agent run and the Operator task detail pages, so the audit trail shows who it was done for. Platform admins also have an /admin/wisp page with fleet-level health and counts.