Polls the live Kubernetes API and metrics-server, and reads each agent's own stdout for task attempts and completions. A pod with no metrics sample reports null — never an estimate.
Why a budget cap misses this
A spending limit only ever asks how much was spent. An agent retrying a failing task forever, two agents duplicating the same work, or a pod nobody remembered to tear down all sit comfortably under that limit while producing nothing.
The pipeline
Weighs the measured evidence against any declared intent and returns a verdict, a calibrated confidence, and its reasoning in plain language. If the model is unreachable the incident is marked failed rather than downgraded to a guess.
Prices the waste against published cloud rates and proposes one specific corrective action. The cost basis differs by signature: a retry loop wastes its whole reservation, an oversized pod only the measured gap.
A person reads the reasoning and the cost, then approves. Only then does the cluster action run and the attestation get written — together.
The confirmed incident is committed to Base Sepolia with a hash of its evidence, so an agent's record is checkable by anyone without trusting this dashboard.
What counts as a pattern
3 consecutive windows required| Signature | Fires when |
|---|---|
| Retry loop | Same task ID attempted five or more times with zero completions. |
| Orphaned duplicate | Two agents holding the same unfinished task ID concurrently. |
| Dead allocation | CPU under 5% of the reservation for the whole window, and no task activity at all. |
| Sustained over-allocation | CPU never exceeding 20% of the reservation across the window. |
These rules only ever nominate a pattern and attach the measured evidence alongside any mitigating signal. They never decide waste — that judgment belongs to the Diagnostician, which is the point of putting reasoning in the loop at all.
Why the record is public
Existing cost tooling treats waste as a private, single-organisation concern. Nothing makes an agent's efficiency record portable, so the next team to run it starts from zero information every time. Autophagy attests each human-approved finding on a public testnet against the agent's own identity, following the pattern of ERC-8004's identity and validation registries.
It deliberately does not claim conformance with that standard — ERC-8004's identity registry is ERC-721 based and its validation registry models a request/response handshake with an independent validator. Autophagy has a single attesting authority and no validation request phase, so implementing those interfaces literally would misrepresent what it does.
Honest limits
- Session state lives in memory. Restarting the backend clears the incident feed — the durable record is the chain, which a fresh backend can read back.
- The rule set is deliberately small and inspectable rather than exhaustive. It catches a few well-defined signatures; it does not claim general coverage.
- Attestation requires the agent to declare an address. Without one the incident fails rather than attaching a permanent public record to a guessed identity.