{"criteria_id":"observability-readiness/v1","service":"agent-observability-readiness-check","version":"1.0.0","source":"Record categories as named in the Partnership on AI's study of widely used agent frameworks, reported by MIT Technology Review, 2026-10-29: https://www.technologyreview.com/2026/10/29/1147824/monitor-ai-agents-actions-real-time/","what_is_checked":"Whether a submitted sample from an agent deployment shows the records an auditor needs, in four categories. The check reads only material the operator submits about their own deployment.","scope":"This check verifies that the named audit records are emitted and shaped correctly in the material you submitted. It does NOT certify that an agent is safe, and it says nothing about any deployment or behaviour beyond the submitted sample.","retention":"Submitted material is processed in memory only and is never stored. The payments ledger records only the payer, the time, the price, and the per-category outcomes (present/absent/misshaped) — never the submitted content. Because nothing is kept, a paid retry re-sends the sample.","input_contract":{"format":"JSON POST body","fields":{"caller":"Solana base58 wallet of the operator (required for the free pre-check; keys the free allowance). On the paid report the payer is read from the payment itself.","framework":"optional label for the deployment's framework (descriptive only; never changes a status)","deployment_label":"optional short label, echoed in the report; never stored","config":"optional object: the deployment's framework/config description (key/value)","trace":"optional array of event objects: a sample trace/log the operator generated","trace_text":"optional string: the same sample as JSONL or plain log lines"},"caps":{"max_body_bytes":262144,"max_trace_events":2000,"max_text_lines":5000},"sample_basis":"Statuses describe the SUBMITTED SAMPLE. A record type absent from a small sample may exist elsewhere in the deployment; the report's sample block states how much material was examined and flags small samples."},"scoring":{"per_category_points":{"present":2,"misshaped":1,"absent":0},"score":"sum over the four categories, range 0-8","verdict_line_rule":{"8":"READY — all four auditor record types are emitted and well-shaped in the submitted sample.","5-7":"PARTIALLY READY — most auditor record types are emitted, but at least one is missing or misshaped in the submitted sample.","0-4":"NOT READY — most auditor record types are missing or misshaped in the submitted sample."},"reproducibility":"Given the same sample, anyone applying these rules by hand reaches the same statuses, score, and verdict line. The full report (paid) shows the per-category evidence the statuses rest on."},"categories":{"persistent_agent_id":{"question":"Do the deployment's records carry ONE persistent agent identity?","record_fields":["agent_id (or agentid, actor_id, bot_id, construct_id, assistant_id, agent.id, actor.id, identity.id)"],"present":"Trace submitted: exactly one distinct agent-ID value across the sample, stamped on at least 50% of records. Config-only sample: the config declares one static (non-ephemeral) agent ID.","misshaped":"An ID field exists but there is more than one distinct value; or coverage is below 50%; or the config declares an ID the sampled records do not carry; or the configured identity is session-scoped/ephemeral.","absent":"No agent-ID field anywhere in the sample and none declared in config."},"human_approval_records":{"question":"When a human approves or denies an agent action, is a complete record emitted?","record_fields":["an approval-type event (type matches approval / hitl / human-in-the-loop / human-review / sign-off, or a record carrying both a decision and an approver)","decision: one of approved, denied, rejected, granted, accepted (or an approved: true/false field)","approver: approver, approved_by, decided_by, reviewer, human_id, authorized_by, or signed_by"],"present":"At least one approval record carrying BOTH a decision outcome and an approver identity.","misshaped":"Approval records exist but none carries both components (the missing components are named in the report).","absent":"No approval-type records in the sample. A config flag enabling an approval gate is noted as evidence but is not itself a record."},"permission_change_log":{"question":"Are grants, revocations, and scope changes recorded as they happen?","record_fields":["a permission-type event (type matches permission / privilege / role / scope / acl / access) with change semantics (change/grant/revoke/update in the type, or a change/direction field)","what changed: permission, scope, role, resource, or capability","direction: granted vs revoked (from the type or a change field)","who: actor, subject, user, account, principal, target, grantee, or changed_by"],"present":"At least one permission-change record carrying what changed, the direction, and who was affected or made the change.","misshaped":"Permission-change records exist but are missing one or more of those components (named in the report).","absent":"No permission-change records in the sample."},"memory_change_log":{"question":"Are memory writes, updates, and deletes recorded as they happen?","record_fields":["a memory-type event (type matches memory / remember, or a record carrying memory_key / memory_id) with an operation: write, update, delete, store, forget, create, or erase (in the type or an operation/op/action field)","which entry: memory_key, key, memory_id, record_key, namespace, or id"],"present":"At least one memory-change record carrying BOTH the operation and the memory entry's key/id.","misshaped":"Memory-change candidate records exist but lack the operation or the key/id (named in the report). Read/retrieval records are counted separately and never make this category present.","absent":"No memory-change records in the sample."}},"prices":{"precheck":"free — headline only, 100/day per caller wallet, rate-limited (minimum interval between free pre-checks)","report":{"usd":0.05,"includes":"$0.05 buys one full observability readiness report for one submitted deployment sample: a readiness verdict line and score under the published criteria (GET /criteria), the status of each auditor record type (persistent agent ID, human-approval records, permission-change log, memory-change log) with evidence drawn from your sample, and a concrete fix list for every record type that is missing or misshaped. This check verifies that the named audit records are emitted and shaped correctly in the material you submitted. It does NOT certify that an agent is safe, and it says nothing about any deployment or behaviour beyond the submitted sample."}}}