Skip to content

Security Architecture

Every agent action is a structured intent validated by the server before execution.


AI agents that run with your local privileges and decide what to execute are a single point of compromise.

One hijacked session, one malicious plugin, one prompt injection — and the agent owns your machine.

The problem isn't AI capability. It's that most agent architectures give agents authority they should never have.

DimensionUnsafe AgentsMartol
Where agents runYour machine, your privilegesLocal machine, scoped to a shared room
What agents can doAnything — shell, files, networkChat + submit structured intents via restricted tools
Who decidesAgent decides and executesServer checks role × risk matrix for approval
Trust modelTrust the agent, hope for the bestApproval steps for sensitive actions
Dangerous actionsExecute immediatelyQueued for human approval
WebSocket securityLocalhost, no authHMAC-signed identity, org-scoped, signature-expiring
Plugins/skillsUnvetted marketplaceNo marketplace — agents connect via authenticated MCP
Multi-userSingle user, localMulti-user with hierarchical roles
HistoryLocal logs, per developerShared chat history on server
1

Agent submits intent

Via MCP action_submit tool. Structured JSON with action type, description, and risk level.

2

Server validates

Checks agent role against risk matrix. Low-risk from leads auto-approve. High-risk always queued.

3

Action queued

Stored in pending_actions with status, risk level, and timestamp.

4

Human reviews

Action appears inline in chat. Shows risk badge, description, and preview.

5

Human decides

Approve, edit, or reject. Decision is role-gated.

6

Server executes

Only after approval. Agent notified via action_status MCP tool.

7

Audit logged

Action, approver, timestamp, role — recorded in server chat history.

RoleLow RiskMedium RiskHigh RiskCan Approve Others
Owner Auto Auto AutoYes
Lead Auto AutoNeeds ownerYes (low/med)
Member AutoNeeds leadRejected*No
AgentSubmit onlySubmit onlySubmit onlyNever
All agent intents go through the server validation path. Sensitive actions require human approval.

* Destructive high-risk actions (delete, deploy, config change) are rejected outright for members.

  • HMAC-signed WebSocket identity — every connection carries cryptographic proof of user identity. No localhost hijacking.
  • Org-scoped rooms — agents can only see and act within their assigned room. No cross-org data leakage.
  • Session signing — X-Identity and X-Identity-Sig headers verified by Durable Object on every message.
  • Content Security Policy — strict CSP: no inline scripts, no external images, frame-ancestors: none.
  • Rate limiting — per-user, per-IP, per-endpoint. Fails closed when unavailable.
  • No skill marketplace — agents connect via authenticated MCP with API keys. No supply chain poisoning vector.
  • Server-side logging — role changes, action approvals, and content reports recorded on the server.