All News
News

OpenClaw's Agents Couldn't Remember Their Own Settings. Its Discord Bot Was Eating Messages.

Four PRs. Four different contributors. Each one patches a gap in OpenClaw's multi-agent stack that has existed since launch day. In any other industry, shipping a multi-tenant system where tenants can't have their own config would be a recall. In open source, it's a Tuesday.

March 22, 20266 min read

Agents without memory

#51974Config gap

What was broken

No per-agent defaults for thinking mode, reasoning visibility, or fast mode. Every agent inherited global settings. Switching agents meant manually reconfiguring.

What shipped

Per-agent defaults with a resolution chain: agent overrides sit between session-level and global config. Stale model overrides auto-clear when agents switch.

by vincentkoc

The "current" session that wasn't

#39574Startup bug

What was broken

OpenClaw's /new startup flow called session_status(sessionKey="current"). The system didn't recognize "current" as a valid alias. Every new session started with an error.

What shipped

Registered "current" as a canonical key. Normalization moved to shared resolution layer instead of a one-off patch in session_status.

by BryanTegomoh

Discord abort signals vanishing

#52148Resource leak

What was broken

When Discord workers timed out, their abort signals never reached the ACP dispatch layer. Agent sessions continued running silently in the background, consuming resources for conversations already abandoned.

What shipped

Threaded the caller's abortSignal through both ACP dispatch entry points. Added regression test. The plumbing existed — it just wasn't connected.

by dutifulbob

Discord eating messages after failures

#51950Data loss

What was broken

Duplicate messages were marked as seen before preflight validation. Transient failures suppressed legitimate retries for the entire dedup TTL window. At-most-once delivery when it should have been at-least-once.

What shipped

Scoped dedup cache keyed by accountId:channelId:messageId. Dedup checks moved after bot-self filtering but before queuing. Claims released on failure so retries work.

by Takhoffman

The Multi-Agent Problem Nobody Talks About

Every AI startup pitches multi-agent orchestration as the future. AutoGPT. CrewAI. LangGraph. OpenClaw. The pitch deck always shows three or four specialized agents working in concert — a coder, a researcher, a customer support bot. The pitch deck never shows what happens when those agents share a single global config and step on each other's settings every time someone switches context.

That's what OpenClaw shipped. Multi-agent support launched over a year ago to genuine excitement. What the launch post didn't mention: every agent inherited the same thinking mode, the same reasoning visibility, the same fast-mode toggle. If you wanted Agent A to think deeply and Agent B to respond fast, you toggled manually. If a stored model override conflicted with a different agent's allowlist, the system silently did the wrong thing. No warning. No fallback.

Koc's PR #51974 adds what should have been there from day one: per-agent defaults for thinkingDefault, reasoningDefault, and fastModeDefault. The resolution chain is sensible: per-agent overrides sit between session-level and global config. Stale model overrides auto-clear with a system notification. It's exactly the boring, correct implementation the feature needed at launch.

Discord's Double Failure

The two Discord fixes are related but discovered independently. dutifulbob found that abort signals from timed-out Discord workers never reached the ACP dispatch layer — agent sessions kept running in the background, burning compute, after the Discord side had given up. The fix was two lines threading the signal through. The plumbing already existed. It just wasn't wired.

Takhoffman found something worse. The dedup guard marked messages as “seen” before preflight validation ran. If a transient failure occurred, the retry was suppressed for the entire TTL window — five minutes of “I already handled that” for a message that was never actually handled. At-most-once delivery by accident. The kind of bug that makes operators think Discord is unreliable when it's the middleware lying.

“The dedup guard achieved exactly one thing: it prevented the system from recovering from the failures it was supposed to guard against.”

The Session Alias That Broke /new

BryanTegomoh's fix is the kind of bug that makes you wince. The /new startup flow — the first thing every new user does — called session_status(sessionKey="current"). The system didn't recognize “current” as a valid key. First impression: an error. The fix took seven commits because the initial approach was a one-off patch; the reviewers (correctly) insisted on normalizing “current” at the shared resolution layer.

This PR was open since issue #39570. How long ago was that filed? Long enough that a seven-commit fix went through 24 test cases and 37 CI checks before merging. Long enough that new users had been seeing that error for months.

The Industry Lesson

Here's what the broader AI agent industry should take from this: multi-agent is a feature that sells demos and a capability that demands infrastructure. Per-agent config isolation, session identity management, abort signal propagation, idempotent message delivery — these are table stakes for any system running multiple concurrent agents. OpenClaw shipped the demo first and the infrastructure fourteen months later. They're not the only ones.

Four PRs. Four contributors. Four gaps in the foundation, all merged the same day. The multi-agent story is stronger now. But the next time someone shows you a multi-agent demo with specialized bots working in harmony, ask them one question: can those agents have their own settings? If the answer involves the word “global,” walk away.

DeployClaw News · Infrastructure report by Carlos Simpson

DeployClaw hosts OpenClaw instances. Upstream fixes ship automatically. This publication covers development independently.