
The core idea: A perception agent is an AI that can see and interpret visual interfaces — like screens, web pages, or documents — the way a human does.
What makes it different from regular AI:
| Regular AI | Perception Agent |
|---|---|
| Reads code or text | Also sees rendered visual output |
| Understands structure | Understands appearance |
| Knows what should be there | Sees what actually appears |
Practical example: A perception agent can notice that:
Key insight: Seeing is not enough on its own. The agent also needs ways to act on what it sees and communicate with humans about it.
Simple definition: A harness is a structured set of tools and interaction patterns built around the perception agent to make it more useful and collaborative.
Think of it like this:
The harness being built here has two first primitives:
Simple definition: A primitive is a basic, reusable building block — a fundamental tool that can be combined with others to build more complex workflows.
Why it matters: Rather than building one large complex tool, the team is releasing small, focused capabilities that anyone can build on top of.
Think of primitives like LEGO bricks — simple individually, powerful when combined.
When you and an agent are looking at the same screen, today you have to type a paragraph to explain what you see. This is slow and loses context.
Example of the old way:
"The button in the top right corner of the navigation bar, the one that says 'Submit', seems to be slightly misaligned and the border doesn't match the design..."
Example of the new way:
✏️ Draw a circle around the button directly on the screen.
On web pages:
On visual surfaces (documents, diagrams):
| Gesture | Meaning |
|---|---|
| Circle | "Look at this" |
| Cross out | "Remove this" |
| Arrow | "Move this here" |
Your annotation is saved as a structured artifact — a precise, machine-readable piece of feedback the agent can act on directly.
Key insight: The feedback itself becomes the context. Nothing is lost in translation.
Annotation is not just a 1-to-1 loop between you and the agent.
Anyone on a team can annotate:
That structured feedback can be sent to an agent or another human — replacing tickets and messages that lose context.
With large language models, generation is nearly instant. You can get a full application in 60 seconds.
But validation is still entirely manual and slow. You then spend 3 hours checking if it actually works.
This is the paradox:
Fast generation + Slow validation = No net time saved
Definition: Shared perception is the condition where both a human and an agent observe the same visual output and can each reason about its contents.
Why this matters: When the agent can see what it built — just like a human reviewer would — generation and validation can become one continuous loop instead of two separate phases.
Old model: Build → [stop] → Manually test → [stop] → Fix
New model: Build → Auto-verify → Fix → Auto-verify → Done
Step 1 — Trigger: After code generation, the agent invokes the Nova Act Visual Verifier skill
Step 2 — Render: The skill spins up the rendered application (the actual visual output)
Step 3 — Two layers of checks:
| Check Type | How it works | What it catches |
|---|---|---|
| Deterministic checks | Reads computed CSS directly from the DOM | Visual deviations (no AI needed) |
| Behavioral checks | Agent walks user flows end-to-end like a human tester | Functional regressions |
Important detail: Deterministic checks run first and don't require AI — they are fast, reliable, and rule-based. AI-driven behavioral checks follow for deeper functional testing.
These two primitives address two sides of the same problem:
| Primitive | Direction | Purpose |
|---|---|---|
| Annotation | Human → Agent | Communicate what needs to change precisely |
| Verification | Agent → Human | Confirm what was built matches intent |
Together they create a tighter feedback loop:
Human annotates issue
↓
Agent receives structured feedback
↓
Agent makes changes
↓
Agent verifies its own output
↓
Human reviews verified result
↓
(repeat as needed)
The team is releasing these tools publicly because:
"These interaction patterns get better with more people using them, breaking them, and building on top of them."
The open-source strategy:
PERCEPTION AGENT
(sees visual interfaces like a human)
|
| needs structured ways to
| communicate and validate
↓
PERCEPTION AGENT HARNESS
|
________|________
| |
ANNOTATION VERIFICATION
(Human → Agent) (Agent → Self/Human)
Point, draw, Check rendered output
describe what against intent,
needs changing automatically
The big idea in one sentence:
Perception agents become truly useful not just by seeing, but by having structured primitives that let humans and agents communicate precisely and validate continuously.