Put PolyphonyAI's visibility inside your own agents.
The same control over what each agent sees that powers the app, as a plugin you drop into your own agent stack. You decide what each agent can read and store. The rule is enforced, not hoped for.
The app is one way in. This is the other.
PolyphonyAI the app is a finished experience: open it, run a team of agents, steer who sees what. But some teams already have their own agent stack and do not want another app. They want the one thing that makes PolyphonyAI different, brought into what they have already built.
So the capability ships two ways. Same idea, same on-screen inspector, met where you are. If you have used the app, the plugin will feel familiar, because it is the same visibility layer underneath.
Two pieces, one job: control the flow.
Context Inspector
See the exact context each agent is about to receive, with token counts, and remove anything it should not see before it is sent. The same inspector the app ships, rendered in your own UI.
Visibility Gate
Every write an agent tries to make is checked against your rules before it is stored. An agent's memory only ever holds what it was cleared to see.
Four ways to shape what an agent sees.
Every item an agent might receive resolves to one of four states, decided per agent and per label. The default is the most restrictive: an agent gets nothing it was not granted.
Full
The agent sees the item and who produced it.
Blind
The agent sees the contribution but not the author's name. The name is withheld and the content is shown, so work is judged on its merits, not its author.
Redacted
The agent sees the item with its sensitive spans masked before the model receives them. It masks the spans that match the patterns you declare (deterministic, policy-declared, not AI-scored). The agent knows an item exists without seeing the parts you held back.
Excluded
The item is never assembled into the agent's context. Not summarized, not referenced, absent, and it never enters that agent's memory.
Enforcement on the path, not a suggestion in a prompt.
The policy decision lives in a dedicated policy engine, separate from the code that enforces it. Decisions and enforcement are separated, and the enforcement sits directly on the request path.
Governance that matches how real teams work.
Clearances are the floor. On top of them you set the guardrails, roles, and exceptions an organization actually needs, and they compose with each other.
A live policy sandbox, not a config file you hope you got right.
Because every decision runs through one engine, you can interrogate and rehearse the policy without touching what is live.
You can explain any decision in plain language, preview a change with what-if, simulate its impact over recorded traffic, roll back to an earlier version, replay past decisions as of a prior policy, trace influence between agents, and apply an authenticated, audited edit when a change is right.
How the controls map.
For production-hardening specifics and how it fits your environment, see the integration docs.
Runs in your environment. Your data stays there.
It is self-hosted. You run it next to your agents, so nothing it processes is sent to us or any third party; it runs entirely on your own infrastructure.
Put the two gateways in front
Point your model calls and memory writes at the gateways instead of straight at the model and store. They expose a standard HTTP API, so language does not matter (a JavaScript/Node.js client is included).
Write your clearances as policy
Define who can see and store what in one policy file. It is the single source of truth, versioned like the rest of your code.
Render the inspector
Drop the inspector into your UI to show the assembled context, what was excluded, and a live decision log.
Teams building multi-agent systems that touch real data.
If you have several agents, sensitive context, and someone who needs to answer "which agent could see that, and can you prove it," this is the layer that gives you the control and the record. If you just want to run agents yourself, the app already has all of this built in.