Build1 distinct publisher3 min readPublished
Sonjomon computes each action's autonomy from confidence and blast radius, which leaves a risk registry in code doing the load-bearing work while the confidence half rests on a number the model reports about itself.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
The policy layer in Sonjomon, Bengali for restraint [1], is deterministic code installed as ADK's `before_tool_callback`, and returning a dict from that callback cancels the tool call and hands the dict back to the model as its reason [8]. That is the config detail carrying the design. The model cannot execute what the policy denied, and it is told why instead of retrying the same command in a loop [8]. It also never supplies its own risk number: it proposes an action name and a registry in code returns the blast radius, on the author's reasoning that a confidently wrong model could otherwise talk itself into a rollback by labelling it low risk [6].
The other axis is softer, and the author lists it among the things he got wrong. He set the ACT floor at 0.90 before watching the model behave, and Gemini's self-reported confidence for a well-evidenced diagnosis clusters between 0.85 and 0.95 [17]. The midpoint of that band is 0.90 [18]. So the threshold sits in the middle of the distribution it is meant to cut. A rollback is graded high risk because it shifts production traffic, and a needless one during a real outage extends the outage [4], which is precisely the tier boundary where a floor that separates nothing does damage.
For 95% to justify acting alone, that number would have to behave like a frequency: of the diagnoses reported at 0.95, about 95 in 100 survive independent checking. Fourteen live incidents against one deliberately fragile Cloud Run service cannot establish that [11], and the write-up does not claim it can. What would have to be true is a record of self-reported confidence against verified outcome, bucketed, over enough incidents to give each bucket weight. Until that exists, the confidence axis is a heuristic wearing a decimal point.
The blast-radius axis needs no calibration. Deleting data is classified critical and no confidence level unlocks it [5], which is a statement about the action rather than about the model, and it stays true when the model version changes. The IAM result is the other durable finding: the agent held `run.admin` on exactly one service and still could not update it, because Cloud Run needs `artifactregistry.repositories.downloadArtifacts` to pull the image for a new revision, and that gap surfaced only because the agent tried, failed, and logged the exact permission [15].
The shape of a refusal is what these systems should be judged on. A log line reading `confidence too low to even recommend`, at forty percent on ambiguous signals, is easy for any gate to produce [16]. The refusal worth having arrives with a reason a human can act on, and the author credits that to inference his registry and prompt did not contain [12].
Ranked by verification strength, evidence, and original report placement.
The author named the incident-response agent project Sonjomon, Bengali for restraint, and wrote it for the All Things Agentic Hackathon.
The write-up centres on the agent, at 95% confidence and having correctly diagnosed a bad deployment, deciding not to roll it back; the author says that refusal is the whole project.
Autonomy is computed as tier = f(confidence, blast_radius) across four tiers: OBSERVE (record findings, no action), SUGGEST (recommend to a human), APPROVE (stage the action, execute on explicit approval) and ACT (execute now, then verify independently).
A restart is graded medium risk because it is reversible in seconds; a rollback is high risk because it shifts production traffic, and a needless rollback during a real outage extends the outage.
Deleting data is classified critical, and no confidence level unlocks it.
The model cannot set its own blast radius: it proposes an action name and a registry in code supplies the risk. The author's stated reason is that if the risk table lived in the prompt, a confidently wrong model could talk itself into a rollback by calling it low-risk.
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 29, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
build
The demo passed because Cloud Run didn't scale: a correlation bug that emits no error1 distinct publisher
build
One instruction to delete the sample data surfaced three invisible defects in an hour1 distinct publisher
build
Cloud Run's agent card tells clients to reach the agent at 0.0.0.0:80801 distinct publisher
build
A self-healing scraper that must prove its repair against twelve records that cannot move1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Specific, entirely self-attested
The detail is the kind that could be checked — a named IAM permission string, a quoted log line, a test count, a confidence band — but every one of those numbers reaches us from the engineer who wrote the code, published under his own name on dev.to, with no repository or transcript pointed at. Design claims sit on firm ground because the author is the authority on his own gate; the fourteen-incident record sits on nothing but his word.
One author, one fragile service
This has been used exactly once, by the person who built it, against faults he injected into a service he made breakable on purpose. A single command ever touched production, and that production was his own; it failed on permissions. No team, no second operator, no artifact for anyone else to run.
Modest voice, one unclosed seam
This is the rare agent demo that opens with a refusal and gives a whole section to what went wrong, so the rhetoric is not inflated. The overhang is structural rather than tonal: restraint is presented as engineered, and half of it is — a risk registry the model cannot edit, a deterministic gate, a test that says 96% confidence still buys nothing destructive. The other half is a number the model reports about itself, and the author concedes his 0.90 ACT floor landed in the middle of Gemini's 0.85 to 0.95 band, which means part of the agent's celebrated hands-off record came from a threshold it could not clear.
Hackathon entry, judged on narrative
The piece exists to be read by hackathon judges, and 'my agent refused to act' is a better submission than 'my agent restarted a container'. That pulls toward a tidy arc. Pulling the other way, entrants do not usually publish the evening lost to Cloud Run CPU throttling, or the chaos injection that killed its own evidence, or the confession that their headline threshold was mis-set — and this one does.
Trust the mechanism, hold the results
Split the story in two and our confidence splits with it. How the gate is built, where it is mounted, what the registry withholds from the model — the author is the right witness for all of that, and the description is internally consistent. What happened across fourteen incidents, including the digest inference he says surprised him, rests on one person's log-reading with no corroboration anywhere in our coverage and no way for a reader to rerun it.