Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by Sergei Parfenov
It caught "partner" "pareja" in an IRS rule and missed "return" "devolución": an offline MT checker for translators
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle What I Built The IRS page on the failure-to-file penalty has a rule for small partnerships: "Each partner is either an individual (excluding nonresident aliens), or the estate of a deceased partner." An open machine-translation model turned it into «Cada pareja es una persona (…) o la herencia de una pareja fallecida». A pareja is a romantic partner; the IRS's own Spanish says socio.
What Agent Builders Can Borrow from OpenAI's Math Research
On October 6, 2026, OpenAI published mathematical results from an internal frontier model. The openai/math repository contains 722 manuscripts organized into 372 families, with Lean formalizations for many of the results. For engineers building AI agents, the release suggests a concrete experiment: apply its separation between proposing a result and independently checking it to the rules that update persistent memory.
Same Patient, Conflicting Documents: Can AI Preserve the Evidence?
This is a submission for the Kaggle Benchmarking Challenge What I Benchmarked In the first chronological run of one synthetic history, a record built from GPT-6 Luna's extractions returned the expected answer to 21 of 22 final queries. Yet it had lost an earlier source assertion, hiding a conflict before a correction arrived. The accepted value at the end was right; the documented history was incomplete.
The Test Looked Redundant. The Ninth Bug Needed It.
On a catalogue of eight implementations, a repeated-status test added no unique detection. Every candidate it rejected was already rejected by another check. I added a ninth implementation. The repeated-status test became the only check that caught it. That changes how I would apply the recommendation at the end of my previous article on AI-generated tests. I suggested reviewing a test by asking which plausible wrong implementation it rejects.
AI-Generated Tests Can Make Coding Agents Worse. Here's How to Check Yours
Originally published on sergei-parfenov.com. A bug fix can make every new test pass and still introduce a regression. Here is a deliberately constructed Python example, checked locally without an LLM. An order filter has three requirements: Omit the filter, or pass None: return all orders. Pass an empty list: return no orders. Pass a list of statuses: return only matching orders. The reported bug is that omitting the filter returns nothing.
Can Your AI Use What It Remembers?
An assistant correctly recalls a user's tree-nut allergy. Given a request for macarons, it supplies an almond-flour recipe without applying that allergy to the user. This is a recorded example from InMind, a July 2026 study of agent memory, using xMemory. The evaluations ask two different things: can the system retrieve a fact when the question names it, and can it bring that fact into a decision that needs it? The second question is the reason to give an assistant memory in the first place.
The Agent Knew It Was Wrong. The System Let It Ship
In 660 of 800 autonomous research runs, the agent found a serious flaw in its own work. It wrote the flaw down. Then it delivered the report anyway. The model did not fail to notice. The system failed to make noticing consequential.
Your Agent Planned the Right Tools. It Still Crashed the Machine.
Your agent needs four independent facts before it can approve a refund: the order record, the fraud score, the customer's history, the policy that applies. It correctly sees that all four calls can run in parallel. So it launches all four. The order lookup is cheap. The policy search is cheap. The fraud model loads a large checkpoint. The history job scans two years of events. Together they cross the worker's memory limit, the container restarts, and the refund never happens. The plan was correct.
The Model Scored 30%. The Harness Scored 100%. Which One Did You Benchmark?
On July 24, ARC Prize verified Claude Opus 5 at 30.16% on the ARC-AGI-3 public set. On August 21, NVIDIA reported the same model at 100.00 on the same set. The weights did not change. The code around them did. In between, MIT did the same thing (August 5), a group led by Impossible Research got to 98.98 (July 15), and OpenAI tripled GPT-5.6 Sol's score by flipping two API settings (July 29).
The Optimization That Was Too Good: Why Our Push Notifications Only Worked When You Weren't Looking
This is a submission for DEV's Summer Bug Smash: Smash Stories powered by Sentry. When I was building the push notification system for ShelfTalk — a real-time social app that won the GitHub Finish Up A Thon Challenge on DEV — I wanted to be considerate of my users. There's nothing more annoying than actively chatting in a web app and having your desktop ping you with a notification for the exact message you're currently reading.
Distilling Kimi Into Qwen Doesn't Give You Kimi. It Gives You Qwen With Kimi's Handwriting
On July 22, 2026, White House OSTP director Michael Kratsios accused Moonshot AI of distilling Anthropic's Fable 5 to build Kimi K3, and Treasury put sanctions on the table. No technical evidence was published, and researchers immediately pointed out the timeline problem: by K3's launch day, Fable 5 had been publicly reachable for roughly 18 days in total. Everyone argued about whether it happened.
I Found Two Bugs in Zulip. The Maintainers Had Filed Both Two Weeks Earlier.
This is a submission for DEV's Summer Bug Smash: Smash Stories powered by Sentry. I went hunting in Zulip's codebase for this challenge and found two real data-corruption bugs in the Slack importer. Solid ones: silent message scrambling during workspace migrations, the kind of bug that costs somebody a re-migration. Then I did the thing you are supposed to do before writing a single line of fix. I searched the tracker. Issue #39650.
This Bug Has Never Fired in Production. I Fixed It Anyway
This is a submission for DEV's Summer Bug Smash: Clear the Lineup powered by Sentry. Run this and predict the output: def batched(messages, chunk_size): batch = [] for m in messages: if len(batch) == chunk_size: yield batch batch.clear() batch.append(m) if batch: yield batch list(batched(range(12), 5)) Expected: [[0..4], [5..9], [10, 11]]. Actual: [[10, 11], [10, 11], [10, 11]] All three elements are the same list object. Ten of twelve messages are gone, no exception raised.
The Bug That Crashes Your Import Is the Lucky One
This is a submission for DEV's Summer Bug Smash: Clear the Lineup powered by Sentry. You are migrating a 50,000-message Slack workspace to Zulip. Somewhere around message 31,000 the import dies with KeyError: 'ts'. Annoying, but here is the uncomfortable part: that is the lucky outcome. The unlucky one is "ts": "NaN", where nothing dies, nothing warns, and your company's message history quietly comes out in the wrong order.
'World Models' Will Be the Next Buzzword. The Man Saying That Just Raised $1B to Build One
In March, the CEO of a research lab with zero products closed a $1.03 billion seed round — the largest in European history. Then he told TechCrunch that "'world models' will be the next buzzword," predicting that within six months every company would slap the label on itself to raise money. The CEO is Alexandre LeBrun. The lab is AMI Labs, Paris. The chairman is Yann LeCun. And LeBrun was right on schedule: VCs have pushed roughly $3B into the category since.
'Local' Solves Where Your Data Goes. It Doesn't Solve What Your Agent Does
Local models got good this year. Gemma 4's 12B runs agentic workloads in 16GB of RAM, GLM-5.2 tops the open-weight leaderboards under a permissive license, Qwen 3.6 does tool-calling that would've been frontier-only eighteen months ago. The "just run it locally" argument hit the top of Hacker News, and for once it wasn't cope — a model on your own hardware finally handles real work. So teams are moving agents on-prem, and the pitch is almost always the same: local means private, private means safe.
The Agent Faked a Test Log, Then Believed It. Self-Editing Harnesses Have a Provenance Problem.
Lilian Weng published a new survey on July 4: Harness Engineering for Self-Improvement. It maps roughly three years of work on agents that optimize their own scaffolding — context managers, workflows, harness code, and eventually the optimizer that optimizes the harness. Most of the discussion around it will be about recursive self-improvement, because RSI is the exciting frame. I read it with a different hat on.
My Strawman Baseline Beat My Own Scheme on Half the Gate Classes
Part 4 ended with a question I couldn't answer: has anyone actually measured what gate decisions do on the reconstructed provenance vector versus the original? Not argued from first principles. Measured. Nobody in the comments had data. Neither did I. So I built the harness: provenance-compaction-lab. Four arms, one oracle Four provenance-tracking arms observe the same synthetic trajectory — same seed, same degradation events, same merges.
Your Provenance Vector Dies at the Storage Boundary
Last post I argued that agent trust should be a typed provenance vector: carry what-degraded-and-how alongside each result, propagate it, let each consumer apply its own policy. The comments agreed on the model and then immediately found the two places it breaks in the real world. Both are load-bearing, both were things I hand-waved, and this post is about them. mote asked what happens when the agent runs 500 steps and the vector no longer fits in the context window.
Trust Isn't a Scalar: Typed Provenance for Agent Chains
Two posts ago, in the one about agents failing quietly, I handed you a fix for silent degradation: tag a degraded output trust="degraded", propagate the taint down the chain, and gate irreversible actions on it. Clean, shippable, and — as a commenter named Theo pointed out within a day — wrong in a way that matters. The tag was a boolean. And trust isn't a boolean. It isn't even a scalar.
The Most Powerful Model on the Market Got Pulled by the Government in 3 Days. Is It Real, or a Hype Bubble?
The timing is almost too clean to be real. On June 9, Anthropic shipped Claude Fable 5 — a "Mythos-class" model they described as more capable than anything they'd previously made generally available. Three days later, on June 12, the US Commerce Department sent a letter to CEO Dario Amodei placing Fable 5 (and its restricted sibling Mythos 5) under export controls: no access for any location outside the US, and no access for foreign persons inside it.
You Fixed the Rate Limits. Now Your Agent Fails Quietly.
Last week I wrote that your agent isn’t failing because it hallucinates — it’s failing because of rate limits. The capacity-engineering toolkit in that post — concurrency caps, backoff with jitter, fallback models, caching — is real and it works. Deploy it and your agent stops dying. Then a commenter (ANP2) pointed out the thing the post undersold, and it’s been stuck in my head since: every one of those fixes quietly opens a correctness hole while it closes the availability one.
The Comments Got Good. That's How I Knew.
I wrote a post about model distillation. The comments were thoughtful, specific, technically sharp — and that's exactly what made me check whether any of them were written by people. 🧪 Everything here — the scraper, the detector, the simulation, the figures — is reproducible: github.com/P0rt/the_cozy_web A few weeks ago I published a post on how model distillation actually works. It did fine — 35 reactions, 14 comments. And the comments were great. Not "great post, thanks for sharing" great.
š State.js - Build Reactive, Interactive UIs Using Only HTML + CSS
the data-health ā --state-health-percent bridge is the nice part ā maps to how CSS already wants to work. one honest nit: this isnt "zero JavaScript", its zero JS in your code. State.js is JS doing the attributeāvariable sync. which is the whole value ā better pitch is "the JS is written once in the library so you never touch it." where does it stop being the right tool though? a health bar or clicker is a perfect fit.
Your AI Coding Speedup Is a Loan, Not a Gift — and the Interest Is Coming Due
There's a number going around that should bother you more than it does: for every dollar companies spend on AI coding tokens, a large chunk goes straight back into fixing the bugs that same AI produced. The speedup is real — I feel it every day, I'm not here to tell you AI coding is fake. But "faster" and "cheaper" are not the same word, and 2026 is the year the bill started arriving.
Your AI Agent Isn't Failing Because It Hallucinates — It's Failing Because of Rate Limits
When my agents started failing in production, I did what everyone does first: I went hunting for hallucinations. Better prompts, tighter output schemas, more guardrails. None of it moved the needle, because I was debugging the wrong layer. The agent's reasoning was fine. It was the plumbing that kept collapsing — and the single biggest culprit was the most boring thing imaginable: rate limits. This turns out not to be just my problem.
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with Sergei
Contact Sergei, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack