Back to Updates

Incognito and PII Filtering for Every Agent

ibl.ai Engineering
Applicationiblai/vibe

Every agent on the platform now has a Privacy tab with two sub-tabs: PII Filtering, which detects thirteen categories of personal information and allows, redacts, masks or blocks them before the model sees a message, and Incognito, which decides whether conversations with that agent are written to chat history and memory at all.

Every agent on ibl.ai now carries a Privacy tab with two sub-tabs β€” PII Filtering, which detects thirteen categories of personal information and allows, redacts, masks or blocks them before the model sees the message, and Incognito, which decides whether conversations with that agent reach chat history and memory at all β€” on a platform where you own all the code and the data.

The platform shipped Incognito into the OS interface (iblai-os-spa 0.163.0) and the SDK (@iblai/web-containers 1.37.0–1.38.0) the week before, recorded in the October 9 platform update.

The screens and the four-tier resolution landed in the iblai/vibe toolkit on October 8, 2026 and shipped in v2.12.0 on October 12, 2026.

PII filtering itself is older: the agent Privacy tab was first documented in the toolkit on May 25, 2026 (v1.2.0), then with three actions rather than four.

What happens to a Social Security number typed into a chat?

Whatever the agent's administrator decided. PII filtering is a per-agent capability with its own switch at the top of the sub-tab: "Automatically find and hide personal information β€” names, emails, phone numbers and more β€” in messages before the agent sees them."

Filtering runs on the way in, before the text reaches the model. An Also filter AI responses toggle runs the same detection over the agent's output on the way out.

The PII Filtering sub-tab of an agent's Privacy tab in ibl.ai, showing the pill switcher between PII Filtering and Incognito, the capability toggle switched on, a When PII is detected dropdown set to Redact, thirteen entity-type chips including Person, Email, Phone, SSN, Credit Card, Passport and Medical License under the hint Using defaults, and an Also filter AI responses toggle switched off.

When PII is detected offers four actions, each with its own on-screen description:

Action What reaches the model
Allow The message, untouched. Detection still runs, for monitoring or auditing without altering what people write.
Redact (default) The value replaced with its type β€” Email [EMAIL_ADDRESS].
Mask The value hidden behind asterisks.
Block Nothing. The message is rejected and the block message you wrote is shown to the person instead.

Choosing Block reveals a Block Message field, so the refusal is your institution's wording rather than a generic error.

The When PII is detected dropdown set to Block, with the helper line the message is rejected and your block message is shown to the user, above a Block Message textarea holding the default wording: your message contains sensitive personal information and cannot be processed, please remove any personal data and try again.

Entity Types is a row of thirteen chips β€” Person, Email, Phone, SSN, Credit Card, Location, Date / Time, Passport, Driver's License, IP Address, IBAN, Medical License and Bank Number. Select none and the hint reads "Using defaults."

Who decides whether a conversation is saved at all?

Four tiers do, and the Incognito sub-tab is one of them. Incognito keeps a conversation out of chat history and memory; the question of who may turn it on is answered in this order, highest first.

Tier Who sets it Where
Agent policy Agent administrator Agent β†’ Privacy β†’ Incognito
Organization gate Administrator Account β†’ Advanced β†’ Allow users to control chat privacy
This conversation The person chatting The Incognito toggle in the chat header
User default Each person Profile β†’ Privacy

The agent tier is three radio cards. Users Decide leaves it to the person. Always Incognito makes every conversation with that agent incognito, for anyone, and locks the header pill on.

Never Incognito removes the toggle for that agent β€” and people whose own default is Incognito are saved anonymously instead, rather than silently losing the protection they chose.

The Incognito sub-tab of an agent's Privacy tab in ibl.ai, introduced by the line Incognito keeps a conversation out of chat history and memory, choose how it works for this agent, above three radio cards: Users Decide (selected), Always Incognito, and Never Incognito, each describing what it does to conversations with that agent.

One control writes both underlying flags in a single save, so the contradictory "always and never" pair cannot be configured from this screen at all.

How does an application know which tier won?

It asks. Over the platform's REST API, one endpoint resolves all four tiers for a given organization, user, agent and session, and answers three things: the resolved mode, the source that decided it, and whether the result is locked.

The three modes are normal, anonymized and disabled β€” and disabled is Incognito. That resolved answer is what lets a chat header render an honest locked state with a tooltip explaining which tier decided, instead of a toggle that quietly does nothing.

Saving an Incognito card also refreshes that resolution and the agent's public settings, so an open chat's pill locks, unlocks or disappears without a reload.

What does Incognito actually withhold?

The message text. No chat-history row is written for an incognito turn and nothing from it feeds memory β€” and a chat started in Incognito is created with no owner at all, so the guarantee rests on a missing ownership record rather than a flag someone can flip back.

Each turn is still recorded against the user for usage, so an incognito conversation still counts against consumption. What Incognito withholds is the history row and the memory write.

Turning Incognito on mid-conversation is the one action that asks first, because it is the one that is easy to misread β€” the earlier messages do not disappear.

The Enable Incognito for this chat dialog in ibl.ai, explaining that from here on new messages in this conversation will not be saved and the assistant stops using earlier messages, that earlier messages stay saved in history, and that Incognito can be turned off again anytime, with Cancel and Enable Incognito buttons.

Turning it back off, and either direction on a chat with no messages yet, act immediately with a toast.

Once an ownerless incognito chat holds messages it can never be converted back: the toggle locks, and its tooltip points the person to a new chat.

Can a person set their own default rather than per chat?

Yes. The Privacy tab of each person's own profile sets a default Incognito setting across three options β€” Normal, Anonymized and Incognito β€” with the platform's own description of each on screen.

Anonymized is the middle ground that is easy to miss: conversations are still saved for context, but stripped of the identifying account information.

The Privacy tab of a user profile in ibl.ai, headed Default Incognito Setting, with three cards: Normal (selected), Anonymized, and Incognito, each describing how conversations with AI agents are recorded under that choice.

That tab is the successor to the Default Private Mode panel covered in User Profile and Organization Settings β€” same place in the profile, renamed, and now one tier of four rather than a standalone preference.

What happened to Private Mode?

It is called Incognito now, on every surface: the chat toggle, the agent's Privacy tab, the profile tab, the toasts and the dialog. The agent-level switch also moved β€” it used to sit among the capabilities on the Settings tab and is now the Incognito sub-tab beside PII Filtering.

Three underlying wire fields keep their older names β€” disable_chathistory, disable_privacy_mode and chat_privacy_mode β€” so nothing built against the API breaks on the rename.

That is the kind of detail a platform you host yourself can afford to get right, because the upgrade is yours to schedule.

Which of these can an administrator lock down?

All of them, field by field. With role-based access control enabled, seven fields on this tab carry independent permissions β€” the PII capability switch, the action, the block message, the entity list, the response filter, and the two Incognito flags.

A field someone may read but not write renders disabled rather than hidden, and when nothing on the tab is readable it shows a single notice instead. Members typically see Incognito read-only and no PII Filtering at all.

Underneath the agent's own policy sits the organization gate in Account β†’ Advanced. With it off, user control disappears everywhere β€” no Incognito sub-tab, no profile Privacy tab, no chat toggle.

Unless an agent's policy already decided, the resolver then answers normal and names the organization as the tier that decided.

What does this change for a regulated buyer?

It moves two decisions a compliance team actually gets asked about β€” what personal data reaches the model and what gets retained β€” out of a model vendor's console and onto screens inside a deployment you control.

Both are per agent, which matters more than it sounds. An intake agent handling applicant records and an internal research agent do not need the same retention posture, and a single organization-wide switch forces the stricter one onto both.

The PII filtering panel is documented in Agent Settings: Privacy. Both sub-tabs ship as the iblai-vibe-agent-privacy skill in iblai/vibe, with the chat toggle in iblai-vibe-incognito β€” 68 releases from v1.2.0 on May 25, 2026 through v2.12.0 on October 12, 2026.

Apps built with Agentic Vibe mount the same components; Agentic OS runs them today.

1.6M+ users across 400+ organizations run the platform this way, including NVIDIA, MIT, and Syracuse University.

Want to see agent-level privacy controls on your own stack?

We can walk your privacy and security teams through PII filtering, Incognito policy and the four tiers that resolve it, on infrastructure you own. Book a 30-minute demo or talk to the ibl.ai team β€” ibl.ai is family-owned and operated from New York, NY.