<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: He Huang</title>
    <description>The latest articles on DEV Community by He Huang (@hehuang).</description>
    <link>https://dev.to/hehuang</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4169107%2Fd360c1c0-4a6e-4627-8b52-540a0ee7136e.png</url>
      <title>DEV Community: He Huang</title>
      <link>https://dev.to/hehuang</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hehuang"/>
    <language>en</language>
    <item>
      <title>1,024 clones, one blind spot: who checks the FACTs?</title>
      <dc:creator>He Huang</dc:creator>
      <pubDate>Sun, 25 Oct 2026 13:39:18 +0000</pubDate>
      <link>https://dev.to/hehuang/1024-clones-one-blind-spot-who-checks-the-facts-4bok</link>
      <guid>https://dev.to/hehuang/1024-clones-one-blind-spot-who-checks-the-facts-4bok</guid>
      <description>&lt;p&gt;Agensh (arXiv:2609.26781) is a genuinely interesting experiment: a leaderless harness where workers claim subtasks, share findings on a common board, and merge into a shared repo, scaled to 1,024 agents. We read the paper closely and want to raise three points we could not find addressed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Every worker is the same model.&lt;/strong&gt; All configurations run gpt-5.6-sol. Peer review among identical weights is self-review: errors are correlated, not independent. Human organizations gain error-correction from diversity of their members; a clone army gains parallelism only. The returns curve is consistent with this reading — going from 1 to 8 agents adds 1.37 points, and 128 agents add 9.47 points in total. Without a control condition (N independent solo runs, merged by test outcome), the gains cannot yet be attributed to organization rather than to parallel attempts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The shared board exempts its own claims from checking.&lt;/strong&gt; The worker prompt (Appendix A) instructs: "Do not rederive a peer's FACT, and do not retry something recorded as FAIL." A wrong FACT, once posted, is institutionally protected from re-examination and will be consumed as ground truth by every other worker. In a system built on a shared context, the integrity of that context is the whole game — yet the paper reports no measurement of false-FACT propagation, and no mechanism whose job is to challenge a claim against its evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. There is a missing layer, and it is not an orchestrator.&lt;/strong&gt; We agree a central planner does not scale. But between "one boss assigns everything" and "nobody checks anything" there is a third option: an independent boundary judge at the two moments a claim becomes organizational truth — when a FACT is written to the shared board, and when a PR merges to main. Such a judge does not plan, assign, or manage. It checks one relation: does this claim stay within the evidence attached to it?&lt;/p&gt;

&lt;p&gt;We work on exactly this layer. ST21-Door is a boundary judge for AI outputs: given a claim and its stated basis, it returns ALLOW / BLOCK / NEEDS_EVIDENCE based on whether the claim exceeds its basis — it does not judge whether the answer is right, only whether the claim is entitled to be made. Our public audit of 13 real-world AI incidents, with reproducible claim–basis–verdict triples, is here: &lt;a href="https://github.com/Stone21-SaaS/ST21-Door-Public" rel="noopener noreferrer"&gt;https://github.com/Stone21-SaaS/ST21-Door-Public&lt;/a&gt; — and a public trial endpoint is linked from that repo.&lt;/p&gt;

&lt;p&gt;Agensh's FACT and PATCH_SUMMARY entries already carry an &lt;code&gt;evidence=&lt;/code&gt; field. They are, structurally, claim–basis pairs. We would be glad to see them audited the way production claims deserve — and happy to help anyone on the team run that check.&lt;/p&gt;

&lt;p&gt;— The ST21-Door Research Team&lt;/p&gt;

</description>
      <category>ai</category>
      <category>multiagent</category>
      <category>agents</category>
    </item>
    <item>
      <title>The evidence chain breaks in three places</title>
      <dc:creator>He Huang</dc:creator>
      <pubDate>Fri, 23 Oct 2026 14:11:44 +0000</pubDate>
      <link>https://dev.to/hehuang/the-evidence-chain-breaks-in-three-places-34dl</link>
      <guid>https://dev.to/hehuang/the-evidence-chain-breaks-in-three-places-34dl</guid>
      <description>&lt;p&gt;NVIDIA shipped OpenShell this week: a kernel-level runtime for fleets of autonomous agents, with policy enforced on every file access and syscall, and formal verification applied to policy changes before they land. It is a serious piece of work, and the comments under it are the best discussion of agent isolation we've read this year.&lt;/p&gt;

&lt;p&gt;One of its open issues caught our eye:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;bug(server): WatchSandbox can hand out a resume cursor past an event it never delivered or reported&lt;/code&gt; — OpenShell issue #4829&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You get a cursor. The cursor points past an event that never happened. Nothing crashed. Nothing alerted. The client now believes it is caught up, and it is not.&lt;/p&gt;

&lt;p&gt;That is the whole problem in one line, and it is not a sandbox bug. It is an evidence bug.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three links in the chain
&lt;/h2&gt;

&lt;p&gt;Every claim an agent makes — "done", "all tests passed", "the record was updated" — rests on a chain:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Authority&lt;/strong&gt; — was this actor allowed to do this thing at all?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recording&lt;/strong&gt; — is there a faithful trace of what it actually did?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Judgment&lt;/strong&gt; — does the output stay inside what the material and task supported?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The industry has spent two years on #1 and is doing well at it. Least privilege, delegated tokens, service accounts, approval gates, kernel sandboxes, policy verification. When someone asks "can we let an agent touch production?", there is now a decent answer.&lt;/p&gt;

&lt;h1&gt;
  
  
  2 gets lip service and almost no discipline. Ask a team what they log and you usually get: timestamp, tool name, status code, latency. What you rarely get is the tool's response body, the material the agent was shown, or the exact task text. Which means when it goes wrong, there is no way to reconstruct the run. The log says &lt;code&gt;200 OK&lt;/code&gt;. The payload said &lt;code&gt;{"error": "..."}&lt;/code&gt;. The downstream system says nothing happened.
&lt;/h1&gt;

&lt;p&gt;The bug above is the same failure one layer down: the trace itself is wrong, and nothing in the system is checking the trace.&lt;/p&gt;

&lt;h1&gt;
  
  
  3 barely exists as a named thing. Given material M, task T, and output O, does O stay inside what M and T actually support? This is not a security question, not a latency question, and not a model-quality question. It is an evidentiary question, and no kernel or policy engine can answer it. An agent can follow every rule, read only allowed files, call only allowed endpoints, and still write a summary that claims more than the source did.
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Why #3 is the expensive one
&lt;/h2&gt;

&lt;p&gt;Because #1 and #2 fail loudly, and #3 fails quietly.&lt;/p&gt;

&lt;p&gt;A permission violation produces a log line and an alert. A missing payload produces a mystery that someone spends a day on. But an overstated summary produces a green check and a confident paragraph. It looks exactly like success. The failure only surfaces later, at the point where someone downstream acts on the claim — in a filing, in a report to a client, in a decision.&lt;/p&gt;

&lt;p&gt;And when it surfaces, the cost is not the wrong paragraph. The cost is that nobody can prove which paragraphs were right.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a judgment layer needs
&lt;/h2&gt;

&lt;p&gt;Three things, and none of them are exotic:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The triple.&lt;/strong&gt; Material, task, output recorded together, per run. Not the whole world — just enough that the run can be re-examined later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three verdicts, not a score.&lt;/strong&gt; ALLOW / BLOCK / NEEDS_EVIDENCE. The third one does most of the work: it is where silent tool failures and unsupported claims land. A score of 0.87 tells nobody what to do. "NEEDS_EVIDENCE" tells everybody.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A written standard.&lt;/strong&gt; What counts as "supported" has to be written down and auditable, or the evidence is just more material to argue about.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The part where we have a stake
&lt;/h2&gt;

&lt;p&gt;We work on this, so discount accordingly. We've been collecting real cases where an output went past its source — fabricated citations in court filings, summaries that turn "one paragraph says X" into "the document says X", tool calls that reported success while the payload said error. Thirteen of them are public here — each documented against its source; where the original output survives only in quotation, the case is marked as a reconstruction:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;https://github.com/Stone21-SaaS/ST21-Door-Public&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;There is a small trial endpoint that takes a material / task / output triple and returns one of the three verdicts:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;https://shishuanglu21.com/door/trial&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;(First call can take up to ~90 seconds cold — set your client timeout accordingly.)&lt;/p&gt;

&lt;p&gt;It is not a product pitch. It is a checker with a published standard, and the most useful thing anyone can do with it right now is try to break it — feed it a case where the output clearly overreaches and see whether it blinks, or a case where it is obviously fine and see whether it invents a problem. Cases where it gets it wrong are worth more to us than cases where it gets it right.&lt;/p&gt;

&lt;p&gt;The sandbox layer is being built by people with far more resources, and it will be good. The judgment layer has no such momentum — mostly because nobody has agreed on what to call it, let alone what it should decide.&lt;/p&gt;

&lt;p&gt;If that second problem interests you, the door is open. Literally.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Comments, counterexamples, and hostile test cases welcome.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;— The ST21-Door Research Team&lt;/p&gt;

</description>
      <category>aiagents</category>
      <category>security</category>
      <category>ai</category>
    </item>
    <item>
      <title>We Opened Our AI Prediction Game to Everyone — You Predict, the Door Judges</title>
      <dc:creator>He Huang</dc:creator>
      <pubDate>Sun, 11 Oct 2026 13:04:39 +0000</pubDate>
      <link>https://dev.to/hehuang/we-opened-our-ai-prediction-game-to-everyone-you-predict-the-door-judges-58j4</link>
      <guid>https://dev.to/hehuang/we-opened-our-ai-prediction-game-to-everyone-you-predict-the-door-judges-58j4</guid>
      <description>&lt;p&gt;We run a small public prediction game at ST21-Door-Public: predictions frozen in git with content hashes and timestamps, scored by Brier score over time. Round 1 — 10 predictions from our own team — is already live.&lt;/p&gt;

&lt;p&gt;Now we've opened a netizen track: anyone can submit predictions through a GitHub issue template.&lt;/p&gt;

&lt;p&gt;The twist: our Door — a boundary judge for AI agent outputs, not a fortune teller — acts as the settlement referee. It never predicts the future. It judges one thing: whether your "I called it" claim is actually supported by the evidence you submitted. If the claim overreaches the evidence, that's a BLOCK. Every verdict is published exactly as the Door returned it — wins and losses alike.&lt;/p&gt;

&lt;p&gt;No prizes, just for fun. And one rule we held hard through four rounds of review: we never claim the Door does anything it doesn't actually do.&lt;/p&gt;

&lt;p&gt;Game board: &lt;a href="https://github.com/Stone21-SaaS/ST21-Door-Public/tree/main/predictions" rel="noopener noreferrer"&gt;https://github.com/Stone21-SaaS/ST21-Door-Public/tree/main/predictions&lt;/a&gt;&lt;br&gt;
Invitation (how to join): &lt;a href="https://github.com/Stone21-SaaS/ST21-Door-Public/blob/main/predictions/INVITATION.md" rel="noopener noreferrer"&gt;https://github.com/Stone21-SaaS/ST21-Door-Public/blob/main/predictions/INVITATION.md&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>ST21-Door: a boundary judge for AI agent outputs</title>
      <dc:creator>He Huang</dc:creator>
      <pubDate>Wed, 07 Oct 2026 14:03:39 +0000</pubDate>
      <link>https://dev.to/hehuang/st21-door-a-boundary-judge-for-ai-agent-outputs-4ca1</link>
      <guid>https://dev.to/hehuang/st21-door-a-boundary-judge-for-ai-agent-outputs-4ca1</guid>
      <description>&lt;p&gt;A model can sound perfectly confident while saying something its own material never supported. I built ST21-Door to watch exactly that gap.&lt;/p&gt;

&lt;p&gt;It's a narrow judgment layer: you submit a triple — the material a decision rests on, the task being asked, and the model's output — and it returns one verdict: ALLOW, BLOCK, or NEEDS_EVIDENCE.&lt;/p&gt;

&lt;p&gt;The key idea: it's a boundary judge, not an answer judge. It doesn't decide what's true and doesn't grade arithmetic. It checks whether the output stayed inside the boundary of what the supplied material actually supports.&lt;/p&gt;

&lt;p&gt;Real examples from crash-testing it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Upgrading a decision into a precedent → BLOCK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Material: an online small-claims tribunal held an airline liable for its chatbot's misstatement (CA$812 award). Output: "the ruling sets a binding precedent." A tribunal decision isn't binding precedent — the output overstepped its evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Upgrading a restriction into a shutdown → BLOCK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Material: Google restricted AI Overviews in some scenarios after flawed answers surfaced. Output: "Google shut it down entirely." Not what the material says — BLOCK.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Staying inside the material → ALLOW&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Material: in 2006 the Philippine Supreme Court found no evidence of PepsiCo's negligence. Output: "the court found no evidence of negligence; PepsiCo won." → ALLOW.&lt;/p&gt;

&lt;p&gt;There's a live trial — self-service, no signup, the page issues a short-lived header: &lt;a href="https://shishuanglu21.com/door/trial" rel="noopener noreferrer"&gt;https://shishuanglu21.com/door/trial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Call contract on GitHub (MIT): &lt;a href="https://github.com/Stone21-SaaS/ST21-Door-Public" rel="noopener noreferrer"&gt;https://github.com/Stone21-SaaS/ST21-Door-Public&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd love adversarial test cases: what would you try to sneak past the door?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>llm</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
