Coverage of the friction matrix
Where each of the 29 issues in the Agent Friction Matrix stands. "Built" means working code with tests in this repo. "Built, both sides" means the agent side (agent-index) and the site side (the AgentFriendly middleware) both work over real HTTP, so any Python site can adopt it today; what is left is for sites, networks or other agents to take it up.
| # | Issue | Status | Where | What remains outside this repo |
|---|---|---|---|---|
| 1 | HTML noise eats tokens | Built | extract.py, agent-view |
|
| 2 | Search ranks for clicks, not answers | Built | Hybrid search in store.search and embed.py |
|
| 3 | Agents borrow the user's session | Built, both sides | Grants in identity.py, wallet in wallet.py, agent-index grant / revoke, verification in site.py |
Sites adopting grants; OAuth token-exchange issuance for sites that run OAuth |
| 4 | Context fills with repeated tool output | Built | cache.py reader diffs |
|
| 5 | JavaScript pages need a browser | Built | render.py |
|
| 6 | Forms driven by pixels or selectors | Built, both sides | Manifests and handlers in actions.py / site.py, call_action |
Sites publishing manifests |
| 7 | No scoped spending limits | Built, both sides | Mandates in payments.py, checked by the wallet and the merchant |
|
| 8 | Sites can't tell which agent acts for whom | Built, both sides | RFC 9421 signed grants, scope["agent"] |
Sites adopting grants |
| 9 | Bot detection blocks legitimate agents | Built, both sides | Web Bot Auth signing and key directories in httpsig.py |
Hosting the key directory; bot-management vendors listing the agent |
| 10 | Weak self-verification | Built (partial) | verify.py: numbers and names checked against the cited source |
Checking meaning, not just figures and names |
| 11 | Most sites have no action API | Built, both sides | AgentFriendly(handlers=...) serves the manifest's actions |
Sites adopting it |
| 12 | Over-exploration | Built | search before fetch |
|
| 13 | No freshness, canonical or spam signal | Built | provenance.py |
|
| 14 | Agents duplicate each other's work | Built | Shared cache and Fetcher.memo |
|
| 15 | Memory between sessions is ad hoc | Built | memory.py, agent-memory |
|
| 16 | OAuth scopes are coarse and long-lived | Built, both sides | One-site, one-hour grants; narrowest grant per request; signed revocation | Same as #3 |
| 17 | Checkout assumes a human with a card | Built, both sides | Mandate-signed checkout actions, ctx.charge |
Settling with real payment providers |
| 18 | Approval prompts are all or nothing | Built | approvals.py, enforced on every spend, send and delete |
|
| 19 | Long tasks have no checkpoints | Built | checkpoint.py, handoff |
|
| 20 | Handoffs pass free text | Built | checkpoint.py, handoff |
|
| 21 | robots.txt says nothing about terms | Built, both sides | sitepolicy.py; enforced by fetch, the crawler and the middleware |
Sites publishing policies |
| 22 | No discovery of who can do a task | Built (shared index scale) | Manifests from discover_actions and index_site stored in the index; find_action |
A public registry at web scale |
| 23 | Multi-step flows have no machine-readable steps | Built, both sides | Flows in actions.py, resumable on failure |
Sites publishing flows |
| 24 | Micropayments are impractical | Built, both sides | HTTP 402 with Agent-Price, auto-pay within policy |
Batched settlement with a payment provider |
| 25 | Pagination hides data | Built | next_url, crawl, scrolling in render.py |
|
| 26 | Errors are red text | Built, both sides | errors.py: structured errors on sites, any response normalized for agents |
|
| 27 | No shared trust or reputation layer | Built (index) + spec + prototype (agents) | Source accuracy in search; signed attestations in trust.py |
A public attestation log |
| 28 | No refund and receipt trail | Built, both sides | Durable hash-chained ledger, Agent-Receipts, refunds, receipt audit |
|
| 29 | No negotiation protocol | Built, both sides | /.well-known/agent-negotiate, negotiate tool, agreed price enforced at checkout |
Other agent frameworks speaking the protocol |