<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>MicroClaw Blog</title>
        <link>https://microclaw.org/hi/blog</link>
        <description>MicroClaw Blog</description>
        <lastBuildDate>Mon, 01 Jun 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>hi</language>
        <item>
            <title><![CDATA[Being More Human — and a Specialist Team Behind It: Chat Realism, Concurrent Specialists, 42 Built-in Skills, Graph-Augmented Recall]]></title>
            <link>https://microclaw.org/hi/blog/being-more-human-specialist-team</link>
            <guid>https://microclaw.org/hi/blog/being-more-human-specialist-team</guid>
            <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MicroClaw 0.2.x makes the bot feel human on the surface (short replies, multi-bubble, mood-adaptive tone, group etiquette) while a concurrent specialist sub-agent team does the hard work underneath — named tasks, mid-run progress reports, standup and fan-in summaries, specialist-to-specialist consults. Plus 30 new factory-ready built-in skills (42 total) and graph-augmented memory recall over the temporal knowledge graph. Outward-facing behaviors are gated and default-off.]]></description>
            <content:encoded><![CDATA[<p>The previous release (<a class="" href="https://microclaw.org/hi/blog/hermes-catchup">Hermes Catch-up</a>) filled in the runtime's plumbing: a user model, a skill lifecycle, prompt-cache economics, checkpoints. This one is about something harder to measure and easier to feel — making MicroClaw behave like a <em>person</em>, and specifically like <strong>a very capable person who happens to have a team behind them.</strong></p>
<p>The thesis, lifted from the design docs that drove this release: "being human" is two layers, and the magic is in the <strong>contrast</strong> between them.</p>
<blockquote>
<p>On the surface they chat with you casually, lightly, in short replies. But the moment you need something real, they quietly pull in a mathematician, an illustrator, a researcher — several lines running at once — and come back with "done, here's the answer."</p>
</blockquote>
<p>MicroClaw used to be robotic on <em>both</em> layers: it dumped long answers up top, and although it could run sub-agents concurrently, it worked in silence until everything was finished. This release reworks both — and gates every outward-facing, proactive behavior behind a default-off switch.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="surface-layer-chatting-like-a-human">Surface layer: chatting like a human<a href="https://microclaw.org/hi/blog/being-more-human-specialist-team#surface-layer-chatting-like-a-human" class="hash-link" aria-label="Surface layer: chatting like a human का सीधा लिंक" title="Surface layer: chatting like a human का सीधा लिंक" translate="no">​</a></h2>
<p>The most impactful change is also the cheapest: <strong>default to short.</strong> Real chat is 90% one-or-two-sentence replies; long-form is the exception, unlocked only when you explicitly ask for "details / a plan / a tutorial."</p>
<ul>
<li class=""><strong>Short-first, BLUF (bottom-line-up-front)</strong> — written into <code>SOUL.md</code>'s chat-style section and a <code>Conversational style</code> block in the system prompt. Answer first, offer to expand.</li>
<li class=""><strong>Multi-bubble replies</strong> — instead of one wall of text, the agent sends 2–3 short messages ("hang on" → "let me look" → "found it 👇"), reusing the existing <code>send_message</code> mid-conversation channel. The mechanism already existed; what was missing was telling the model to use it.</li>
<li class=""><strong>Mood-adaptive tone</strong> — a new zero-cost heuristic layer (<code>src/mood.rs</code>, bilingual EN/中文, conservatively triggered) detects <code>frustrated / urgent / sad / confused / grateful / excited / playful</code> and injects a <code>&lt;conversation_mood&gt;</code> hint. <strong>Personality stays stable (SOUL); tone flows with the moment (mood).</strong> The two are deliberately separated.</li>
<li class=""><strong>Group etiquette</strong> — in group chats the prompt injects "when to speak / when to stay silent": answer when @-mentioned, stay short, don't talk over people.</li>
<li class=""><strong>One question at a time, no filler.</strong></li>
</ul>
<p>None of this changes <em>who</em> the bot is. It changes how relaxed it sounds.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deep-layer-a-concurrent-specialist-team">Deep layer: a concurrent specialist team<a href="https://microclaw.org/hi/blog/being-more-human-specialist-team#deep-layer-a-concurrent-specialist-team" class="hash-link" aria-label="Deep layer: a concurrent specialist team का सीधा लिंक" title="Deep layer: a concurrent specialist team का सीधा लिंक" translate="no">​</a></h2>
<p>A capable professional isn't strong because they personally know everything — they're strong because they <strong>route the right problem to the right expertise and keep several lines in flight.</strong> That maps directly onto MicroClaw's sub-agent system, which this release upgrades from "one generic temp worker" into <strong>a team of named experts.</strong></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="specialist-profiles">Specialist profiles<a href="https://microclaw.org/hi/blog/being-more-human-specialist-team#specialist-profiles" class="hash-link" aria-label="Specialist profiles का सीधा लिंक" title="Specialist profiles का सीधा लिंक" translate="no">​</a></h3>
<p>Every sub-agent used to share one hardcoded system prompt and one restricted toolset. Now there's a small, extensible roster of <strong>specialist profiles</strong> (<code>src/tools/specialists.rs</code>), each a preset persona + tool subset:</p>
<table><thead><tr><th>Specialist</th><th>Persona focus</th><th>Extra tools</th></tr></thead><tbody><tr><td>🧮 mathematician</td><td>step-by-step derivation, verify with code, show work</td><td>code exec</td></tr><tr><td>🎨 illustrator</td><td>understand the visual brief, iterate on the prompt</td><td><code>generate_image</code>, <code>describe_image</code></td></tr><tr><td>🔍 researcher</td><td>multi-source retrieval, cross-check, cite sources</td><td><code>web_search</code>, <code>web_fetch</code></td></tr><tr><td>💻 coder</td><td>read/write code, run tests, minimal diffs</td><td>file tools, <code>bash</code></td></tr><tr><td>✍️ writer</td><td>structured writing, controls tone and length</td><td>memory/context</td></tr><tr><td>📊 analyst</td><td>classify data, statistics, charts</td><td>code exec, file tools</td></tr><tr><td>🧰 generalist</td><td>default catch-all</td><td>restricted set</td></tr></tbody></table>
<p>The main agent stays light and human in the foreground; when a sub-problem needs real horsepower, it <strong>quietly</strong> dispatches the right specialist (<code>sessions_spawn(specialist="mathematician", label="prove convergence", task=…)</code>), keeps chatting with you, and serves the conclusion in one line when it's done.</p>
<p><strong>Extensibility is the design goal:</strong> adding a new specialist is one record in the roster — no change to the core loop. Music, translation, legal, slides… all become config later.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="specialist-to-specialist-consults">Specialist-to-specialist consults<a href="https://microclaw.org/hi/blog/being-more-human-specialist-team#specialist-to-specialist-consults" class="hash-link" aria-label="Specialist-to-specialist consults का सीधा लिंक" title="Specialist-to-specialist consults का सीधा लिंक" translate="no">​</a></h3>
<p>A specialist used to be on its own. New in this release (<a href="https://github.com/microclaw/microclaw/pull/394" target="_blank" rel="noopener noreferrer" class="">#394</a>): a bounded <strong><code>consult_specialist</code></strong> tool lets a sub-agent get an inline expert opinion from a <em>different</em> specialist — a single LLM round, no tools, no recursion, no chat side effects — instead of faking expertise it doesn't have. A researcher can ask the writer "how would you phrase this finding?" without spawning a whole new run. It works at any spawn depth and reuses the existing roster.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="concurrent-tasks-with-progress-reporting">Concurrent tasks with progress reporting<a href="https://microclaw.org/hi/blog/being-more-human-specialist-team#concurrent-tasks-with-progress-reporting" class="hash-link" aria-label="Concurrent tasks with progress reporting का सीधा लिंक" title="Concurrent tasks with progress reporting का सीधा लिंक" translate="no">​</a></h3>
<p>The concurrency itself was already production-grade (background <code>sessions_spawn</code>, a global semaphore, per-chat quotas, reliable completion-announce relay). What was missing was the <em>colleague-like</em> layer:</p>
<ul>
<li class=""><strong>Named tasks</strong> — <code>sessions_spawn</code> takes a human <code>label</code>; <code>subagents_list / info / kill / focus / send</code> all accept the label in place of a UUID. Now you can say "kill the competitor-pricing task" instead of pasting <code>subrun-7f3a…</code>.</li>
<li class=""><strong>Mid-run progress</strong> — a sub-agent-only <code>report_progress</code> tool emits <code>📊 [label] (60%): …</code> at milestones, throttled by <code>subagents.progress_min_interval_secs</code> (45s) so it never spams. A toggle, <code>subagents.progress_reports</code> (default on), lets operators silence the chat-side relay while still recording to the timeline.</li>
<li class=""><strong>Standup</strong> — an opt-in low-frequency loop that, for long-running tasks, posts a merged <code>🛰️ Still on it — N tasks running</code> digest per chat, with a rough <strong>ETA</strong> derived from the historical average run duration. Stalled tasks (past 2× the interval with no recent progress) get flagged <code>⚠️ no recent progress</code>.</li>
<li class=""><strong>Fan-in summary</strong> — when every child of a parent run finishes, an opt-in <code>🧩</code> summary lands in one message.</li>
</ul>
<p>Both standup and fan-in are <strong>default-off</strong>, because they're the bot speaking unprompted — and unprompted messages must earn their keep.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-it-looks-like">What it looks like<a href="https://microclaw.org/hi/blog/being-more-human-specialist-team#what-it-looks-like" class="hash-link" aria-label="What it looks like का सीधा लिंक" title="What it looks like का सीधा लिंक" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">You: check if this integral converges, sketch me a diagram, and see if our</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">     pricing holds up against competitors</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Bot: on it — splitting this up 👀                         ← short, acknowledge</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Bot: running convergence + the diagram in parallel, checking competitors now</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">     (quietly: sessions_spawn mathematician / illustrator / researcher)</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">     …(main agent keeps chatting, not blocked)…</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Bot: 📊 [competitor-pricing] 3/5 checked — we're low at $29, B is $49     ← throttled progress</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Bot: 🧮 [convergence] converges (ratio test), full steps sent your way    ← specialist done</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Bot: 🎨 [diagram] here 👇 [image]                                          ← specialist done</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Bot: pricing's still running, 2 left. BLUF: you've got room to raise.      ← short, BLUF</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="30-new-factory-ready-built-in-skills-42-total">30 new factory-ready built-in skills (42 total)<a href="https://microclaw.org/hi/blog/being-more-human-specialist-team#30-new-factory-ready-built-in-skills-42-total" class="hash-link" aria-label="30 new factory-ready built-in skills (42 total) का सीधा लिंक" title="30 new factory-ready built-in skills (42 total) का सीधा लिंक" translate="no">​</a></h2>
<p>A fresh install should already be a one-stop assistant — calculation, coding, research, planning, writing, diagrams, doc handling — without the user wiring anything up. This release adds <strong>30 original built-in skills</strong> on top of the existing 12, for <strong>42 total</strong>, across six batches:</p>
<ul>
<li class=""><strong>Compute &amp; data</strong> — calculator, unit-converter, datetime, csv-tools, json-tools, sql, data-analysis</li>
<li class=""><strong>Coding</strong> — code-review, regex, debugging, shell-scripting, api-design, testing, git</li>
<li class=""><strong>Research</strong> — research, wikipedia, define (propagation-trace already shipped)</li>
<li class=""><strong>Planning</strong> — planning, brainstorming, decision-matrix, meeting-notes, goal-setting</li>
<li class=""><strong>Creative &amp; diagrams</strong> — mermaid, color-tools, algorithmic-art, qrcode</li>
<li class=""><strong>Writing &amp; productivity</strong> — writing-editor, summarize, email-drafting, translate</li>
</ul>
<p>Every skill is an <strong>original <code>SKILL.md</code></strong> (the value of a skill is in its instructions, not borrowed code), embedded at compile time via <code>include_dir!</code> and auto-installed at runtime by compatibility. Skills that need an external command (git/jq/curl) carry fallback logic in their body, so nothing is silently skipped. Adding a skill remains a "drop a folder in <code>skills/built-in/</code>" operation — pure increment, no Rust changes, zero regression risk.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="graph-augmented-memory-recall">Graph-augmented memory recall<a href="https://microclaw.org/hi/blog/being-more-human-specialist-team#graph-augmented-memory-recall" class="hash-link" aria-label="Graph-augmented memory recall का सीधा लिंक" title="Graph-augmented memory recall का सीधा लिंक" translate="no">​</a></h2>
<p>MicroClaw has carried a temporal knowledge graph for a while, but it was only queried on demand through tools. This release (<a href="https://github.com/microclaw/microclaw/pull/395" target="_blank" rel="noopener noreferrer" class="">#395</a>) <strong>activates it during recall itself.</strong></p>
<p>After the flat L0–L2 memory layers are assembled, recall seeds the KG from entities the query mentions, expands a <strong>bounded 1–2 hops</strong>, and injects the connected facts as a dedicated <code># Connected</code> block in the prompt. It's <strong>local-only</strong> — no embeddings, no extra LLM call — bounded by hops / triple count / token budget, with a redundancy guard so it never repeats what L0–L2 already injected.</p>
<p>The mechanism: two new storage primitives, <code>kg_distinct_entities</code> and <code>kg_neighborhood</code> (a bounded BFS over the triple store), plus three default-on config knobs:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">memory_graph_recall_enabled</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#36acaa">true</span><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic"># activate KG expansion during recall</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">memory_graph_max_hops</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2</span><span class="token plain">            </span><span class="token comment" style="color:#999988;font-style:italic"># bounded neighborhood radius</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">memory_graph_max_triples</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">10</span><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic"># cap injected connected facts</span><br></div></code></pre></div></div>
<p>So if you mention a project, the recall can now surface the person who owns it and the deadline attached to it — relationships the flat memory layers wouldn't have ranked together.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-honest-parts-humanlike-follow-ups-and-whats-still-on-the-road">The honest parts: humanlike follow-ups, and what's still on the road<a href="https://microclaw.org/hi/blog/being-more-human-specialist-team#the-honest-parts-humanlike-follow-ups-and-whats-still-on-the-road" class="hash-link" aria-label="The honest parts: humanlike follow-ups, and what's still on the road का सीधा लिंक" title="The honest parts: humanlike follow-ups, and what's still on the road का सीधा लिंक" translate="no">​</a></h2>
<p>A couple of features close the gap between "scripted" and "lived-in":</p>
<ul>
<li class=""><strong>Relationship familiarity</strong> — derived from message history, the prompt gets a <code># Relationship</code> hint: welcoming for brand-new chats, casual for long-running ones. (No hint in the middle — only the extremes are distinctive.)</li>
<li class=""><strong>Per-user adaptive growth</strong> — the reflector now distills "how to work well with <em>this</em> person (what lands, what to avoid)" into the per-chat <code>USER.md</code>. It grows <em>toward each person</em>, without rewriting the stable personality.</li>
<li class=""><strong>Read-the-room humor timing</strong> — a prompt-level principle tied to the mood signal: a dry joke is fine when things are relaxed and there's rapport; never when the user is frustrated, anxious, rushed, or the topic is serious.</li>
<li class=""><strong>Group interjection (default-off, throttled)</strong> — an Inner-Thoughts-style loop that, in group chats where the bot wasn't @-mentioned, evaluates "is there something genuinely worth saying?" and either says one thing or returns SKIP. It captures the spirit of speaking up unprompted, while staying bounded and silent by default.</li>
</ul>
<p>We wrote an essay about the line between done and not-done — <a href="https://github.com/microclaw/microclaw/blob/main/docs/how-to-be-a-human.md" target="_blank" rel="noopener noreferrer" class="">"How to Be a Human"</a> — and were deliberate about what we <em>didn't</em> simulate: forgetting, procrastination, sulking, faking competence. Reliability wins; those "human" traits we don't want.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="upgrade-notes">Upgrade notes<a href="https://microclaw.org/hi/blog/being-more-human-specialist-team#upgrade-notes" class="hash-link" aria-label="Upgrade notes का सीधा लिंक" title="Upgrade notes का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class=""><strong>DB schema advances to v26</strong> via additive <code>table_has_column</code> migrations (label / progress columns on <code>subagent_runs</code>). Forward-only; back up <code>data_dir/</code>'s SQLite file before upgrading, as always.</li>
<li class=""><strong>Every proactive / outward-facing behavior is default-off</strong>: <code>subagents.standup.enabled</code>, <code>subagents.fan_in_summary</code>, <code>idle_checkin.enabled</code>, and <code>interjection</code> all default to <code>false</code>. Turn them on deliberately.</li>
<li class=""><strong>Graph-augmented recall is default-on</strong> but local-only and bounded — no new cost. Set <code>memory_graph_recall_enabled: false</code> to opt out.</li>
<li class=""><strong>Mid-run progress reports are default-on</strong> (<code>subagents.progress_reports: true</code>) but throttled; set to <code>false</code> to keep progress in the timeline without relaying to chat.</li>
<li class="">Existing <code>microclaw.config.yaml</code> files need no changes — every new field has a <code>#[serde(default)]</code> and the defaults match the descriptions above.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-think-about-this-release">How to think about this release<a href="https://microclaw.org/hi/blog/being-more-human-specialist-team#how-to-think-about-this-release" class="hash-link" aria-label="How to think about this release का सीधा लिंक" title="How to think about this release का सीधा लिंक" translate="no">​</a></h2>
<p>It isn't "we added N features." It's MicroClaw learning to <strong>relax on the surface and get deep underneath</strong> — short, multi-bubble, mood-aware chat in front; a concurrent, named, self-reporting specialist team behind; a memory that now recalls relationships, not just facts. The contrast between those two layers is the whole point — it's what a very capable person actually feels like to talk to.</p>
<p>Source: <a href="https://github.com/microclaw/microclaw" target="_blank" rel="noopener noreferrer" class="">microclaw/microclaw</a> · Specialist team &amp; skills <a href="https://github.com/microclaw/microclaw/pull/391" target="_blank" rel="noopener noreferrer" class="">#391</a> · Humanlike follow-ups <a href="https://github.com/microclaw/microclaw/pull/392" target="_blank" rel="noopener noreferrer" class="">#392</a> · Bounded research-hard traits <a href="https://github.com/microclaw/microclaw/pull/393" target="_blank" rel="noopener noreferrer" class="">#393</a> · <code>consult_specialist</code> <a href="https://github.com/microclaw/microclaw/pull/394" target="_blank" rel="noopener noreferrer" class="">#394</a> · Graph-augmented recall <a href="https://github.com/microclaw/microclaw/pull/395" target="_blank" rel="noopener noreferrer" class="">#395</a></p>]]></content:encoded>
            <category>Release</category>
            <category>Runtime</category>
            <category>Skills</category>
            <category>Memory</category>
            <category>Agentic AI</category>
            <category>Reliability</category>
        </item>
        <item>
            <title><![CDATA[Hermes Catch-up: User Model, Skill Lifecycle, Multimedia, Defensive Defaults — and Round 2 (Prompt Cache, Fuzzy Edit, Checkpoints, @-Refs)]]></title>
            <link>https://microclaw.org/hi/blog/hermes-catchup</link>
            <guid>https://microclaw.org/hi/blog/hermes-catchup</guid>
            <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Two consecutive Hermes-inspired releases. Round 1: per-chat user model, end-to-end skill lifecycle, cross-channel voice, multimedia tools, cross-conversation search, defensive-by-default web fetch. Round 2 (PR #342): Anthropic prompt caching, fuzzy edit_file matching, per-turn tool-loop guardrails, filesystem checkpoints + /rewind, @-prefix context references, and lazy subdirectory AGENTS.md hints.]]></description>
            <content:encoded><![CDATA[<p>The Hermes Catch-up release is MicroClaw's largest single-branch update so far: 37 commits, 8400 lines, 53 files. The headline number is misleading, though — what matters is which layers of the agent runtime got filled in.</p>
<p>The inspiration is <a href="https://github.com/nousresearch/hermes-agent" target="_blank" rel="noopener noreferrer" class="">hermes-agent</a> v0.10.0. Hermes runs on Python; several of its design decisions land more naturally on a Rust + SQLite stack: FTS5 ships with bundled SQLite, <code>cargo audit</code> / <code>cargo deny</code> lock dependency posture at compile time, and the artifact pattern (large tool result on disk, fetch slices by id) costs almost nothing in a single-binary deploy.</p>
<p>So this isn't a port — it's a re-application of patterns hermes already validated, drawn against MicroClaw's engineering boundaries.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="per-chat-user-model-usermd">Per-chat user model (USER.md)<a href="https://microclaw.org/hi/blog/hermes-catchup#per-chat-user-model-usermd" class="hash-link" aria-label="Per-chat user model (USER.md) का सीधा लिंक" title="Per-chat user model (USER.md) का सीधा लिंक" translate="no">​</a></h2>
<p>Memory in MicroClaw used to be one-dimensional: AGENTS.md plus structured rows, all retrieved on demand. But "who this user is" and "what this user is doing this week" should be different layers.</p>
<p>This release splits them:</p>
<ul>
<li class=""><strong>per-chat USER.md</strong> — a curated narrative of the user in this chat, written to <code>runtime/groups/{chat_id}/USER.md</code>, injected into the system prompt under a dedicated <code>&lt;user_model&gt;</code> block.</li>
<li class=""><strong>Reflector owns curation</strong> — the agent doesn't write USER.md directly. The reflector runs an LLM call each tick that folds new signal into the existing narrative, returning <code>null</code> when nothing warrants rewriting.</li>
<li class=""><strong><code>/user</code> command</strong> — show the current narrative, or <code>/user clear</code> to reset.</li>
</ul>
<p>USER.md has a hard cap (default 1500 chars, hermes uses 1375) so the curator is forced to summarize rather than append.</p>
<p>The split matters because user identity is high-reuse, low-update; specific memories are high-frequency and fragmentary. Mixing them either bloats the prompt or makes it hard to reliably recall the durable constraints. With the split, the user model lives at the top of the prompt; memories stay retrieval-on-demand.</p>
<p>Memory itself also gained:</p>
<ul>
<li class=""><strong>Per-row TTL</strong> — set an expiration on a memory; it stops surfacing after that. "Meeting on Sunday" shouldn't keep coming back two months later.</li>
<li class=""><strong>Recency decay</strong> (default half-life 30 days) — older memories get down-ranked at retrieval time so newer signal naturally surfaces.</li>
</ul>
<p>Both USER.md writes and memory writes go through a PII redact module first — emails, phone numbers, API key shapes, and card numbers are masked before persistence.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="skill-lifecycle">Skill lifecycle<a href="https://microclaw.org/hi/blog/hermes-catchup#skill-lifecycle" class="hash-link" aria-label="Skill lifecycle का सीधा लिंक" title="Skill lifecycle का सीधा लिंक" translate="no">​</a></h2>
<p>Skills used to be: agent activates, SKILL.md gets loaded into the prompt. End of story. This release pushes it into a real lifecycle:</p>
<ul>
<li class=""><strong>agentskills.io spec compatibility</strong> — SKILL.md frontmatter aligns to the <a href="https://agentskills.io/" target="_blank" rel="noopener noreferrer" class="">agentskills.io</a> spec; legacy field names emit warnings.</li>
<li class=""><strong>Review at end of turn</strong> — instead of waiting for the reflector tick, every turn triggers a review pass that decides whether the conversation produced a reusable skill.</li>
<li class=""><strong>Patch existing skills, not just create</strong> — review can recognize that a solution overlaps with an existing skill and emit an edit instead of a duplicate.</li>
<li class=""><strong>Success-signal filter</strong> — review only fires when the turn actually completed something, so we don't burn LLM calls on failed attempts.</li>
<li class=""><strong>Structured tool trajectory</strong> — the review LLM reads a structured <code>(tool_name, input shape, success/fail)</code> trace, not the chat log. Signal density is much higher.</li>
<li class=""><strong>Activation tracking + auto-archive</strong> — every activation is logged; skills idle for 30 days (default, configurable) auto-archive.</li>
<li class=""><strong>Retrieval-gated catalog</strong> — the prompt-side catalog only includes the top-K best matches for the current query (default 3) instead of the full list.</li>
<li class=""><strong>Autonomous review default on</strong> — previously opt-in.</li>
</ul>
<p>The end-to-end loop is: user asks → agent solves with tools → end-of-turn review checks if it's worth a new skill or a patch → catalog retrieval surfaces the right skill next time → unused skills age out. What used to be ad-hoc decisions scattered across the codebase is now a single pipeline.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="multimedia-hear-see-speak-draw">Multimedia: hear, see, speak, draw<a href="https://microclaw.org/hi/blog/hermes-catchup#multimedia-hear-see-speak-draw" class="hash-link" aria-label="Multimedia: hear, see, speak, draw का सीधा लिंक" title="Multimedia: hear, see, speak, draw का सीधा लिंक" translate="no">​</a></h2>
<p>A complete multimedia tool suite:</p>
<table><thead><tr><th>Tool</th><th>Purpose</th></tr></thead><tbody><tr><td><code>generate_image</code></td><td>Text-to-image via OpenAI-compat <code>/images</code></td></tr><tr><td><code>describe_image</code></td><td>Vision via vision-capable model</td></tr><tr><td><code>text_to_speech</code></td><td>TTS via OpenAI-compat <code>/audio/speech</code></td></tr><tr><td><code>transcribe_audio</code></td><td>STT via OpenAI-compat <code>/audio/transcriptions</code></td></tr></tbody></table>
<p>More important: voice goes all the way to channel ingress and egress.</p>
<ul>
<li class=""><strong>Cross-channel inbound voice transcription</strong> — Telegram, Discord, Slack, and Feishu adapters all transcribe inbound voice and feed the text into the agent loop as a normal user message. Mobile users get parity with text users.</li>
<li class=""><strong>Outbound TTS round-trip</strong> (opt-in) — when the inbound was voice, the agent's reply gets synthesized to audio and shipped back through the same channel (Telegram uses native <code>send_voice</code> bubbles; Discord/Slack attach the file).</li>
</ul>
<p>Round-trip is opt-in because each turn burns one extra TTS call.</p>
<p>A new <code>media.allowed_read_dirs</code> allowlist gates every media tool's local-file reads — preventing flows where the agent gets coaxed into feeding <code>~/.ssh</code> to a vision model.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cross-conversation-recall--structured-clarification">Cross-conversation recall + structured clarification<a href="https://microclaw.org/hi/blog/hermes-catchup#cross-conversation-recall--structured-clarification" class="hash-link" aria-label="Cross-conversation recall + structured clarification का सीधा लिंक" title="Cross-conversation recall + structured clarification का सीधा लिंक" translate="no">​</a></h2>
<p>Two new tools, complementary:</p>
<ul>
<li class=""><strong><code>session_search</code></strong> — SQLite FTS5 full-text search over stored messages. The agent can find a project name or error string the user mentioned weeks ago. Schema migration adds the <code>messages_fts</code> virtual table plus INSERT/UPDATE/DELETE triggers, and backfills existing rows. Default scope is the caller's chat; cross-chat search requires explicit control.</li>
<li class=""><strong><code>clarify</code></strong> — when a request is ambiguous, the agent asks a structured question: up to four predefined choices plus an automatic "Other". The question goes through the channel and the turn ends — the next user message is the answer. More controllable than free-form "do you mean A or B" because the channel can render it as buttons later.</li>
</ul>
<p><code>session_search</code> is exposed to subagents (read-only); <code>clarify</code> is main-agent only because it touches channel UI.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="defensive-by-default">Defensive-by-default<a href="https://microclaw.org/hi/blog/hermes-catchup#defensive-by-default" class="hash-link" aria-label="Defensive-by-default का सीधा लिंक" title="Defensive-by-default का सीधा लिंक" translate="no">​</a></h2>
<p>Several defaults shifted toward safer-out-of-the-box. Operators upgrading should review these:</p>
<ul>
<li class=""><strong><code>web_fetch.block_private_ips: true</code></strong> — refuses loopback / RFC1918 / CGNAT / link-local / ULA / cloud-metadata (169.254.169.254). Intranet deploys must add hosts to <code>allowlist_hosts</code> or set this <code>false</code>.</li>
<li class=""><strong>Redirect hook re-validates SSRF on every hop</strong> — the initial URL isn't enough; every 302/307 is re-checked, defeating "public domain redirects to internal address" attacks.</li>
<li class=""><strong>robots.txt consultation</strong> — <code>web_fetch</code> consults the target site's robots.txt before fetching.</li>
<li class=""><strong><code>bash_dangerous_patterns</code></strong> — seven default regexes guard against <code>sudo</code>, <code>rm -rf /</code>, pipe-to-shell installers, <code>mkfs</code>, forkbombs, raw <code>dd if=</code>, and recursive root chmod/chown.</li>
<li class=""><strong>PII redact</strong> — emails, phones, API key shapes, and card numbers are masked before USER.md / memory writes.</li>
<li class=""><strong>Bash command-content gate</strong> — high-risk commands now show their literal contents in the approval preview, not an abstract risk classifier.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="performance-and-cost-control">Performance and cost control<a href="https://microclaw.org/hi/blog/hermes-catchup#performance-and-cost-control" class="hash-link" aria-label="Performance and cost control का सीधा लिंक" title="Performance and cost control का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class=""><strong>Tool result cache</strong> (schema v22) — keyed on <code>SHA256(tool_name + normalized input)</code>, opt-in per tool (e.g. <code>osv_check</code>). LRU + TTL.</li>
<li class=""><strong>Oversized result truncation + <code>fetch_artifact</code></strong> — when a tool returns more than 4000 chars (default), head and tail are kept inline and the full payload goes to <code>tool_result_artifacts</code> with a TTL. The agent calls <code>fetch_artifact</code> to slice into it. No more 100 MB grep results filling the context window.</li>
<li class=""><strong>Per-tool duplicate-call circuit breaker</strong> — same tool with same input more than three times in a 10-step window is rejected. Breaks death loops.</li>
<li class=""><strong>Autonomous session titles</strong> — a background LLM call titles each session after the first few user messages. Web UI history isn't a wall of "Untitled" anymore.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="other-new-tools">Other new tools<a href="https://microclaw.org/hi/blog/hermes-catchup#other-new-tools" class="hash-link" aria-label="Other new tools का सीधा लिंक" title="Other new tools का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class=""><strong><code>osv_check</code></strong> — queries <a href="https://osv.dev/" target="_blank" rel="noopener noreferrer" class="">osv.dev</a> for advisories across npm / PyPI / crates.io / RubyGems / Maven / NuGet / Packagist / Hex / Pub / Go. MAL-* malware advisories are flagged separately.</li>
<li class=""><strong><code>insights</code></strong> — usage summary over a trailing window: top tools, skill activations, token cost distribution.</li>
<li class=""><strong><code>fetch_artifact</code></strong> — pairs with the truncation feature above.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="operator-quality-of-life">Operator quality of life<a href="https://microclaw.org/hi/blog/hermes-catchup#operator-quality-of-life" class="hash-link" aria-label="Operator quality of life का सीधा लिंक" title="Operator quality of life का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class=""><strong><code>doctor</code> diagnostics expanded</strong> — now checks context cap, USER.md cap, and bash dangerous patterns config sanity, not just "the YAML parses".</li>
<li class=""><strong>Project-level context files</strong> — drop any <code>.md</code> into <code>data_dir/runtime/groups/{channel}/{chat_id}/</code> and it gets concatenated into the system prompt (capped by <code>context_max_chars</code>, default 8000). A first-class home for "things this chat should always know".</li>
<li class=""><strong>New provider preset: Xiaomi MiMo</strong> — five models (<code>mimo-v2.5-pro</code>, <code>mimo-v2.5</code>, <code>mimo-v2-pro</code>, <code>mimo-v2-flash</code>, <code>mimo-v2-omni</code>), OpenAI-compat protocol.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="update--2026-05-02-round-2-pr-342">Update — 2026-05-02: round 2 (PR #342)<a href="https://microclaw.org/hi/blog/hermes-catchup#update--2026-05-02-round-2-pr-342" class="hash-link" aria-label="Update — 2026-05-02: round 2 (PR #342) का सीधा लिंक" title="Update — 2026-05-02: round 2 (PR #342) का सीधा लिंक" translate="no">​</a></h2>
<p>Round 1 closed the biggest gaps in memory, skills, and multimedia. Round 2 goes back into hermes-agent and pulls six more patterns that earn their keep on a single-binary Rust runtime: cost control, recovery, and just-in-time context. Six new modules, fifty new tests, all opt-in or non-disruptive by default.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="anthropic-prompt-caching-default-on-free">Anthropic prompt caching (default on, free)<a href="https://microclaw.org/hi/blog/hermes-catchup#anthropic-prompt-caching-default-on-free" class="hash-link" aria-label="Anthropic prompt caching (default on, free) का सीधा लिंक" title="Anthropic prompt caching (default on, free) का सीधा लिंक" translate="no">​</a></h3>
<p>Anthropic's API accepts up to four <code>cache_control</code> breakpoints per request. MicroClaw now places one on the system prompt and one each on the last three messages, so the second turn re-uses the prefix from the first, the third re-uses the second's prefix, etc. On a multi-turn chat, the recurring input cost drops about 75%.</p>
<p>The implementation is JSON-mutation right before send: serialize <code>MessagesRequest</code> to a <code>serde_json::Value</code>, walk system + last 3 non-system messages, attach <code>cache_control: {"type": "ephemeral"}</code> to the last block of each. The typed <code>Message</code> / <code>ContentBlock</code> shapes stay clean, and the OpenAI-compatible path is untouched.</p>
<p>Two new config flags: <code>anthropic_prompt_cache_enabled</code> (default <code>true</code>) and <code>anthropic_prompt_cache_ttl</code> (<code>"5m"</code> default or <code>"1h"</code> if your key has extended-cache opt-in).</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fuzzy-edit_file-matching">Fuzzy <code>edit_file</code> matching<a href="https://microclaw.org/hi/blog/hermes-catchup#fuzzy-edit_file-matching" class="hash-link" aria-label="fuzzy-edit_file-matching का सीधा लिंक" title="fuzzy-edit_file-matching का सीधा लिंक" translate="no">​</a></h3>
<p>LLMs frequently hand <code>edit_file</code> an <code>old_string</code> that is "morally" right but byte-wrong: pasted with a different indent, copied through a tool transport that stripped trailing whitespace, smart-quoted by a doc renderer, or with <code>\n</code> written as the literal two characters instead of a newline. Each failed exact match wasted iterations.</p>
<p>The tool now retries through eight strategies in order and tells the model which one matched:</p>
<ol>
<li class="">exact</li>
<li class="">line-trimmed (per-line <code>trim()</code>)</li>
<li class="">whitespace-normalized (collapse runs of spaces/tabs)</li>
<li class="">indentation-flexible (per-line <code>lstrip()</code>)</li>
<li class="">escape-normalized (<code>\n</code>/<code>\t</code>/<code>\r</code> → real chars)</li>
<li class="">trimmed-boundary (only first and last line trimmed)</li>
<li class="">unicode-normalized (smart quotes, em/en-dash, ellipsis, NBSP)</li>
<li class="">block-anchor (first/last line + middle similarity)</li>
</ol>
<p>When a non-exact strategy matches, the implementation also runs an escape-drift check: if <code>new_string</code> contains literal <code>\'</code> or <code>\"</code> sequences and the matched region of the file does not, the patch is refused — that pattern is almost always a tool-call serialization artifact that would corrupt the source if written verbatim.</p>
<p>The strategy chain is borrowed from <a href="https://github.com/nousresearch/hermes-agent/blob/main/tools/fuzzy_match.py" target="_blank" rel="noopener noreferrer" class="">hermes-agent's <code>tools/fuzzy_match.py</code></a>, which itself adopted it from OpenCode.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="per-turn-tool-loop-guardrails">Per-turn tool-loop guardrails<a href="https://microclaw.org/hi/blog/hermes-catchup#per-turn-tool-loop-guardrails" class="hash-link" aria-label="Per-turn tool-loop guardrails का सीधा लिंक" title="Per-turn tool-loop guardrails का सीधा लिंक" translate="no">​</a></h3>
<p>The duplicate-call circuit breaker (<code>tool_repeat_window</code> + <code>tool_repeat_limit</code>) already short-circuits identical <code>(tool, args)</code> repeats. Round 2 adds two finer-grained signals as warnings (the result still goes back to the model, just with a hint appended):</p>
<ul>
<li class=""><strong>Idempotent no-progress</strong> — when a read-only tool (<code>read_file</code>, <code>grep</code>, <code>web_fetch</code>, <code>web_search</code>, <code>session_search</code>, …) returns the same result hash twice for the same arguments, the result gets a "this won't change, use what you have" suffix.</li>
<li class=""><strong>Same-tool failure streak</strong> — when any tool fails three times in a turn, even with different arguments, the result gets a "change approach instead of retrying" suffix.</li>
</ul>
<p>The new <code>IDEMPOTENT_TOOLS</code> constant in <code>src/tools/mod.rs</code> classifies thirteen read-only tools. The controller is reset per turn — guardrails are about <em>this turn</em>'s loop, not lifetime behavior.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="filesystem-checkpoints--rewind">Filesystem checkpoints + <code>/rewind</code><a href="https://microclaw.org/hi/blog/hermes-catchup#filesystem-checkpoints--rewind" class="hash-link" aria-label="filesystem-checkpoints--rewind का सीधा लिंक" title="filesystem-checkpoints--rewind का सीधा लिंक" translate="no">​</a></h3>
<p>Once per agent turn, MicroClaw can run <code>git add -A &amp;&amp; git commit</code> against a <em>shadow</em> git repo whose <code>GIT_DIR</code> lives outside the user's working tree (under <code>&lt;data_dir&gt;/checkpoints/&lt;sha256(abs_path)[:16]&gt;/</code>). The shadow repo isolates from <code>~/.gitconfig</code> (<code>GIT_CONFIG_GLOBAL=/dev/null</code>, <code>GIT_CONFIG_SYSTEM=/dev/null</code>, <code>GIT_CONFIG_NOSYSTEM=1</code>), so it never triggers signing prompts, hooks, or credential helpers — even if the user has aggressive global git config.</p>
<p>Two new chat commands:</p>
<ul>
<li class=""><code>/rewind</code> — list the most recent 20 snapshots for the current chat, newest first.</li>
<li class=""><code>/rewind &lt;commit&gt;</code> — restore the chat's working dir to that snapshot. Hashes are validated as 4–64 hex chars to defeat git argument injection (e.g. <code>--patch</code> would otherwise be interpreted as a flag).</li>
</ul>
<p>This is <strong>off by default</strong> (<code>checkpoints_enabled: false</code>) because it requires <code>git</code> on PATH and is most useful for code-editing chats. Once on, the agent never sees this — it's transparent infrastructure.</p>
<p>The pattern is borrowed from <a href="https://github.com/nousresearch/hermes-agent/blob/main/tools/checkpoint_manager.py" target="_blank" rel="noopener noreferrer" class="">hermes-agent's <code>tools/checkpoint_manager.py</code></a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-prefix-context-references"><code>@</code>-prefix context references<a href="https://microclaw.org/hi/blog/hermes-catchup#-prefix-context-references" class="hash-link" aria-label="-prefix-context-references का सीधा लिंक" title="-prefix-context-references का सीधा लिंक" translate="no">​</a></h3>
<p>User messages can now include short references that get expanded server-side, before the LLM sees the message:</p>
<ul>
<li class=""><code>@file:src/main.rs</code> — full file contents.</li>
<li class=""><code>@file:src/llm.rs:920-997</code> — line range.</li>
<li class=""><code>@folder:src/tools</code> — one-level directory listing.</li>
<li class=""><code>@diff</code> / <code>@staged</code> — output of <code>git diff</code> or <code>git diff --cached</code> against the chat's working dir.</li>
<li class=""><code>@url:https://example.com/page</code> — fetched and HTML-stripped, capped at 64 KB.</li>
</ul>
<p>The runtime rewrites the user message into <code>(stripped text) + --- Attached Context ---</code>, attaches the resolved blocks below, and passes the result to the agent. URL fetches reuse the SSRF guard from PR #335 (loopback, link-local, private, CGNAT, ULA, cloud-metadata all blocked, every redirect hop validated). File and folder references are gated by a sensitive-path block list — <code>~/.ssh</code>, <code>~/.aws</code>, <code>~/.gnupg</code>, <code>~/.kube</code>, <code>~/.docker</code>, <code>~/.azure</code>, plus dotfiles like <code>~/.bashrc</code>, <code>~/.netrc</code>, <code>~/.npmrc</code>, <code>~/.pgpass</code>. The block list walks <code>Path::components()</code> so it works on Windows too (an early Windows-CI failure surfaced this).</p>
<p>The pattern saves a <code>read_file</code> / <code>web_fetch</code> round-trip when the user clearly intends to give the agent a specific artifact. It's especially useful in the Web UI and Discord, where typing a path is faster than telling the agent to go look it up.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="lazy-subdirectory-agentsmd-hints">Lazy subdirectory <code>AGENTS.md</code> hints<a href="https://microclaw.org/hi/blog/hermes-catchup#lazy-subdirectory-agentsmd-hints" class="hash-link" aria-label="lazy-subdirectory-agentsmd-hints का सीधा लिंक" title="lazy-subdirectory-agentsmd-hints का सीधा लिंक" translate="no">​</a></h3>
<p>The system prompt loads the project root's <code>AGENTS.md</code> once at session start. But subdirectory-specific guidance (<code>backend/AGENTS.md</code>, <code>frontend/CLAUDE.md</code>, <code>infra/.cursorrules</code>) only mattered if the user mentioned it.</p>
<p>Now: when a tool call touches a subdirectory (via <code>path</code> / <code>file_path</code> / <code>workdir</code> / <code>cwd</code> arguments, or path-shaped tokens in a <code>bash</code> command), MicroClaw walks up to five ancestor directories looking for <code>AGENTS.md</code>, <code>CLAUDE.md</code>, or <code>.cursorrules</code>. The first hit (capped at 8 KB) is appended to that tool's result. Each directory is emitted at most once per turn, and the chat root is excluded — its hint is already in the system prompt.</p>
<p>The pattern is from hermes-agent's <code>agent/subdirectory_hints.py</code>, originally inspired by Block/goose's <code>SubdirectoryHintTracker</code>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-this-leaves-us">Where this leaves us<a href="https://microclaw.org/hi/blog/hermes-catchup#where-this-leaves-us" class="hash-link" aria-label="Where this leaves us का सीधा लिंक" title="Where this leaves us का सीधा लिंक" translate="no">​</a></h3>
<p>Round 2 is mostly about the boring qualities of a long-running runtime: cost (prompt cache), reliability (fuzzy edit, guardrails, checkpoints), and just-in-time context (@-refs, subdir hints). None of them are headline features. All of them turn into "we kept it in production for another quarter" — exactly the layer that MicroClaw needs to keep filling in.</p>
<p>The full PR is <a href="https://github.com/microclaw/microclaw/pull/342" target="_blank" rel="noopener noreferrer" class="">#342</a> — 2,842 lines added, 56 lines deleted, six new modules, fifty new unit tests, and a single static Rust binary that still runs on a $5 VPS.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="upgrade-notes">Upgrade notes<a href="https://microclaw.org/hi/blog/hermes-catchup#upgrade-notes" class="hash-link" aria-label="Upgrade notes का सीधा लिंक" title="Upgrade notes का सीधा लिंक" translate="no">​</a></h2>
<p>A few things to check before merging into your deployment:</p>
<ol>
<li class=""><strong>DB schema advances irreversibly to v25</strong> (migrations 21–25 are forward-only, from round 1). On first start, v21 backfills the FTS5 index — large message tables can take a few minutes. <strong>Back up <code>data_dir/</code>'s SQLite file before upgrade.</strong></li>
<li class=""><strong>If you use <code>web_fetch</code> against intranet services</strong>, add hosts to <code>web_fetch_url_validation.allowlist_hosts</code> or set <code>block_private_ips: false</code>.</li>
<li class=""><strong>If you have bash workflows that use <code>sudo</code> or <code>rm -rf</code></strong>, either change the workflow or set <code>bash_dangerous_patterns: []</code>.</li>
<li class=""><strong>Autonomous skill review is on by default</strong> — each turn now incurs an extra LLM call at the end. To disable, set <code>autonomous_skill_review: false</code> or <code>reflector_enabled: false</code>.</li>
<li class=""><strong>Anthropic prompt caching is on by default</strong> (round 2). If your provider proxy cannot accept <code>cache_control</code> markers in messages, set <code>anthropic_prompt_cache_enabled: false</code>. Real Anthropic and most compatible proxies (LiteLLM, OpenRouter Anthropic passthrough, Cloudflare AI Gateway) handle them transparently.</li>
<li class=""><strong><code>/rewind</code> and per-turn checkpoints are off by default</strong> (round 2). If you want the safety net, set <code>checkpoints_enabled: true</code> and make sure <code>git</code> is on PATH inside whatever environment runs MicroClaw (containers included).</li>
</ol>
<p>Existing <code>microclaw.config.yaml</code> files do not need changes — every new field has <code>#[serde(default)]</code> and the defaults match the descriptions above.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-think-about-this-release">How to think about this release<a href="https://microclaw.org/hi/blog/hermes-catchup#how-to-think-about-this-release" class="hash-link" aria-label="How to think about this release का सीधा लिंक" title="How to think about this release का सीधा लिंक" translate="no">​</a></h2>
<p>It isn't "we added N tools". It's MicroClaw moving from "a runtime that can call tools" toward "a runtime with a user model, a skill lifecycle, cross-conversation memory, multimedia ingress, explicit safety defaults — and now prompt-cache economics, edit-tolerance, loop guardrails, filesystem time-travel, and just-in-time context."</p>
<p>A lot of these look like quality-of-life polish (auto-titled sessions, voice ingress, the user model, the prompt cache, the checkpoint shadow repo). On long-running bots, they accumulate into the reason an operator is willing to keep MicroClaw in production — on a $5 VPS, no less.</p>
<p>Source: <a href="https://github.com/microclaw/microclaw" target="_blank" rel="noopener noreferrer" class="">microclaw/microclaw</a> · Round 1 PR <a href="https://github.com/microclaw/microclaw/pull/335" target="_blank" rel="noopener noreferrer" class="">#335</a> · Round 2 PR <a href="https://github.com/microclaw/microclaw/pull/342" target="_blank" rel="noopener noreferrer" class="">#342</a></p>]]></content:encoded>
            <category>Release</category>
            <category>Runtime</category>
            <category>Skills</category>
            <category>Memory</category>
            <category>Multimedia</category>
            <category>Security</category>
            <category>Performance</category>
            <category>Cost</category>
            <category>Checkpoints</category>
        </item>
        <item>
            <title><![CDATA[Maturity Hardening: Security Audit and Self-Checks]]></title>
            <link>https://microclaw.org/hi/blog/maturity-hardening</link>
            <guid>https://microclaw.org/hi/blog/maturity-hardening</guid>
            <pubDate>Sat, 14 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MicroClaw's maturity hardening update adds security audit gates, operator self-checks, clearer release policy, and stronger release verification.]]></description>
            <content:encoded><![CDATA[<p>The latest maturity hardening pass in MicroClaw is not a flashy new model integration or another channel adapter. It is the kind of release work that makes the next ten releases safer: dependency audit gates, operator-visible risk checks, explicit support policy, and stricter release verification.</p>
<p>For an agent runtime, that matters. If your bot can execute tools, store memory, expose Web APIs, and run background work, "it compiles" is not enough. You also need repeatable checks around security posture, release shape, and operator safety defaults.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-shipped">What shipped<a href="https://microclaw.org/hi/blog/maturity-hardening#what-shipped" class="hash-link" aria-label="What shipped का सीधा लिंक" title="What shipped का सीधा लिंक" translate="no">​</a></h2>
<p>This maturity hardening update landed in three layers:</p>
<ul>
<li class="">CI now includes a dedicated <code>Security Audit</code> job</li>
<li class="">Web config self-checks now surface more operational risk signals</li>
<li class="">repository policy docs now define security, support, and release expectations explicitly</li>
</ul>
<p>None of that changes the core product story. It changes how confidently the project can move.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="security-audit-is-now-a-real-gate">Security Audit is now a real gate<a href="https://microclaw.org/hi/blog/maturity-hardening#security-audit-is-now-a-real-gate" class="hash-link" aria-label="Security Audit is now a real gate का सीधा लिंक" title="Security Audit is now a real gate का सीधा लिंक" translate="no">​</a></h2>
<p>The biggest mechanical change is straightforward: MicroClaw now runs dependency auditing as part of required CI, not as an optional follow-up.</p>
<p>The main CI workflow now includes:</p>
<ul>
<li class=""><code>cargo audit</code></li>
<li class=""><code>cargo deny check advisories bans licenses</code></li>
</ul>
<p>That matters for two reasons.</p>
<p>First, it catches security and maintenance drift before merge. During this hardening work, the audit surfaced an unmaintained transitive crate in the terminal UI dependency path. Fixing that forced the dependency graph to match the stated security baseline instead of silently relying on luck.</p>
<p>Second, it moves security review closer to normal engineering flow. A failing advisory check is now a normal PR failure, not an after-the-fact cleanup task.</p>
<p>This also flows into releases. The release-asset workflow now waits for required CI jobs including:</p>
<ul>
<li class=""><code>Web And Docs Build</code></li>
<li class=""><code>Security Audit</code></li>
<li class=""><code>Rust (ubuntu-latest)</code></li>
<li class=""><code>Rust (macos-latest)</code></li>
<li class=""><code>Stability Smoke</code></li>
</ul>
<p>That gives release automation a better contract: if the preconditions are not green, release packaging does not pretend otherwise.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="docs-builds-are-part-of-the-path-now">Docs builds are part of the path now<a href="https://microclaw.org/hi/blog/maturity-hardening#docs-builds-are-part-of-the-path-now" class="hash-link" aria-label="Docs builds are part of the path now का सीधा लिंक" title="Docs builds are part of the path now का सीधा लिंक" translate="no">​</a></h2>
<p>Another practical change: the site docs build is now checked alongside the embedded Web UI build from the <code>site/</code> workspace.</p>
<p>That sounds small, but it closes a common repo gap. Projects often keep runtime code and docs in the same repo, then accidentally validate only one of them in CI. The result is predictable:</p>
<ul>
<li class="">source docs drift from website docs</li>
<li class="">links rot quietly</li>
<li class="">release notes mention pages that were never actually built</li>
</ul>
<p>MicroClaw now treats the docs site as part of the release surface rather than a side artifact.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="operator-self-check-is-more-useful-now">Operator self-check is more useful now<a href="https://microclaw.org/hi/blog/maturity-hardening#operator-self-check-is-more-useful-now" class="hash-link" aria-label="Operator self-check is more useful now का सीधा लिंक" title="Operator self-check is more useful now का सीधा लिंक" translate="no">​</a></h2>
<p>The most user-facing part of this hardening work is <code>GET /api/config/self_check</code>.</p>
<p>MicroClaw already had a local Web surface for operators. What changed here is the quality of the warnings it returns. Instead of acting like a shallow config echo, the self-check now flags conditions that actually correlate with risky runtime posture.</p>
<p>Examples include:</p>
<ul>
<li class="">operator password not configured</li>
<li class="">Web host not bound to loopback</li>
<li class="">sandbox disabled, or sandbox runtime unavailable</li>
<li class="">high-risk tool confirmation disabled</li>
<li class="">OTLP enabled without the expected endpoint configuration</li>
<li class="">non-strict or disabled web-fetch validation</li>
<li class="">scheduler failure-rate and reflector-idle conditions</li>
</ul>
<p>This is the right kind of product hardening: not a giant policy engine, just an honest summary of whether the current config is safe enough to run the way you think it is.</p>
<p>If you are operating MicroClaw through the Web interface or an internal dashboard, this endpoint is now a much better first-stop health signal.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="governance-is-now-written-down-not-implied">Governance is now written down, not implied<a href="https://microclaw.org/hi/blog/maturity-hardening#governance-is-now-written-down-not-implied" class="hash-link" aria-label="Governance is now written down, not implied का सीधा लिंक" title="Governance is now written down, not implied का सीधा लिंक" translate="no">​</a></h2>
<p>This update also adds a set of explicit repository-level operating documents:</p>
<ul>
<li class=""><code>CHANGELOG.md</code></li>
<li class=""><code>SECURITY.md</code></li>
<li class=""><code>SUPPORT.md</code></li>
<li class=""><code>docs/releases/release-policy.md</code></li>
</ul>
<p>That may look like project-maintainer paperwork, but it has a real engineering effect.</p>
<p>Without those documents, teams end up guessing:</p>
<ul>
<li class="">Which version lines are actually supported?</li>
<li class="">How should a security issue be reported?</li>
<li class="">What checks are required before a tagged release?</li>
<li class="">What counts as rollback-ready?</li>
</ul>
<p>With those documents in place, there is less room for "tribal knowledge" to quietly decide release quality.</p>
<p>For a runtime that spans chat channels, Web APIs, tool execution, scheduling, and memory, explicit support and disclosure policy is not overhead. It is part of the product.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="release-packaging-is-stricter-too">Release packaging is stricter too<a href="https://microclaw.org/hi/blog/maturity-hardening#release-packaging-is-stricter-too" class="hash-link" aria-label="Release packaging is stricter too का सीधा लिंक" title="Release packaging is stricter too का सीधा लिंक" translate="no">​</a></h2>
<p>The release workflow now does more than just "build something on one runner and upload it."</p>
<p>It now verifies CI status for the tag commit, builds release archives across the supported target set, and generates checksums for published assets.</p>
<p>The current target matrix includes:</p>
<ul>
<li class="">Linux x86_64</li>
<li class="">macOS x86_64</li>
<li class="">macOS arm64</li>
<li class="">Windows x86_64</li>
</ul>
<p>That improves two things at once:</p>
<ul>
<li class="">release confidence for maintainers</li>
<li class="">install trust for operators who want explicit artifact checksums</li>
</ul>
<p>Again, this is not a shiny feature. It is a sign that the project is treating delivery as part of the runtime, not something outside it.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-use-the-new-checks-in-practice">How to use the new checks in practice<a href="https://microclaw.org/hi/blog/maturity-hardening#how-to-use-the-new-checks-in-practice" class="hash-link" aria-label="How to use the new checks in practice का सीधा लिंक" title="How to use the new checks in practice का सीधा लिंक" translate="no">​</a></h2>
<p>If you contribute to MicroClaw or run it seriously, there are three practical habits worth adopting.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-run-dependency-checks-locally-before-pushing-security-sensitive-changes">1. Run dependency checks locally before pushing security-sensitive changes<a href="https://microclaw.org/hi/blog/maturity-hardening#1-run-dependency-checks-locally-before-pushing-security-sensitive-changes" class="hash-link" aria-label="1. Run dependency checks locally before pushing security-sensitive changes का सीधा लिंक" title="1. Run dependency checks locally before pushing security-sensitive changes का सीधा लिंक" translate="no">​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">cargo audit</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">cargo deny check advisories bans licenses</span><br></div></code></pre></div></div>
<p>That is especially relevant when touching:</p>
<ul>
<li class="">auth</li>
<li class="">Web APIs</li>
<li class="">tool execution</li>
<li class="">sandbox/runtime selection</li>
<li class="">release workflows</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-review-config-risk-through-the-operator-api">2. Review config risk through the operator API<a href="https://microclaw.org/hi/blog/maturity-hardening#2-review-config-risk-through-the-operator-api" class="hash-link" aria-label="2. Review config risk through the operator API का सीधा लिंक" title="2. Review config risk through the operator API का सीधा लिंक" translate="no">​</a></h3>
<p>If you already have an operator API key, you can query the self-check directly:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">curl -sS http://127.0.0.1:10961/api/config/self_check \</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  -H "Authorization: Bearer $MICROCLAW_OPERATOR_API_KEY"</span><br></div></code></pre></div></div>
<p>That gives you a faster read on unsafe defaults than manually scanning a long config file.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-treat-docs-and-release-policy-as-part-of-the-change">3. Treat docs and release policy as part of the change<a href="https://microclaw.org/hi/blog/maturity-hardening#3-treat-docs-and-release-policy-as-part-of-the-change" class="hash-link" aria-label="3. Treat docs and release policy as part of the change का सीधा लिंक" title="3. Treat docs and release policy as part of the change का सीधा लिंक" translate="no">​</a></h3>
<p>If a PR changes security expectations, support posture, or release gates, it should update:</p>
<ul>
<li class="">runtime code</li>
<li class="">repository docs</li>
<li class="">website docs</li>
</ul>
<p>MicroClaw now has a clearer path for that, and the release checklist reflects it.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-this-kind-of-work-matters">Why this kind of work matters<a href="https://microclaw.org/hi/blog/maturity-hardening#why-this-kind-of-work-matters" class="hash-link" aria-label="Why this kind of work matters का सीधा लिंक" title="Why this kind of work matters का सीधा लिंक" translate="no">​</a></h2>
<p>Agent runtimes accumulate risk in boring places.</p>
<p>Not just in model prompts or tool calls, but in:</p>
<ul>
<li class="">stale transitive dependencies</li>
<li class="">soft CI expectations</li>
<li class="">missing rollback criteria</li>
<li class="">undocumented support policy</li>
<li class="">operators not realizing a runtime is exposed with risky defaults</li>
</ul>
<p>The point of maturity hardening is not to eliminate all risk. The point is to make the risk visible, enforce a minimum bar automatically, and stop shipping avoidable surprises.</p>
<p>That is what this update does.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="read-next">Read next<a href="https://microclaw.org/hi/blog/maturity-hardening#read-next" class="hash-link" aria-label="Read next का सीधा लिंक" title="Read next का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://microclaw.org/hi/docs/web-operator-api">Web Operator API</a></li>
<li class=""><a class="" href="https://microclaw.org/hi/docs/security-policy">Security Policy</a></li>
<li class=""><a class="" href="https://microclaw.org/hi/docs/support-policy">Support Policy</a></li>
<li class=""><a class="" href="https://microclaw.org/hi/docs/release-policy">Release Policy</a></li>
<li class=""><a class="" href="https://microclaw.org/hi/docs/release-checklist">PR &amp; Release Checklist</a></li>
</ul>]]></content:encoded>
            <category>Release</category>
            <category>Reliability</category>
            <category>Web</category>
            <category>Runtime</category>
        </item>
        <item>
            <title><![CDATA[New: HTTP Hook Trigger for Headless Automation]]></title>
            <link>https://microclaw.org/hi/blog/http-hook-trigger-for-automation</link>
            <guid>https://microclaw.org/hi/blog/http-hook-trigger-for-automation</guid>
            <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MicroClaw now includes a dedicated HTTP hook trigger surface for external automation.]]></description>
            <content:encoded><![CDATA[<p>MicroClaw now includes a dedicated HTTP hook trigger surface for external automation.</p>
<p>This closes a common integration gap: webhook systems and scripts can trigger agent runs directly, without relying on chat-native ingress or static scheduler-only flows.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-shipped">What shipped<a href="https://microclaw.org/hi/blog/http-hook-trigger-for-automation#what-shipped" class="hash-link" aria-label="What shipped का सीधा लिंक" title="What shipped का सीधा लिंक" translate="no">​</a></h2>
<p>MicroClaw now exposes:</p>
<ul>
<li class=""><code>POST /hooks/agent</code> (alias: <code>/api/hooks/agent</code>)</li>
<li class=""><code>POST /hooks/wake</code> (alias: <code>/api/hooks/wake</code>)</li>
</ul>
<p><code>/hooks/agent</code> accepts an OpenClaw-style payload shape (<code>message</code>, optional <code>name</code>, optional <code>sessionKey</code>) and starts an async run.</p>
<p><code>/hooks/wake</code> supports two modes:</p>
<ul>
<li class=""><code>now</code> (default): run immediately</li>
<li class=""><code>next-heartbeat</code>: queue a system-event message only</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="security-model">Security model<a href="https://microclaw.org/hi/blog/http-hook-trigger-for-automation#security-model" class="hash-link" aria-label="Security model का सीधा लिंक" title="Security model का सीधा लिंक" translate="no">​</a></h2>
<p>These endpoints are protected by a dedicated hook token:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">channels</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">web</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">hooks_token</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"replace-with-secret"</span><br></div></code></pre></div></div>
<p>Auth headers:</p>
<ul>
<li class=""><code>Authorization: Bearer &lt;token&gt;</code></li>
<li class=""><code>x-openclaw-token: &lt;token&gt;</code></li>
<li class=""><code>x-microclaw-hook-token: &lt;token&gt;</code></li>
</ul>
<p>This keeps webhook ingress auth separated from operator API key scopes.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="session-key-safety-defaults">Session-key safety defaults<a href="https://microclaw.org/hi/blog/http-hook-trigger-for-automation#session-key-safety-defaults" class="hash-link" aria-label="Session-key safety defaults का सीधा लिंक" title="Session-key safety defaults का सीधा लिंक" translate="no">​</a></h2>
<p>To reduce risky external routing, request <code>sessionKey</code> override is off by default:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">channels</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">web</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">hooks_default_session_key</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"hook:ingress"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">hooks_allow_request_session_key</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#36acaa">false</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">hooks_allowed_session_key_prefixes</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"hook:"</span><span class="token punctuation" style="color:#393A34">]</span><br></div></code></pre></div></div>
<p>If you enable request overrides, prefix allowlists let you constrain where external traffic can route.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-this-matters">Why this matters<a href="https://microclaw.org/hi/blog/http-hook-trigger-for-automation#why-this-matters" class="hash-link" aria-label="Why this matters का सीधा लिंक" title="Why this matters का सीधा लिंक" translate="no">​</a></h2>
<p>Before this, MicroClaw already had Web send endpoints, but webhook-style trigger semantics were less explicit for automation clients.</p>
<p>Now the runtime has a first-class ingress path for:</p>
<ul>
<li class="">CI/CD checks and summary bots</li>
<li class="">inbound SaaS events (monitoring, incident tools, ticketing)</li>
<li class="">script-based orchestration and fan-out workflows</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="quick-example">Quick example<a href="https://microclaw.org/hi/blog/http-hook-trigger-for-automation#quick-example" class="hash-link" aria-label="Quick example का सीधा लिंक" title="Quick example का सीधा लिंक" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">curl -sS http://127.0.0.1:10961/hooks/agent \</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  -H "Authorization: Bearer $MICROCLAW_HOOKS_TOKEN" \</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  -H "Content-Type: application/json" \</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  -d '{"message":"Summarize inbox","name":"Email"}'</span><br></div></code></pre></div></div>
<p>Then consume run events via:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">curl -N "http://127.0.0.1:10961/api/stream?run_id=&lt;RUN_ID&gt;" \</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  -H "Authorization: Bearer $MICROCLAW_OPERATOR_API_KEY"</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="docs">Docs<a href="https://microclaw.org/hi/blog/http-hook-trigger-for-automation#docs" class="hash-link" aria-label="Docs का सीधा लिंक" title="Docs का सीधा लिंक" translate="no">​</a></h2>
<p>Full reference and troubleshooting:</p>
<ul>
<li class=""><a class="" href="https://microclaw.org/hi/docs/http-hook-trigger">HTTP Hook Trigger</a></li>
<li class=""><a class="" href="https://microclaw.org/hi/docs/web-operator-api">Web Operator API</a></li>
</ul>]]></content:encoded>
            <category>Release</category>
            <category>Web</category>
            <category>Runtime</category>
            <category>Channels</category>
        </item>
        <item>
            <title><![CDATA[Subagents in MicroClaw: Background Work Without Blocking Chat]]></title>
            <link>https://microclaw.org/hi/blog/subagents</link>
            <guid>https://microclaw.org/hi/blog/subagents</guid>
            <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The old way to delegate work inside an agent was to nest another mini-agent loop inside one tool call.]]></description>
            <content:encoded><![CDATA[<p>The old way to delegate work inside an agent was to nest another mini-agent loop inside one tool call.</p>
<p>MicroClaw is moving past that shape with session-native subagents: asynchronous runs with IDs, lifecycle state, limits, and follow-up controls.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-changed">What changed<a href="https://microclaw.org/hi/blog/subagents#what-changed" class="hash-link" aria-label="What changed का सीधा लिंक" title="What changed का सीधा लिंक" translate="no">​</a></h2>
<p>Instead of treating delegation like an opaque internal trick, MicroClaw exposes a real subagent runtime:</p>
<ul>
<li class=""><code>sessions_spawn</code> starts a run and returns immediately</li>
<li class=""><code>subagents_list</code> and <code>subagents_info</code> show state</li>
<li class=""><code>subagents_kill</code> cancels active work</li>
<li class=""><code>subagents_focus</code>, <code>subagents_focused</code>, and <code>subagents_send</code> turn one run into an ongoing work lane</li>
<li class=""><code>subagents_log</code> exposes timeline events</li>
<li class=""><code>subagents_retry_announces</code> flushes pending completion notices for control chats</li>
</ul>
<p>That makes subagents something operators can reason about, not just something hidden inside one model turn.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-asynchronous-runs-matter">Why asynchronous runs matter<a href="https://microclaw.org/hi/blog/subagents#why-asynchronous-runs-matter" class="hash-link" aria-label="Why asynchronous runs matter का सीधा लिंक" title="Why asynchronous runs matter का सीधा लिंक" translate="no">​</a></h2>
<p>In a chat interface, blocking the parent conversation is expensive.</p>
<p>If a delegated task needs several tool iterations, large repo scans, or slower model passes, the main chat should stay responsive. Session-native subagents do exactly that:</p>
<ol>
<li class="">parent agent spawns background work</li>
<li class="">run enters <code>accepted -&gt; queued -&gt; running</code></li>
<li class="">parent chat can continue handling other messages</li>
<li class="">completion lands as <code>completed</code>, <code>failed</code>, <code>timed_out</code>, or <code>cancelled</code></li>
</ol>
<p>This is a better operational model for real tasks than hiding all delegation inside a single synchronous tool call.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="safety-boundaries">Safety boundaries<a href="https://microclaw.org/hi/blog/subagents#safety-boundaries" class="hash-link" aria-label="Safety boundaries का सीधा लिंक" title="Safety boundaries का सीधा लिंक" translate="no">​</a></h2>
<p>Subagents are not full-power clones of the main agent.</p>
<p>MicroClaw applies several guardrails:</p>
<ul>
<li class="">restricted child registry through <code>ToolRegistry::new_sub_agent</code></li>
<li class="">per-chat active-run limits</li>
<li class="">per-parent child-run limits</li>
<li class="">configurable timeout with <code>subagents.run_timeout_secs</code></li>
<li class="">bounded nesting with <code>subagents.max_spawn_depth</code></li>
</ul>
<p>By default, max spawn depth is conservative. You can open it up deliberately when you want orchestration instead of accidental recursion.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="practical-workflow">Practical workflow<a href="https://microclaw.org/hi/blog/subagents#practical-workflow" class="hash-link" aria-label="Practical workflow का सीधा लिंक" title="Practical workflow का सीधा लिंक" translate="no">​</a></h2>
<p>A typical pattern looks like this:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">1. Spawn a worker with sessions_spawn</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">2. Keep chatting in the parent session</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">3. Inspect progress with subagents_list or subagents_info</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">4. Focus the chat on one run if follow-up work should stay attached</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">5. Send continuation work with subagents_send</span><br></div></code></pre></div></div>
<p>That focus/send model matters because it turns subagents from one-off helpers into durable task lanes inside a normal chat surface.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-this-helps">Where this helps<a href="https://microclaw.org/hi/blog/subagents#where-this-helps" class="hash-link" aria-label="Where this helps का सीधा लिंक" title="Where this helps का सीधा लिंक" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="repo-work">Repo work<a href="https://microclaw.org/hi/blog/subagents#repo-work" class="hash-link" aria-label="Repo work का सीधा लिंक" title="Repo work का सीधा लिंक" translate="no">​</a></h3>
<p>Spawn a background code scan, let it collect findings, then ask follow-up questions against the focused run.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="ops-and-incidents">Ops and incidents<a href="https://microclaw.org/hi/blog/subagents#ops-and-incidents" class="hash-link" aria-label="Ops and incidents का सीधा लिंक" title="Ops and incidents का सीधा लिंक" translate="no">​</a></h3>
<p>Keep the main room responsive while one worker investigates logs, another summarizes alerts, and another drafts a status update.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="structured-orchestration">Structured orchestration<a href="https://microclaw.org/hi/blog/subagents#structured-orchestration" class="hash-link" aria-label="Structured orchestration का सीधा लिंक" title="Structured orchestration का सीधा लिंक" translate="no">​</a></h3>
<p>For bounded fan-out work, MicroClaw also includes <code>subagents_orchestrate</code>, which builds on the same runtime instead of inventing a separate execution path.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-architectural-point">The architectural point<a href="https://microclaw.org/hi/blog/subagents#the-architectural-point" class="hash-link" aria-label="The architectural point का सीधा लिंक" title="The architectural point का सीधा लिंक" translate="no">​</a></h2>
<p>This is not just "multi-agent" branding.</p>
<p>The meaningful change is that delegation now has durable state in the runtime and database: run IDs, status transitions, budgets, cancellation, result text, and event logs. That gives MicroClaw a cleaner foundation for observability, retries, and future orchestration patterns.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="read-next">Read next<a href="https://microclaw.org/hi/blog/subagents#read-next" class="hash-link" aria-label="Read next का सीधा लिंक" title="Read next का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://microclaw.org/hi/docs/tools">Tools reference</a></li>
<li class=""><a class="" href="https://microclaw.org/hi/docs/architecture-context">Context lifecycle</a></li>
<li class=""><a class="" href="https://microclaw.org/hi/docs/roadmap">Roadmap</a></li>
</ul>]]></content:encoded>
            <category>Agentic AI</category>
            <category>Runtime</category>
            <category>Architecture</category>
        </item>
        <item>
            <title><![CDATA[Telegram Topic Mode: One Group, Clean Session Boundaries]]></title>
            <link>https://microclaw.org/hi/blog/telegram-topic-mode</link>
            <guid>https://microclaw.org/hi/blog/telegram-topic-mode</guid>
            <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Telegram forum groups are useful until every thread shares one agent memory buffer.]]></description>
            <content:encoded><![CDATA[<p>Telegram forum groups are useful until every thread shares one agent memory buffer.</p>
<p>MicroClaw's Telegram topic mode fixes that by routing each forum topic as its own chat session, while still replying inside the original Telegram thread.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-topic-mode-does">What topic mode does<a href="https://microclaw.org/hi/blog/telegram-topic-mode#what-topic-mode-does" class="hash-link" aria-label="What topic mode does का सीधा लिंक" title="What topic mode does का सीधा लिंक" translate="no">​</a></h2>
<p>When <code>channels.telegram.topic_routing.enabled</code> is on, MicroClaw stores a topic message with:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">external_chat_id=&lt;chat_id&gt;:&lt;thread_id&gt;</span><br></div></code></pre></div></div>
<p>That small routing change matters because it gives each topic:</p>
<ul>
<li class="">its own session history</li>
<li class="">its own memory and resumable context</li>
<li class="">its own focused sub-agent binding when subagents are in use</li>
</ul>
<p>Without topic routing, a busy support forum or operator room can blur multiple workstreams into one long conversation.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-this-is-the-right-default-for-forum-style-groups">Why this is the right default for forum-style groups<a href="https://microclaw.org/hi/blog/telegram-topic-mode#why-this-is-the-right-default-for-forum-style-groups" class="hash-link" aria-label="Why this is the right default for forum-style groups का सीधा लिंक" title="Why this is the right default for forum-style groups का सीधा लिंक" translate="no">​</a></h2>
<p>Telegram topics are already a user-facing isolation model. The runtime should match that model.</p>
<p>With topic mode enabled, you can treat one Telegram supergroup like a bundle of small task rooms:</p>
<ul>
<li class="">one topic for release ops</li>
<li class="">one topic for customer incidents</li>
<li class="">one topic for code review follow-ups</li>
<li class="">one topic for experiments or scratch work</li>
</ul>
<p>The bot keeps replies inside the same topic by preserving <code>message_thread_id</code> on outbound messages, so the user experience still feels native to Telegram.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="configuration">Configuration<a href="https://microclaw.org/hi/blog/telegram-topic-mode#configuration" class="hash-link" aria-label="Configuration का सीधा लिंक" title="Configuration का सीधा लिंक" translate="no">​</a></h2>
<p>Channel-wide:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">channels</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">telegram</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">enabled</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#36acaa">true</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">topic_routing</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">enabled</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#36acaa">true</span><br></div></code></pre></div></div>
<p>Per-account override in multi-bot mode:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">channels</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">telegram</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">default_account</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"main"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">topic_routing</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">enabled</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#36acaa">false</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">accounts</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">main</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#00a4db">enabled</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#36acaa">true</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#00a4db">bot_token</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"123456:ABC..."</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#00a4db">bot_username</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"main_bot"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">support</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#00a4db">enabled</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#36acaa">true</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#00a4db">bot_token</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"987654:XYZ..."</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#00a4db">bot_username</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"support_bot"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#00a4db">topic_routing</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token key atrule" style="color:#00a4db">enabled</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#36acaa">true</span><br></div></code></pre></div></div>
<p>That lets one bot stay topic-aware while another keeps legacy group behavior.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-it-helps-immediately">Where it helps immediately<a href="https://microclaw.org/hi/blog/telegram-topic-mode#where-it-helps-immediately" class="hash-link" aria-label="Where it helps immediately का सीधा लिंक" title="Where it helps immediately का सीधा लिंक" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-support-and-triage-groups">1. Support and triage groups<a href="https://microclaw.org/hi/blog/telegram-topic-mode#1-support-and-triage-groups" class="hash-link" aria-label="1. Support and triage groups का सीधा लिंक" title="1. Support and triage groups का सीधा लिंक" translate="no">​</a></h3>
<p>Each customer issue can live in its own topic instead of fighting for one shared context window.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-multi-bot-operations">2. Multi-bot operations<a href="https://microclaw.org/hi/blog/telegram-topic-mode#2-multi-bot-operations" class="hash-link" aria-label="2. Multi-bot operations का सीधा लिंक" title="2. Multi-bot operations का सीधा लिंक" translate="no">​</a></h3>
<p>MicroClaw already supports multiple Telegram bot accounts in one runtime. Topic mode keeps each bot's thread-local work cleaner in shared operator groups.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-long-running-tasks">3. Long-running tasks<a href="https://microclaw.org/hi/blog/telegram-topic-mode#3-long-running-tasks" class="hash-link" aria-label="3. Long-running tasks का सीधा लिंक" title="3. Long-running tasks का सीधा लिंक" translate="no">​</a></h3>
<p>A topic can become the stable home for a single ongoing effort, such as release prep or a debugging session, without contaminating unrelated chats.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="practical-behavior">Practical behavior<a href="https://microclaw.org/hi/blog/telegram-topic-mode#practical-behavior" class="hash-link" aria-label="Practical behavior का सीधा लिंक" title="Practical behavior का सीधा लिंक" translate="no">​</a></h2>
<p>Once enabled:</p>
<ul>
<li class="">replies in different topics no longer share the same <code>external_chat_id</code></li>
<li class="">session resume works per topic</li>
<li class="">structured memory extraction sees topic conversations as separate chat streams</li>
<li class="">follow-up work lands back in the same Telegram thread</li>
</ul>
<p>This is one of those changes that looks small in config but removes a lot of operational noise in practice.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="docs">Docs<a href="https://microclaw.org/hi/blog/telegram-topic-mode#docs" class="hash-link" aria-label="Docs का सीधा लिंक" title="Docs का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://microclaw.org/hi/docs/channel-setup-telegram">Telegram setup</a></li>
<li class=""><a class="" href="https://microclaw.org/hi/docs/configuration">Configuration reference</a></li>
<li class=""><a class="" href="https://microclaw.org/hi/docs/quickstart">Quickstart</a></li>
</ul>]]></content:encoded>
            <category>Telegram</category>
            <category>Channels</category>
            <category>Runtime</category>
        </item>
        <item>
            <title><![CDATA[MicroClaw Weekly Update: Feb 20 - Feb 26, 2026]]></title>
            <link>https://microclaw.org/hi/blog/microclaw-weekly-updates-2026-02-26</link>
            <guid>https://microclaw.org/hi/blog/microclaw-weekly-updates-2026-02-26</guid>
            <pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[This weekly update summarizes what changed in MicroClaw during February 20, 2026 to February 26, 2026.]]></description>
            <content:encoded><![CDATA[<p>This weekly update summarizes what changed in MicroClaw during <strong>February 20, 2026 to February 26, 2026</strong>.</p>
<p>The pace was high: channel coverage expanded, runtime reliability was hardened, and setup/config workflows became much better for multi-account bot operations.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="scope">Scope<a href="https://microclaw.org/hi/blog/microclaw-weekly-updates-2026-02-26#scope" class="hash-link" aria-label="Scope का सीधा लिंक" title="Scope का सीधा लिंक" translate="no">​</a></h2>
<p>This post is based on the repository commit history in the 7-day window ending on <strong>February 26, 2026</strong>.</p>
<p>At a high level, recent changes cluster into these tracks:</p>
<ul>
<li class="">multi-account and multi-bot usability</li>
<li class="">channel reliability and dedup behavior</li>
<li class="">slash-command safety and command UX</li>
<li class="">plugin framework and extensibility</li>
<li class="">web/auth/config hardening</li>
<li class="">provider/runtime compatibility updates</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-multi-account-ux-moved-from-supported-to-operational">1) Multi-Account UX Moved From "Supported" to "Operational"<a href="https://microclaw.org/hi/blog/microclaw-weekly-updates-2026-02-26#1-multi-account-ux-moved-from-supported-to-operational" class="hash-link" aria-label="1) Multi-Account UX Moved From &quot;Supported&quot; to &quot;Operational&quot; का सीधा लिंक" title="1) Multi-Account UX Moved From &quot;Supported&quot; to &quot;Operational&quot; का सीधा लिंक" translate="no">​</a></h2>
<p>Multi-account runtime support existed, but configuration surfaces were still uneven in day-to-day usage.</p>
<p>Recent work closed that gap:</p>
<ul>
<li class="">setup and config paths continued migration toward account-based channel structure (<code>channels.&lt;name&gt;.accounts</code>)</li>
<li class="">per-bot model overrides were propagated across runtime and setup</li>
<li class="">setup/web config support was improved for multi-bot account editing workflows</li>
</ul>
<p>Practical result: operators can manage more than one token/bot per channel with less manual YAML editing and lower risk of accidental config regression.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-channel-runtime-reliability-duplicate-suppression-and-startup-guards">2) Channel Runtime Reliability: Duplicate Suppression and Startup Guards<a href="https://microclaw.org/hi/blog/microclaw-weekly-updates-2026-02-26#2-channel-runtime-reliability-duplicate-suppression-and-startup-guards" class="hash-link" aria-label="2) Channel Runtime Reliability: Duplicate Suppression and Startup Guards का सीधा लिंक" title="2) Channel Runtime Reliability: Duplicate Suppression and Startup Guards का सीधा लिंक" translate="no">​</a></h2>
<p>A major reliability theme this week was “only process each inbound message once.”</p>
<p>Highlights included:</p>
<ul>
<li class="">cross-channel inbound dedup tightening</li>
<li class="">Telegram/Feishu duplicate handling fixes</li>
<li class="">startup-time message guards to avoid replay noise</li>
<li class="">Feishu webhook retry and control-path fixes</li>
</ul>
<p>These changes reduce repeated replies, improve idempotency under retries, and make cold starts less noisy in production.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-slash-commands-became-safer-and-more-predictable">3) Slash Commands Became Safer and More Predictable<a href="https://microclaw.org/hi/blog/microclaw-weekly-updates-2026-02-26#3-slash-commands-became-safer-and-more-predictable" class="hash-link" aria-label="3) Slash Commands Became Safer and More Predictable का सीधा लिंक" title="3) Slash Commands Became Safer and More Predictable का सीधा लिंक" translate="no">​</a></h2>
<p>Slash command behavior was standardized and hardened:</p>
<ul>
<li class="">slash inputs are treated as commands (not normal chat history content)</li>
<li class="">unknown command handling was documented and normalized</li>
<li class="">mention-gating behavior in groups/channels was tightened by default</li>
<li class="">permissive mode remains explicit via <code>allow_group_slash_without_mention</code></li>
</ul>
<p>Net effect: better command safety in group contexts and cleaner model context history.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-plugin-system-accelerated">4) Plugin System Accelerated<a href="https://microclaw.org/hi/blog/microclaw-weekly-updates-2026-02-26#4-plugin-system-accelerated" class="hash-link" aria-label="4) Plugin System Accelerated का सीधा लिंक" title="4) Plugin System Accelerated का सीधा लिंक" translate="no">​</a></h2>
<p>The plugin line saw significant depth improvements:</p>
<ul>
<li class="">initial plugin framework for commands/tools/policies</li>
<li class="">dynamic plugin tool naming without restart</li>
<li class="">admin command and validation coverage improvements</li>
<li class="">expanded matrix tests for plugin permissions and behavior</li>
</ul>
<p>This gives teams a more realistic path to extending MicroClaw without forking core runtime logic.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-channel-coverage-expanded">5) Channel Coverage Expanded<a href="https://microclaw.org/hi/blog/microclaw-weekly-updates-2026-02-26#5-channel-coverage-expanded" class="hash-link" aria-label="5) Channel Coverage Expanded का सीधा लिंक" title="5) Channel Coverage Expanded का सीधा लिंक" translate="no">​</a></h2>
<p>During this window, channel support and channel architecture continued to broaden:</p>
<ul>
<li class="">IRC support matured</li>
<li class="">Matrix support advanced quickly (including encrypted DM and stability work in this period)</li>
<li class="">additional channel integrations (Signal, DingTalk, QQ) landed in channel/runtime paths</li>
</ul>
<p>Combined with multi-account direction, this strengthens the “single runtime, many ingress surfaces” strategy.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-webauthconfig-and-operator-hardening">6) Web/Auth/Config and Operator Hardening<a href="https://microclaw.org/hi/blog/microclaw-weekly-updates-2026-02-26#6-webauthconfig-and-operator-hardening" class="hash-link" aria-label="6) Web/Auth/Config and Operator Hardening का सीधा लिंक" title="6) Web/Auth/Config and Operator Hardening का सीधा लिंक" translate="no">​</a></h2>
<p>Operator-facing reliability/security also moved forward:</p>
<ul>
<li class="">auth scope normalization and API key scope validation hardening</li>
<li class="">web auth/session handling fixes</li>
<li class="">config self-check/security posture improvements</li>
<li class="">docs and generated artifact checks kept aligned with CI drift guards</li>
</ul>
<p>The direction is clear: reduce operational surprises and make the safe path the default.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-provider-and-llm-compatibility-work">7) Provider and LLM Compatibility Work<a href="https://microclaw.org/hi/blog/microclaw-weekly-updates-2026-02-26#7-provider-and-llm-compatibility-work" class="hash-link" aria-label="7) Provider and LLM Compatibility Work का सीधा लिंक" title="7) Provider and LLM Compatibility Work का सीधा लिंक" translate="no">​</a></h2>
<p>Provider integration work focused on compatibility and guardrails:</p>
<ul>
<li class="">OpenAI-compatible response handling fixes</li>
<li class="">body override support by provider/model surfaced and documented</li>
<li class="">setup validation edge cases for OpenAI-compatible base URLs fixed</li>
</ul>
<p>This lowers breakage risk when providers evolve API behavior.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="version-cadence">Version Cadence<a href="https://microclaw.org/hi/blog/microclaw-weekly-updates-2026-02-26#version-cadence" class="hash-link" aria-label="Version Cadence का सीधा लिंक" title="Version Cadence का सीधा लिंक" translate="no">​</a></h2>
<p>The project continued fast release cadence in this period, with version bumps up through the <code>0.0.11x</code> line, reflecting ongoing incremental hardening and feature delivery.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-to-watch-next">What To Watch Next<a href="https://microclaw.org/hi/blog/microclaw-weekly-updates-2026-02-26#what-to-watch-next" class="hash-link" aria-label="What To Watch Next का सीधा लिंक" title="What To Watch Next का सीधा लिंक" translate="no">​</a></h2>
<p>Based on this week’s direction, likely near-term priorities:</p>
<ol>
<li class="">Continue reducing channel-specific edge-case divergence</li>
<li class="">Strengthen multi-account UX in setup/web/docs and migration safety</li>
<li class="">Expand plugin maturity from framework to production patterns</li>
<li class="">Keep reliability instrumentation and docs in lockstep with runtime behavior</li>
</ol>]]></content:encoded>
            <category>Release</category>
            <category>Runtime</category>
            <category>Channels</category>
            <category>Web</category>
            <category>Reliability</category>
        </item>
        <item>
            <title><![CDATA[MicroClaw Feb 19: What Changed in the Past Week]]></title>
            <link>https://microclaw.org/hi/blog/microclaw-february-2026-updates</link>
            <guid>https://microclaw.org/hi/blog/microclaw-february-2026-updates</guid>
            <pubDate>Thu, 19 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MicroClaw has moved quickly in February, with significant updates across ClawHub integration, voice handling, path compatibility, modularization, web/auth hardening, and release automation.]]></description>
            <content:encoded><![CDATA[<p>MicroClaw has moved quickly in February, with significant updates across ClawHub integration, voice handling, path compatibility, modularization, web/auth hardening, and release automation.</p>
<p>This post summarizes the direction and outcomes based on the <strong>50 most recent commits</strong> on <code>main</code>.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="scope-and-time-window">Scope and Time Window<a href="https://microclaw.org/hi/blog/microclaw-february-2026-updates#scope-and-time-window" class="hash-link" aria-label="Scope and Time Window का सीधा लिंक" title="Scope and Time Window का सीधा लिंक" translate="no">​</a></h2>
<p>This update covers the most recent 50 commits up to <strong>February 19, 2026</strong>.</p>
<p>At a high level, the work clusters into six tracks:</p>
<ul>
<li class="">ClawHub and skills lifecycle</li>
<li class="">provider/runtime compatibility</li>
<li class="">config/path compatibility and migration safety</li>
<li class="">web/auth/ops hardening</li>
<li class="">modular crate boundaries and codebase cleanup</li>
<li class="">release and deployment reliability</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-clawhub-from-initial-integration-to-production-friendly-flow">1) ClawHub: From Initial Integration to Production-Friendly Flow<a href="https://microclaw.org/hi/blog/microclaw-february-2026-updates#1-clawhub-from-initial-integration-to-production-friendly-flow" class="hash-link" aria-label="1) ClawHub: From Initial Integration to Production-Friendly Flow का सीधा लिंक" title="1) ClawHub: From Initial Integration to Production-Friendly Flow का सीधा लिंक" translate="no">​</a></h2>
<p>The registry path is now substantially more practical.</p>
<p>Key outcomes from this cycle:</p>
<ul>
<li class=""><code>microclaw skill</code> command set is usable for search/install/list/inspect workflows</li>
<li class="">async runtime panic scenarios were removed in CLI/tool execution paths</li>
<li class="">transient failures now have retry behavior in key flows</li>
<li class=""><code>/reload-skills</code> support was added in multiple channels to reduce restart dependency</li>
<li class="">follow-up fixes corrected install result semantics and endpoint behavior</li>
</ul>
<p>Operationally, this means less friction for skill discovery and activation, and fewer false-positive install states.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-voice-transcription-cloud--local-execution-modes">2) Voice Transcription: Cloud + Local Execution Modes<a href="https://microclaw.org/hi/blog/microclaw-february-2026-updates#2-voice-transcription-cloud--local-execution-modes" class="hash-link" aria-label="2) Voice Transcription: Cloud + Local Execution Modes का सीधा लिंक" title="2) Voice Transcription: Cloud + Local Execution Modes का सीधा लिंक" translate="no">​</a></h2>
<p>Voice handling now supports both hosted and local execution paths.</p>
<p>Highlights:</p>
<ul>
<li class="">OpenAI remains the default provider path</li>
<li class="">local command-based transcription is now configurable</li>
<li class="">failure-path cleanup was tightened to avoid temp-file leaks</li>
</ul>
<p>This gives teams more flexibility in privacy/performance/cost tradeoffs while preserving a simple default for most users.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-path-and-data-compatibility-hardening-after-real-world-merge-pressure">3) Path and Data Compatibility: Hardening After Real-World Merge Pressure<a href="https://microclaw.org/hi/blog/microclaw-february-2026-updates#3-path-and-data-compatibility-hardening-after-real-world-merge-pressure" class="hash-link" aria-label="3) Path and Data Compatibility: Hardening After Real-World Merge Pressure का सीधा लिंक" title="3) Path and Data Compatibility: Hardening After Real-World Merge Pressure का सीधा लिंक" translate="no">​</a></h2>
<p>A major focus in the follow-up work was preventing path regressions.</p>
<p>Important corrections included:</p>
<ul>
<li class="">restoring dynamic <code>data_dir</code> behavior for skills/lockfile defaults</li>
<li class="">aligning assertions and cross-platform path expectations</li>
<li class="">clarifying skills source layout (<code>skills/built-in</code>) vs runtime state layout</li>
</ul>
<p>Net effect: upgrades are safer for existing deployments that already depend on custom data roots.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-runtime-and-provider-compatibility">4) Runtime and Provider Compatibility<a href="https://microclaw.org/hi/blog/microclaw-february-2026-updates#4-runtime-and-provider-compatibility" class="hash-link" aria-label="4) Runtime and Provider Compatibility का सीधा लिंक" title="4) Runtime and Provider Compatibility का सीधा लिंक" translate="no">​</a></h2>
<p>The runtime also received compatibility-focused cleanup:</p>
<ul>
<li class="">DeepSeek/tool-call behavior fixes</li>
<li class="">replacement of brittle model-name checks with provider capability flags</li>
<li class="">improved LLM/provider conventions in docs to reduce future drift</li>
</ul>
<p>This lowers maintenance risk as provider APIs evolve.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-webauthops-and-modularity-progress">5) Web/Auth/Ops and Modularity Progress<a href="https://microclaw.org/hi/blog/microclaw-february-2026-updates#5-webauthops-and-modularity-progress" class="hash-link" aria-label="5) Web/Auth/Ops and Modularity Progress का सीधा लिंक" title="5) Web/Auth/Ops and Modularity Progress का सीधा लिंक" translate="no">​</a></h2>
<p>Beyond feature work, a lot of value in this batch is structural:</p>
<ul>
<li class="">auth/metrics and config self-check hardening</li>
<li class="">web handler refactors and module split cleanup</li>
<li class="">continued modular extraction into workspace crates (<code>core/storage/tools/channels/app</code>)</li>
<li class="">removal of temporary wrappers/shims after migration milestones</li>
</ul>
<p>These changes improve long-term maintainability and make feature iteration less risky.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-release-and-delivery-cadence">6) Release and Delivery Cadence<a href="https://microclaw.org/hi/blog/microclaw-february-2026-updates#6-release-and-delivery-cadence" class="hash-link" aria-label="6) Release and Delivery Cadence का सीधा लिंक" title="6) Release and Delivery Cadence का सीधा लिंक" translate="no">​</a></h2>
<p>This period also included active release execution work:</p>
<ul>
<li class="">version bumps through <code>0.0.83</code>, <code>0.0.85</code>, <code>0.0.86</code></li>
<li class="">release/build script refinements</li>
<li class="">Homebrew tap updates and release packaging flow maintenance</li>
</ul>
<p>The direction is clear: keep shipping while steadily tightening quality gates and deployment repeatability.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-to-expect-next">What to Expect Next<a href="https://microclaw.org/hi/blog/microclaw-february-2026-updates#what-to-expect-next" class="hash-link" aria-label="What to Expect Next का सीधा लिंक" title="What to Expect Next का सीधा लिंक" translate="no">​</a></h2>
<p>Given this trajectory, near-term priorities are likely to continue around:</p>
<ul>
<li class="">ClawHub reliability and skill lifecycle UX</li>
<li class="">cross-channel consistency in runtime behavior</li>
<li class="">deployment smoothness and fewer manual release interventions</li>
<li class="">further simplification after modularization milestones</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="appendix-50-recent-commits-covered">Appendix: 50 Recent Commits Covered<a href="https://microclaw.org/hi/blog/microclaw-february-2026-updates#appendix-50-recent-commits-covered" class="hash-link" aria-label="Appendix: 50 Recent Commits Covered का सीधा लिंक" title="Appendix: 50 Recent Commits Covered का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class=""><code>1a67c37</code> chore: trigger CI for release 0.0.86 finalize</li>
<li class=""><code>4b8f7b1</code> bump version to 0.0.86</li>
<li class=""><code>d6a030e</code> Merge pull request #45 from microclaw/fix/pr44-followup</li>
<li class=""><code>7d2aba1</code> fix ignore</li>
<li class=""><code>30e00f4</code> mv skill dir</li>
<li class=""><code>94dcfe9</code> docs: regenerate config defaults artifact</li>
<li class=""><code>8c30d3d</code> fix: follow up PR44 path and clawhub install regressions</li>
<li class=""><code>0ab79bc</code> Merge pull request #44 from klampatech/feature/clawhub-integration-fixes</li>
<li class=""><code>45e1ddf</code> chore: remove test artifacts from PR</li>
<li class=""><code>039c11f</code> bump version to 0.0.85</li>
<li class=""><code>60fb947</code> docs: add llm provider capability-based conventions</li>
<li class=""><code>c09a3bc</code> Merge origin/main into feature branch and resolve conflicts</li>
<li class=""><code>10ae7b6</code> refactor(llm): replace DeepSeek model-name checks with provider capability flags</li>
<li class=""><code>a933732</code> Merge pull request #43 from mission-deny-the-mission/fix/deepseek-reasoning</li>
<li class=""><code>bf4fb7e</code> feat(clawhub): integrate ClawHub skills and add local voice transcription</li>
<li class=""><code>d49b1a3</code> Merge pull request #42 from microclaw/feature/ops-hardening-feb19</li>
<li class=""><code>40516fd</code> Fix windows path assertions and document path compatibility</li>
<li class=""><code>98e67c9</code> Improve skill availability diagnostics and filtering</li>
<li class=""><code>3606842</code> Move built-in skill sources to skills/built-in</li>
<li class=""><code>9715f8a</code> Update working_dir default to home-based path</li>
<li class=""><code>5597f39</code> Simplify data/skills path logic without env overrides</li>
<li class=""><code>5068792</code> fix deepseek reasoning/tool-call compatibility</li>
<li class=""><code>65567cd</code> Default data_dir to ~/.microclaw when not configured</li>
<li class=""><code>82351af</code> Add configurable skills_dir override</li>
<li class=""><code>216dac9</code> Harden web metrics/auth flow and adopt ~/.microclaw skills home</li>
<li class=""><code>7456f0c</code> Merge pull request #41 from microclaw/codex/fix-clawhub-pr39</li>
<li class=""><code>7053399</code> refactor clawhub config, test templates, and gateway adapter</li>
<li class=""><code>bf6d7b7</code> extract clawhub core into microclaw-clawhub crate</li>
<li class=""><code>d85f226</code> update generated config defaults and include clawhub fixes</li>
<li class=""><code>5852ffa</code> fix clawhub merge fallout and restore lint clean</li>
<li class=""><code>3d95bec</code> Merge pull request #39 from klampatech/feat/clawhub-integration</li>
<li class=""><code>e58a244</code> Merge branch 'feature/clawhub-init-v0' into feat/clawhub-integration</li>
<li class=""><code>432e2aa</code> bump version to 0.0.83</li>
<li class=""><code>6185b81</code> Merge pull request #40 from microclaw/feature/auth-feature</li>
<li class=""><code>d80571e</code> Fix legacy sessions schema index init ordering</li>
<li class=""><code>5fd4314</code> Add merge notes and rollback steps to upgrade guide</li>
<li class=""><code>4f278a8</code> Use platform hook scripts in hook block test</li>
<li class=""><code>c8a3a8e</code> Fix Windows hook block test command quoting</li>
<li class=""><code>450c77c</code> Add config self-check UI and split web config/stream modules</li>
<li class=""><code>b2df265</code> Refactor web handlers and harden config/OTLP checks</li>
<li class=""><code>1215d2a</code> lots of features</li>
<li class=""><code>f5ca180</code> bump version to 0.0.82</li>
<li class=""><code>faa2ad6</code> chore: trigger CI on main</li>
<li class=""><code>8e11fba</code> feat(clawhub): complete ClawHub integration v1</li>
<li class=""><code>3d59af4</code> bump version to 0.0.81</li>
<li class=""><code>4083f56</code> docs: align architecture and runtime docs with crate layout</li>
<li class=""><code>e33288f</code> Merge pull request #38 from microclaw/pr/final-cleanup-remove-usage-wrapper</li>
<li class=""><code>eb96f48</code> refactor(storage): remove usage wrapper module and use storage usage API directly</li>
<li class=""><code>e07bf93</code> Merge pull request #37 from microclaw/pr/finalize-modularity-boundaries</li>
<li class=""><code>5780822</code> refactor(modularity): finalize crate imports and remove legacy shim modules</li>
</ul>]]></content:encoded>
            <category>Architecture</category>
            <category>Agentic AI</category>
            <category>Rust</category>
            <category>Chat</category>
        </item>
        <item>
            <title><![CDATA[Built with Rust: MicroClaw as a Multi-Channel Agent Runtime]]></title>
            <link>https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime</link>
            <guid>https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime</guid>
            <pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MicroClaw is no longer just a channel bot. In its current form, it is a Rust multi-channel agent runtime with a shared agent engine, provider abstraction, durable session state, and layered memory.]]></description>
            <content:encoded><![CDATA[<p>MicroClaw is no longer just a channel bot. In its current form, it is a <strong>Rust multi-channel agent runtime</strong> with a shared agent engine, provider abstraction, durable session state, and layered memory.</p>
<p>It supports Telegram, Discord, Slack, Feishu/Lark, IRC, and Web through adapters, while keeping one core execution path for reasoning and tool use.</p>
<p>Source code: <a href="https://github.com/microclaw/microclaw" target="_blank" rel="noopener noreferrer" class="">https://github.com/microclaw/microclaw</a>
Quick Start: <a href="https://microclaw.org/docs/quickstart" target="_blank" rel="noopener noreferrer" class="">https://microclaw.org/docs/quickstart</a></p>
<p><img decoding="async" loading="lazy" alt="MicroClaw system architecture" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjgwIiBoZWlnaHQ9IjE3NzAiIHZpZXdCb3g9IjAgMCAxNjgwIDE3NzAiPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJiZyIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjEiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjZGJlYWZlIiAvPgogICAgICA8c3RvcCBvZmZzZXQ9IjQ4JSIgc3RvcC1jb2xvcj0iI2Y1ZDBmZSIgLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjY2NmYmYxIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iY29yZUJnIiB4MT0iMCIgeTE9IjAiIHgyPSIwIiB5Mj0iMSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC45MiIgLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjZjhmYWZjIiBzdG9wLW9wYWNpdHk9IjAuOSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8c3R5bGU+CiAgICAgIC50aXRsZXtmb250OjcwMCA1MHB4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMGYxNzJhfQogICAgICAuc3VidGl0bGV7Zm9udDo1MDAgMjJweCAnQXZlbmlyIE5leHQnLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX0KICAgICAgLmdyb3Vwe2ZvbnQ6NzAwIDI4cHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMwZjE3MmF9CiAgICAgIC5oe2ZvbnQ6NzAwIDIzcHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMwZjE3MmF9CiAgICAgIC5ze2ZvbnQ6NTAwIDE4cHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMxZjI5Mzd9CiAgICAgIC54c3tmb250OjUwMCAxNnB4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fQogICAgICAuYXtzdHJva2U6IzMzNDE1NTtzdHJva2Utd2lkdGg6Mi4yO2ZpbGw6bm9uZTttYXJrZXItZW5kOnVybCgjbSl9CiAgICAgIC5ie3N0cm9rZTojNjQ3NDhiO3N0cm9rZS13aWR0aDoxLjY7ZmlsbDpub25lO21hcmtlci1lbmQ6dXJsKCNtMil9CiAgICA8L3N0eWxlPgogICAgPG1hcmtlciBpZD0ibSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgcmVmWD0iNS44IiByZWZZPSIzLjUiIG9yaWVudD0iYXV0byI+CiAgICAgIDxwYXRoIGQ9Ik0wLDAgTDcsMy41IEwwLDcgeiIgZmlsbD0iIzMzNDE1NSIgLz4KICAgIDwvbWFya2VyPgogICAgPG1hcmtlciBpZD0ibTIiIG1hcmtlcldpZHRoPSI1LjUiIG1hcmtlckhlaWdodD0iNS41IiByZWZYPSI0LjgiIHJlZlk9IjIuNzUiIG9yaWVudD0iYXV0byI+CiAgICAgIDxwYXRoIGQ9Ik0wLDAgTDUuNSwyLjc1IEwwLDUuNSB6IiBmaWxsPSIjNjQ3NDhiIiAvPgogICAgPC9tYXJrZXI+CiAgPC9kZWZzPgogIDxyZWN0IHdpZHRoPSIxNjgwIiBoZWlnaHQ9IjE3NzAiIGZpbGw9InVybCgjYmcpIiAvPgogIDx0ZXh0IGNsYXNzPSJ0aXRsZSIgeD0iNjQiIHk9IjEzOC4wIj5NaWNyb0NsYXcgUnVudGltZSBBcmNoaXRlY3R1cmU8L3RleHQ+CiAgPHRleHQgY2xhc3M9InN1YnRpdGxlIiB4PSI2NCIgeT0iMTk1LjAiPkNoYW5uZWwgYWRhcHRlcnMgKyBzaGFyZWQgZW5naW5lICsgcHJvdmlkZXIgYWJzdHJhY3Rpb24gKyB0b29sIGV4ZWN1dGlvbiArIG1lbW9yeSArIG9ic2VydmFiaWxpdHk8L3RleHQ+CiAgPHRleHQgY2xhc3M9Imdyb3VwIiB4PSI3NiIgeT0iMzEyLjAiPkluZ3Jlc3MgQ2hhbm5lbHM8L3RleHQ+CiAgPHJlY3QgeD0iNzAiIHk9IjM0OC4wIiB3aWR0aD0iMjYwIiBoZWlnaHQ9IjE1OS4wIiByeD0iMTgiIGZpbGw9IiM5M2M1ZmQiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIzIiAvPgogIDx0ZXh0IGNsYXNzPSJoIiB4PSIxMzYiIHk9IjQzOC4wIj5UZWxlZ3JhbTwvdGV4dD4KICA8dGV4dCBjbGFzcz0ieHMiIHg9IjExNCIgeT0iNDc0LjAiPm1lbnRpb25zICsgY2F0Y2gtdXA8L3RleHQ+CiAgPHJlY3QgeD0iNzAiIHk9IjU0MC4wIiB3aWR0aD0iMjYwIiBoZWlnaHQ9IjE1OS4wIiByeD0iMTgiIGZpbGw9IiNjNGI1ZmQiIHN0cm9rZT0iIzZkMjhkOSIgc3Ryb2tlLXdpZHRoPSIzIiAvPgogIDx0ZXh0IGNsYXNzPSJoIiB4PSIxNDkiIHk9IjYzMC4wIj5EaXNjb3JkPC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4cyIgeD0iMTM0IiB5PSI2NjYuMCI+c3BsaXQgZGVsaXZlcnk8L3RleHQ+CiAgPHJlY3QgeD0iNzAiIHk9IjczMi4wIiB3aWR0aD0iMjYwIiBoZWlnaHQ9IjE1OS4wIiByeD0iMTgiIGZpbGw9IiM2N2U4ZjkiIHN0cm9rZT0iIzBlNzQ5MCIgc3Ryb2tlLXdpZHRoPSIzIiAvPgogIDx0ZXh0IGNsYXNzPSJoIiB4PSIxNzYiIHk9IjgyMi4wIj5XZWI8L3RleHQ+CiAgPHRleHQgY2xhc3M9InhzIiB4PSIxMjciIHk9Ijg1OC4wIj5TU0UgKyBzdHJlYW0gcmVwbGF5PC90ZXh0PgogIDxyZWN0IHg9IjcwIiB5PSI5MjQuMCIgd2lkdGg9IjI2MCIgaGVpZ2h0PSIxNTkuMCIgcng9IjE4IiBmaWxsPSIjODZlZmFjIiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMyIgLz4KICA8dGV4dCBjbGFzcz0iaCIgeD0iMTcyIiB5PSIxMDE0LjAiPlNsYWNrPC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4cyIgeD0iMTMyIiB5PSIxMDUwLjAiPmFkYXB0ZXIgZXh0ZW5zaW9uPC90ZXh0PgogIDxyZWN0IHg9IjcwIiB5PSIxMTE2LjAiIHdpZHRoPSIyNjAiIGhlaWdodD0iMTU5LjAiIHJ4PSIxOCIgZmlsbD0iI2Y5YThkNCIgc3Ryb2tlPSIjYmUxODVkIiBzdHJva2Utd2lkdGg9IjMiIC8+CiAgPHRleHQgY2xhc3M9ImgiIHg9IjE2NiIgeT0iMTIwNi4wIj5GZWlzaHU8L3RleHQ+CiAgPHRleHQgY2xhc3M9InhzIiB4PSIxNDQiIHk9IjEyNDIuMCI+cGxhdGZvcm0gcGFyaXR5PC90ZXh0PgogIDxyZWN0IHg9IjM4NCIgeT0iMjcwLjAiIHdpZHRoPSI5MDYiIGhlaWdodD0iMTM4MC4wIiByeD0iMjgiIGZpbGw9InVybCgjY29yZUJnKSIgc3Ryb2tlPSIjMzM0MTU1IiBzdHJva2Utd2lkdGg9IjMiIC8+CiAgPHRleHQgY2xhc3M9Imdyb3VwIiB4PSI3MjgiIHk9IjM0Mi4wIj5TaGFyZWQgQ29yZSAoUnVzdCk8L3RleHQ+CiAgPHJlY3QgeD0iNDIwIiB5PSIzODQuMCIgd2lkdGg9IjgzNCIgaGVpZ2h0PSIxMTEuMCIgcng9IjE0IiBmaWxsPSIjZmRlNjhhIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMi41IiAvPgogIDx0ZXh0IGNsYXNzPSJoIiB4PSI2MTIiIHk9IjQ1My4wIj5BZ2VudCBFbmdpbmUgKGBwcm9jZXNzX3dpdGhfYWdlbnRgKTwvdGV4dD4KICA8cmVjdCB4PSI0MjAiIHk9IjUyNS4wIiB3aWR0aD0iMjcyIiBoZWlnaHQ9IjE4MC4wIiByeD0iMTQiIGZpbGw9IiNiZmRiZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyLjUiIC8+CiAgPHRleHQgY2xhc3M9ImgiIHg9IjQ2OCIgeT0iNjAwLjAiPkNvbnRleHQgQnVpbGRlcjwvdGV4dD4KICA8dGV4dCBjbGFzcz0ieHMiIHg9IjQ0OCIgeT0iNjM3LjUiPnNlc3Npb24gcmVzdW1lICsgY29tcGFjdGlvbjwvdGV4dD4KICA8dGV4dCBjbGFzcz0ieHMiIHg9IjQ1OCIgeT0iNjcyLjAiPnNraWxscyArIG1lbW9yeSBpbmplY3Rpb248L3RleHQ+CiAgPHJlY3QgeD0iNzEwIiB5PSI1MjUuMCIgd2lkdGg9IjI3MiIgaGVpZ2h0PSIxODAuMCIgcng9IjE0IiBmaWxsPSIjZGRkNmZlIiBzdHJva2U9IiM2ZDI4ZDkiIHN0cm9rZS13aWR0aD0iMi41IiAvPgogIDx0ZXh0IGNsYXNzPSJoIiB4PSI3NDgiIHk9IjYwMC4wIj5MTE0gQWJzdHJhY3Rpb248L3RleHQ+CiAgPHRleHQgY2xhc3M9InhzIiB4PSI3MzAiIHk9IjYzNy41Ij5BbnRocm9waWMgKyBPcGVuQUkgY29tcGF0PC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4cyIgeD0iNzU0IiB5PSI2NzIuMCI+c3RyZWFtICsgdG9vbCBzY2hlbWE8L3RleHQ+CiAgPHJlY3QgeD0iMTAwMCIgeT0iNTI1LjAiIHdpZHRoPSIyNTQiIGhlaWdodD0iMTgwLjAiIHJ4PSIxNCIgZmlsbD0iI2ZlY2FjYSIgc3Ryb2tlPSIjYjkxYzFjIiBzdHJva2Utd2lkdGg9IjIuNSIgLz4KICA8dGV4dCBjbGFzcz0iaCIgeD0iMTAzOCIgeT0iNjAwLjAiPlNhZmV0eSBHYXRlPC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4cyIgeD0iMTAyOCIgeT0iNjM3LjUiPnJpc2sgKyBhcHByb3ZhbCBwb2xpY3k8L3RleHQ+CiAgPHRleHQgY2xhc3M9InhzIiB4PSIxMDQwIiB5PSI2NzIuMCI+cGF0aC90b29sIGd1YXJkcmFpbHM8L3RleHQ+CiAgPHJlY3QgeD0iNDIwIiB5PSI3NDQuMCIgd2lkdGg9IjgzNCIgaGVpZ2h0PSIyNzAuMCIgcng9IjE2IiBmaWxsPSIjZTJlOGYwIiBmaWxsLW9wYWNpdHk9IjAuNjIiIHN0cm9rZT0iIzY0NzQ4YiIgc3Ryb2tlLXdpZHRoPSIyIiAvPgogIDx0ZXh0IGNsYXNzPSJoIiB4PSI0NDYiIHk9Ijc5NS4wIj5Ub29saW5nIExheWVyPC90ZXh0PgogIDxyZWN0IHg9IjQ0NCIgeT0iODIyLjAiIHdpZHRoPSIxODgiIGhlaWdodD0iMTUzLjAiIHJ4PSIxMiIgZmlsbD0iI2JhZTZmZCIgc3Ryb2tlPSIjMDM2OWExIiBzdHJva2Utd2lkdGg9IjIuMiIgLz4KICA8dGV4dCBjbGFzcz0icyIgeD0iNTA1IiB5PSI5MDAuMCI+cmVhZC93cml0ZS9lZGl0PC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4cyIgeD0iNDkyIiB5PSI5MzQuNSI+Z2xvYiArIGdyZXAgKyBiYXNoPC90ZXh0PgogIDxyZWN0IHg9IjY0OCIgeT0iODIyLjAiIHdpZHRoPSIxODgiIGhlaWdodD0iMTUzLjAiIHJ4PSIxMiIgZmlsbD0iI2JiZjdkMCIgc3Ryb2tlPSIjMTU4MDNkIiBzdHJva2Utd2lkdGg9IjIuMiIgLz4KICA8dGV4dCBjbGFzcz0icyIgeD0iNjk3IiB5PSI5MDAuMCI+d2ViX3NlYXJjaDwvdGV4dD4KICA8dGV4dCBjbGFzcz0ieHMiIHg9IjcwMCIgeT0iOTM0LjUiPndlYl9mZXRjaDwvdGV4dD4KICA8cmVjdCB4PSI4NTIiIHk9IjgyMi4wIiB3aWR0aD0iMTg4IiBoZWlnaHQ9IjE1My4wIiByeD0iMTIiIGZpbGw9IiNmZGU2OGEiIHN0cm9rZT0iI2ExNjIwNyIgc3Ryb2tlLXdpZHRoPSIyLjIiIC8+CiAgPHRleHQgY2xhc3M9InMiIHg9Ijg4OCIgeT0iOTAwLjAiPnNjaGVkdWxlX3Rhc2s8L3RleHQ+CiAgPHRleHQgY2xhc3M9InhzIiB4PSI4ODUiIHk9IjkzNC41Ij50YXNrIGxpZmVjeWNsZTwvdGV4dD4KICA8cmVjdCB4PSIxMDU2IiB5PSI4MjIuMCIgd2lkdGg9IjE3NCIgaGVpZ2h0PSIxNTMuMCIgcng9IjEyIiBmaWxsPSIjZGRkNmZlIiBzdHJva2U9IiM3YzNhZWQiIHN0cm9rZS13aWR0aD0iMi4yIiAvPgogIDx0ZXh0IGNsYXNzPSJzIiB4PSIxMDg5IiB5PSI5MDAuMCI+TUNQICsgU2tpbGxzPC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4cyIgeD0iMTA5NyIgeT0iOTM0LjUiPnN1Yi1hZ2VudDwvdGV4dD4KICA8cmVjdCB4PSI0MjAiIHk9IjEwNTYuMCIgd2lkdGg9IjgzNCIgaGVpZ2h0PSIyNzkuMCIgcng9IjE2IiBmaWxsPSIjZjFmNWY5IiBzdHJva2U9IiM2NDc0OGIiIHN0cm9rZS13aWR0aD0iMiIgLz4KICA8dGV4dCBjbGFzcz0iaCIgeD0iNDQ2IiB5PSIxMTEwLjAiPk1lbW9yeSBhbmQgUGVyc2lzdGVuY2U8L3RleHQ+CiAgPHJlY3QgeD0iNDQ0IiB5PSIxMTM3LjAiIHdpZHRoPSIyNjIiIGhlaWdodD0iMTY1LjAiIHJ4PSIxMiIgZmlsbD0iIzg2ZWZhYyIgc3Ryb2tlPSIjMTU4MDNkIiBzdHJva2Utd2lkdGg9IjIuMiIgLz4KICA8dGV4dCBjbGFzcz0icyIgeD0iNDk4IiB5PSIxMjE1LjAiPkFHRU5UUy5tZCBNZW1vcnk8L3RleHQ+CiAgPHRleHQgY2xhc3M9InhzIiB4PSI0NzUiIHk9IjEyNTEuMCI+Z2xvYmFsICsgcGVyLWNoYXQgc2NvcGVzPC90ZXh0PgogIDxyZWN0IHg9IjcyNCIgeT0iMTEzNy4wIiB3aWR0aD0iMjYyIiBoZWlnaHQ9IjE2NS4wIiByeD0iMTIiIGZpbGw9IiNmOWE4ZDQiIHN0cm9rZT0iI2JlMTg1ZCIgc3Ryb2tlLXdpZHRoPSIyLjIiIC8+CiAgPHRleHQgY2xhc3M9InMiIHg9Ijc2NCIgeT0iMTIxNS4wIj5TdHJ1Y3R1cmVkIE1lbW9yeTwvdGV4dD4KICA8dGV4dCBjbGFzcz0ieHMiIHg9Ijc2NSIgeT0iMTI1MS4wIj5yZWZsZWN0b3IgKyBxdWFsaXR5IGdhdGVzPC90ZXh0PgogIDxyZWN0IHg9IjEwMDQiIHk9IjExMzcuMCIgd2lkdGg9IjIyNiIgaGVpZ2h0PSIxNjUuMCIgcng9IjEyIiBmaWxsPSIjYTdmM2QwIiBzdHJva2U9IiMwNDc4NTciIHN0cm9rZS13aWR0aD0iMi4yIiAvPgogIDx0ZXh0IGNsYXNzPSJzIiB4PSIxMDUyIiB5PSIxMjE1LjAiPlNRTGl0ZSBEQjwvdGV4dD4KICA8dGV4dCBjbGFzcz0ieHMiIHg9IjEwMjgiIHk9IjEyNTEuMCI+c2Vzc2lvbnMvbWVzc2FnZXMvdGFza3M8L3RleHQ+CiAgPHJlY3QgeD0iNDIwIiB5PSIxMzcxLjAiIHdpZHRoPSI4MzQiIGhlaWdodD0iMjMxLjAiIHJ4PSIxNCIgZmlsbD0iIzk5ZjZlNCIgc3Ryb2tlPSIjMGY3NjZlIiBzdHJva2Utd2lkdGg9IjIuNCIgLz4KICA8dGV4dCBjbGFzcz0iaCIgeD0iNDQ4IiB5PSIxNDM0LjAiPlJ1bnRpbWUgU2VydmljZXM8L3RleHQ+CiAgPHRleHQgY2xhc3M9InMiIHg9IjQ1MiIgeT0iMTQ4Mi4wIj5zY2hlZHVsZXIgcnVubmVyICDCtyAgbWVtb3J5IHJlZmxlY3RvciBsb29wICDCtyAgdXNhZ2UgcmVwb3J0IEFQSSAgwrcgIHdlYiBnYXRld2F5IHJvdXRlczwvdGV4dD4KICA8dGV4dCBjbGFzcz0icyIgeD0iNDUyIiB5PSIxNTMwLjAiPm91dGJvdW5kIGRlbGl2ZXJ5IGhlbHBlcnMgIMK3ICBkb2N0b3IgZGlhZ25vc3RpY3MgIMK3ICBzZXR1cCB3aXphcmQgIMK3ICBjb25maWcgKyBtaWdyYXRpb25zPC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJncm91cCIgeD0iMTMyMCIgeT0iMzEyLjAiPkV4dGVybmFsIFN5c3RlbXM8L3RleHQ+CiAgPHJlY3QgeD0iMTMyMCIgeT0iMzU3LjAiIHdpZHRoPSIyOTIiIGhlaWdodD0iMTcxLjAiIHJ4PSIxOCIgZmlsbD0iI2ZjYTVhNSIgc3Ryb2tlPSIjYjkxYzFjIiBzdHJva2Utd2lkdGg9IjMiIC8+CiAgPHRleHQgY2xhc3M9InMiIHg9IjEzODIiIHk9IjQ0Mi41Ij5TUUxpdGUgU3RvcmFnZTwvdGV4dD4KICA8dGV4dCBjbGFzcz0ieHMiIHg9IjEzODEiIHk9IjQ3OC41Ij5zZXNzaW9ucyAvIG1lbW9yeSAvIHRhc2tzPC90ZXh0PgogIDxyZWN0IHg9IjEzMjAiIHk9IjU3MC4wIiB3aWR0aD0iMjkyIiBoZWlnaHQ9IjE3MS4wIiByeD0iMTgiIGZpbGw9IiNmY2QzNGQiIHN0cm9rZT0iI2ExNjIwNyIgc3Ryb2tlLXdpZHRoPSIzIiAvPgogIDx0ZXh0IGNsYXNzPSJzIiB4PSIxMzg2IiB5PSI2NTUuNSI+TExNIFByb3ZpZGVyczwvdGV4dD4KICA8dGV4dCBjbGFzcz0ieHMiIHg9IjEzNjQiIHk9IjY5MS41Ij5BbnRocm9waWMgKyBPcGVuQUkgY29tcGF0PC90ZXh0PgogIDxyZWN0IHg9IjEzMjAiIHk9Ijc4My4wIiB3aWR0aD0iMjkyIiBoZWlnaHQ9IjE3MS4wIiByeD0iMTgiIGZpbGw9IiNjNGI1ZmQiIHN0cm9rZT0iIzZkMjhkOSIgc3Ryb2tlLXdpZHRoPSIzIiAvPgogIDx0ZXh0IGNsYXNzPSJzIiB4PSIxMzg0IiB5PSI4NjguNSI+TUNQIFNlcnZlcnM8L3RleHQ+CiAgPHRleHQgY2xhc3M9InhzIiB4PSIxMzg4IiB5PSI5MDQuNSI+c3RkaW8gLyBIVFRQLVNTRTwvdGV4dD4KICA8cmVjdCB4PSIxMzIwIiB5PSI5OTYuMCIgd2lkdGg9IjI5MiIgaGVpZ2h0PSIxNzEuMCIgcng9IjE4IiBmaWxsPSIjYTdmM2QwIiBzdHJva2U9IiMwNDc4NTciIHN0cm9rZS13aWR0aD0iMyIgLz4KICA8dGV4dCBjbGFzcz0icyIgeD0iMTM3NiIgeT0iMTA4MS41Ij5PYnNlcnZhYmlsaXR5PC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4cyIgeD0iMTM2MyIgeT0iMTExNy41Ij51c2FnZSArIG1lbW9yeSBtZXRyaWNzPC90ZXh0PgogIDxyZWN0IHg9IjEzMjAiIHk9IjEyMDkuMCIgd2lkdGg9IjI5MiIgaGVpZ2h0PSIxNzEuMCIgcng9IjE4IiBmaWxsPSIjOTNjNWZkIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMyIgLz4KICA8dGV4dCBjbGFzcz0icyIgeD0iMTM4OCIgeT0iMTI5NC41Ij5XZWIgQVBJIC8gVUk8L3RleHQ+CiAgPHRleHQgY2xhc3M9InhzIiB4PSIxMzYzIiB5PSIxMzMwLjUiPmNoYXQgKyBoaXN0b3J5ICsgY29uZmlnPC90ZXh0PgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNMzMwIDQyNy41IEwzODQgNDI3LjUiIC8+CiAgPHBhdGggY2xhc3M9ImEiIGQ9Ik0zMzAgNjE5LjUgTDM4NCA2MTkuNSIgLz4KICA8cGF0aCBjbGFzcz0iYSIgZD0iTTMzMCA4MTEuNSBMMzg0IDgxMS41IiAvPgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNMzMwIDEwMDMuNSBMMzg0IDEwMDMuNSIgLz4KICA8cGF0aCBjbGFzcz0iYSIgZD0iTTMzMCAxMTk1LjUgTDM4NCAxMTk1LjUiIC8+CiAgPHBhdGggY2xhc3M9ImEiIGQ9Ik0xMjU0IDQzOCBMMTMyMCA0MzgiIC8+CiAgPHBhdGggY2xhc3M9ImEiIGQ9Ik0xMjU0IDY1Mi41IEwxMzIwIDY1Mi41IiAvPgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNMTI1NCA4NjUuNSBMMTMyMCA4NjUuNSIgLz4KICA8cGF0aCBjbGFzcz0iYSIgZD0iTTEyNTQgMTA3OC41IEwxMzIwIDEwNzguNSIgLz4KICA8cGF0aCBjbGFzcz0iYSIgZD0iTTEyNTQgMTI5MS41IEwxMzIwIDEyOTEuNSIgLz4KICA8cGF0aCBjbGFzcz0iYiIgZD0iTTU1NiA3MDUgTDU1NiA4MjIiIC8+CiAgPHBhdGggY2xhc3M9ImIiIGQ9Ik04NDYgNzA1IEw4NDYgODIyIiAvPgogIDxwYXRoIGNsYXNzPSJiIiBkPSJNMTEyNiA3MDUgTDExMjYgODIyIiAvPgogIDxwYXRoIGNsYXNzPSJiIiBkPSJNNzQyIDk3NSBMNzQyIDExMzciIC8+CiAgPHBhdGggY2xhc3M9ImIiIGQ9Ik05NDYgOTc1IEw5NDYgMTEzNyIgLz4KICA8cGF0aCBjbGFzcz0iYiIgZD0iTTExNDMgOTc1IEwxMTQzIDExMzciIC8+CiAgPHBhdGggY2xhc3M9ImIiIGQ9Ik01NzUgMTMwMiBMNTc1IDEzNzEiIC8+CiAgPHBhdGggY2xhc3M9ImIiIGQ9Ik04NTUgMTMwMiBMODU1IDEzNzEiIC8+CiAgPHBhdGggY2xhc3M9ImIiIGQ9Ik0xMTE3IDEzMDIgTDExMTcgMTM3MSIgLz4KPC9zdmc+" width="1680" height="1770" class="img_ev3q"></p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-microclaw-is-today">What MicroClaw Is Today<a href="https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime#what-microclaw-is-today" class="hash-link" aria-label="What MicroClaw Is Today का सीधा लिंक" title="What MicroClaw Is Today का सीधा लिंक" translate="no">​</a></h2>
<p>At a high level, MicroClaw combines:</p>
<ul>
<li class="">A single channel-agnostic agent loop (<code>src/agent_engine.rs</code>)</li>
<li class="">A provider-agnostic LLM layer (<code>src/llm.rs</code>) with native Anthropic plus OpenAI-compatible providers</li>
<li class="">Multi-step tool execution with schema-driven tool definitions</li>
<li class="">Session resume + context compaction for long-running conversations</li>
<li class="">Two memory layers: file memory and structured SQLite memory</li>
<li class="">Background scheduling plus memory reflection jobs</li>
<li class="">Usage and memory observability APIs for operational visibility</li>
</ul>
<p>This architecture keeps product behavior consistent across channels while allowing independent evolution of adapters and providers.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-built-with-rust">Why Built with Rust<a href="https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime#why-built-with-rust" class="hash-link" aria-label="Why Built with Rust का सीधा लिंक" title="Why Built with Rust का सीधा लिंक" translate="no">​</a></h2>
<p>Rust is a strong fit for this runtime shape:</p>
<ul>
<li class="">Tokio handles concurrent chat traffic and background loops with low overhead</li>
<li class="">Strict types and ownership help keep tool/state boundaries predictable</li>
<li class="">Shared state (<code>Arc&lt;...&gt;</code>) across runtime, tools, scheduler, and channels remains explicit</li>
<li class="">A single compiled binary keeps deployment and operations straightforward</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Rust value map" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNTAwIiBoZWlnaHQ9IjkyMCIgdmlld0JveD0iMCAwIDE1MDAgOTIwIj4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYmcyIiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZjdlZCIvPjxzdG9wIG9mZnNldD0iNTAlIiBzdG9wLWNvbG9yPSIjZmVlMmUyIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjZGNmY2U3Ii8+PC9saW5lYXJHcmFkaWVudD4KICAgIDxzdHlsZT4udHtmb250OjcwMCA0NHB4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMTExODI3fS5ze2ZvbnQ6NTAwIDIycHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMzNzQxNTF9Lmh7Zm9udDo3MDAgMjZweCAnQXZlbmlyIE5leHQnLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZpbGw6IzExMTgyN30ueHtmb250OjUwMCAxOXB4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMWYyOTM3fS5se3N0cm9rZTojMzM0MTU1O3N0cm9rZS13aWR0aDo0fTwvc3R5bGU+CiAgPC9kZWZzPgogIDxyZWN0IHdpZHRoPSIxNTAwIiBoZWlnaHQ9IjkyMCIgZmlsbD0idXJsKCNiZzIpIi8+CiAgPHRleHQgY2xhc3M9InQiIHg9IjgwIiB5PSI5MCI+V2h5IEJ1aWx0IHdpdGggUnVzdDwvdGV4dD4KICA8dGV4dCBjbGFzcz0icyIgeD0iODAiIHk9IjEyNiI+QSBydW50aW1lIGNob2ljZSB0aGF0IG9wdGltaXplcyBmb3IgcmVsaWFiaWxpdHkgYW5kIHNjYWxlPC90ZXh0PgoKICA8Y2lyY2xlIGN4PSI3NTAiIGN5PSI0NjAiIHI9IjE1MCIgZmlsbD0iI2ZiOTIzYyIgc3Ryb2tlPSIjN2MyZDEyIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8dGV4dCBjbGFzcz0iaCIgeD0iNjk0IiB5PSI0NTYiPlJ1c3Q8L3RleHQ+PHRleHQgY2xhc3M9IngiIHg9IjY2NiIgeT0iNDg4Ij5Db3JlIFJ1bnRpbWU8L3RleHQ+CgogIDxyZWN0IHg9IjE0MCIgeT0iMjIwIiB3aWR0aD0iMzQwIiBoZWlnaHQ9IjE1MCIgcng9IjE4IiBmaWxsPSIjOTNjNWZkIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IGNsYXNzPSJoIiB4PSIyMTAiIHk9IjI4NyI+UGVyZm9ybWFuY2U8L3RleHQ+PHRleHQgY2xhc3M9IngiIHg9IjE4MyIgeT0iMzIyIj5Ub2tpbyBhc3luYyB3aXRoIGxvdyBvdmVyaGVhZDwvdGV4dD4KICA8cmVjdCB4PSIxMDIwIiB5PSIyMjAiIHdpZHRoPSIzNDAiIGhlaWdodD0iMTUwIiByeD0iMTgiIGZpbGw9IiNjNGI1ZmQiIHN0cm9rZT0iIzZkMjhkOSIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9ImgiIHg9IjExMzIiIHk9IjI4NyI+U2FmZXR5PC90ZXh0Pjx0ZXh0IGNsYXNzPSJ4IiB4PSIxMDkyIiB5PSIzMjIiPlN0cm9uZyB0eXBlIGFuZCBtZW1vcnkgZ3VhcmFudGVlczwvdGV4dD4KICA8cmVjdCB4PSIxNDAiIHk9IjU2MCIgd2lkdGg9IjM0MCIgaGVpZ2h0PSIxNTAiIHJ4PSIxOCIgZmlsbD0iIzg2ZWZhYyIgc3Ryb2tlPSIjMTU4MDNkIiBzdHJva2Utd2lkdGg9IjMiLz48dGV4dCBjbGFzcz0iaCIgeD0iMTcwIiB5PSI2MjciPk1haW50YWluYWJpbGl0eTwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iMTk2IiB5PSI2NjIiPkNsZWFyIG1vZHVsZSBib3VuZGFyaWVzPC90ZXh0PgogIDxyZWN0IHg9IjEwMjAiIHk9IjU2MCIgd2lkdGg9IjM0MCIgaGVpZ2h0PSIxNTAiIHJ4PSIxOCIgZmlsbD0iI2Y5YThkNCIgc3Ryb2tlPSIjYmUxODVkIiBzdHJva2Utd2lkdGg9IjMiLz48dGV4dCBjbGFzcz0iaCIgeD0iMTA5NSIgeT0iNjI3Ij5EZXBsb3ltZW50PC90ZXh0Pjx0ZXh0IGNsYXNzPSJ4IiB4PSIxMDgwIiB5PSI2NjIiPlBvcnRhYmxlIHByb2R1Y3Rpb24gYmluYXJ5PC90ZXh0PgoKICA8bGluZSBjbGFzcz0ibCIgeDE9IjYxMCIgeTE9IjM4MCIgeDI9IjQ4MCIgeTI9IjM0MCIvPjxsaW5lIGNsYXNzPSJsIiB4MT0iODkwIiB5MT0iMzgwIiB4Mj0iMTAyMCIgeTI9IjM0MCIvPgogIDxsaW5lIGNsYXNzPSJsIiB4MT0iNjEwIiB5MT0iNTQwIiB4Mj0iNDgwIiB5Mj0iNTkwIi8+PGxpbmUgY2xhc3M9ImwiIHgxPSI4OTAiIHkxPSI1NDAiIHgyPSIxMDIwIiB5Mj0iNTkwIi8+Cjwvc3ZnPgo=" width="1500" height="920" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="core-runtime-shape">Core Runtime Shape<a href="https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime#core-runtime-shape" class="hash-link" aria-label="Core Runtime Shape का सीधा लिंक" title="Core Runtime Shape का सीधा लिंक" translate="no">​</a></h2>
<p>The runtime wiring in <code>src/runtime.rs</code> initializes providers, tools, memory services, channels, and background workers into one <code>AppState</code>.</p>
<p>The execution split is clean:</p>
<ul>
<li class=""><strong>Adapters</strong> (<code>channels/telegram.rs</code>, <code>channels/discord.rs</code>, <code>web.rs</code>) handle ingress/egress</li>
<li class=""><strong>Engine</strong> (<code>agent_engine.rs</code>) runs the shared reasoning/tool loop</li>
<li class=""><strong>Provider layer</strong> (<code>llm.rs</code>) abstracts model APIs and stream handling</li>
<li class=""><strong>Persistence</strong> (<code>db.rs</code>) stores messages, sessions, tasks, memories, and observability</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Platform adapters and shared core pipeline" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjYwIiBoZWlnaHQ9IjkyMCIgdmlld0JveD0iMCAwIDE2NjAgOTIwIj4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYmczIiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VjZmVmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2Y1ZDBmZSIvPjwvbGluZWFyR3JhZGllbnQ+CiAgICA8c3R5bGU+LnR0e2ZvbnQ6NzAwIDQycHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMwZjE3MmF9Lmh7Zm9udDo3MDAgMjRweCAnQXZlbmlyIE5leHQnLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZpbGw6IzBmMTcyYX0uc3tmb250OjUwMCAxOHB4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMWYyOTM3fS5he3N0cm9rZTojMzM0MTU1O3N0cm9rZS13aWR0aDo0O2ZpbGw6bm9uZTttYXJrZXItZW5kOnVybCgjbTMpfTwvc3R5bGU+CiAgICA8bWFya2VyIGlkPSJtMyIgbWFya2VyV2lkdGg9IjEyIiBtYXJrZXJIZWlnaHQ9IjEyIiByZWZYPSIxMCIgcmVmWT0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCwwIEwxMiw2IEwwLDEyIHoiIGZpbGw9IiMzMzQxNTUiLz48L21hcmtlcj4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjE2NjAiIGhlaWdodD0iOTIwIiBmaWxsPSJ1cmwoI2JnMykiLz4KICA8dGV4dCBjbGFzcz0idHQiIHg9IjcwIiB5PSI4OCI+QWRhcHRlcnMgRmVlZCBPbmUgU2hhcmVkIENvcmUgUGlwZWxpbmU8L3RleHQ+CgogIDxyZWN0IHg9IjgyIiB5PSIyMjAiIHdpZHRoPSIyODAiIGhlaWdodD0iMTEyIiByeD0iMTYiIGZpbGw9IiM5M2M1ZmQiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9ImgiIHg9IjE2MCIgeT0iMjg3Ij5UZWxlZ3JhbTwvdGV4dD4KICA8cmVjdCB4PSI4MiIgeT0iMzc4IiB3aWR0aD0iMjgwIiBoZWlnaHQ9IjExMiIgcng9IjE2IiBmaWxsPSIjYzRiNWZkIiBzdHJva2U9IiM2ZDI4ZDkiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IGNsYXNzPSJoIiB4PSIxNzAiIHk9IjQ0NSI+RGlzY29yZDwvdGV4dD4KICA8cmVjdCB4PSI4MiIgeT0iNTM2IiB3aWR0aD0iMjgwIiBoZWlnaHQ9IjExMiIgcng9IjE2IiBmaWxsPSIjNjdlOGY5IiBzdHJva2U9IiMwZTc0OTAiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IGNsYXNzPSJoIiB4PSIyMTAiIHk9IjYwMyI+V2ViPC90ZXh0PgoKICA8cmVjdCB4PSI1MDAiIHk9IjE4NiIgd2lkdGg9IjU2MCIgaGVpZ2h0PSI1MDAiIHJ4PSIyMCIgZmlsbD0iI2ZmZmZmZmNjIiBzdHJva2U9IiMzMzQxNTUiIHN0cm9rZS13aWR0aD0iMyIvPgogIDx0ZXh0IGNsYXNzPSJoIiB4PSI2OTAiIHk9IjI0NCI+U2hhcmVkIENvcmU8L3RleHQ+CiAgPHJlY3QgeD0iNTYwIiB5PSIyODYiIHdpZHRoPSI0NDAiIGhlaWdodD0iODgiIHJ4PSIxMiIgZmlsbD0iI2ZkZTY4YSIgc3Ryb2tlPSIjYTE2MjA3IiBzdHJva2Utd2lkdGg9IjIuNSIvPjx0ZXh0IGNsYXNzPSJzIiB4PSI3MDgiIHk9IjM0MCI+Tm9ybWFsaXplIElucHV0PC90ZXh0PgogIDxyZWN0IHg9IjU2MCIgeT0iNDA2IiB3aWR0aD0iNDQwIiBoZWlnaHQ9Ijg4IiByeD0iMTIiIGZpbGw9IiNiZmRiZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz48dGV4dCBjbGFzcz0icyIgeD0iNzAyIiB5PSI0NjAiPkFnZW50IExvb3A8L3RleHQ+CiAgPHJlY3QgeD0iNTYwIiB5PSI1MjYiIHdpZHRoPSI0NDAiIGhlaWdodD0iODgiIHJ4PSIxMiIgZmlsbD0iIzg2ZWZhYyIgc3Ryb2tlPSIjMTU4MDNkIiBzdHJva2Utd2lkdGg9IjIuNSIvPjx0ZXh0IGNsYXNzPSJzIiB4PSI2OTIiIHk9IjU4MCI+UGVyc2lzdCArIFJlc3BvbmQ8L3RleHQ+CgogIDxyZWN0IHg9IjEyMDAiIHk9IjIyMCIgd2lkdGg9IjM2MCIgaGVpZ2h0PSI0MzAiIHJ4PSIxOCIgZmlsbD0iI2ZmZmZmZmNjIiBzdHJva2U9IiMzMzQxNTUiIHN0cm9rZS13aWR0aD0iMyIvPgogIDx0ZXh0IGNsYXNzPSJoIiB4PSIxMzEyIiB5PSIyNzgiPk91dHB1dHM8L3RleHQ+CiAgPHJlY3QgeD0iMTI1NCIgeT0iMzE4IiB3aWR0aD0iMjUwIiBoZWlnaHQ9IjgwIiByeD0iMTIiIGZpbGw9IiNmOWE4ZDQiIHN0cm9rZT0iI2JlMTg1ZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz48dGV4dCBjbGFzcz0icyIgeD0iMTMyMiIgeT0iMzY1Ij5DaGFubmVsIFJlcGx5PC90ZXh0PgogIDxyZWN0IHg9IjEyNTQiIHk9IjQyNiIgd2lkdGg9IjI1MCIgaGVpZ2h0PSI4MCIgcng9IjEyIiBmaWxsPSIjZmNhNWE1IiBzdHJva2U9IiNiOTFjMWMiIHN0cm9rZS13aWR0aD0iMi41Ii8+PHRleHQgY2xhc3M9InMiIHg9IjEzMzYiIHk9IjQ3MyI+REIgV3JpdGU8L3RleHQ+CiAgPHJlY3QgeD0iMTI1NCIgeT0iNTM0IiB3aWR0aD0iMjUwIiBoZWlnaHQ9IjgwIiByeD0iMTIiIGZpbGw9IiNhN2YzZDAiIHN0cm9rZT0iIzA0Nzg1NyIgc3Ryb2tlLXdpZHRoPSIyLjUiLz48dGV4dCBjbGFzcz0icyIgeD0iMTI5OCIgeT0iNTgxIj5TY2hlZHVsZXIgSG9va3M8L3RleHQ+CgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNMzYyIDI3NiBMNTAwIDI3NiIvPjxwYXRoIGNsYXNzPSJhIiBkPSJNMzYyIDQzNCBMNTAwIDQzNCIvPjxwYXRoIGNsYXNzPSJhIiBkPSJNMzYyIDU5MiBMNTAwIDU5MiIvPgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNMTA2MCA0NTAgTDEyMDAgNDUwIi8+Cjwvc3ZnPgo=" width="1660" height="920" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-agent-loop">The Agent Loop<a href="https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime#the-agent-loop" class="hash-link" aria-label="The Agent Loop का सीधा लिंक" title="The Agent Loop का सीधा लिंक" translate="no">​</a></h2>
<p><code>process_with_agent</code> is the central path:</p>
<ol>
<li class="">Optional explicit-memory fast path (<code>remember ...</code> / <code>记住...</code>)</li>
<li class="">Restore prior session or reconstruct from history</li>
<li class="">Build system prompt from file memory, structured memory, and skills catalog</li>
<li class="">Compact old context if limits are exceeded</li>
<li class="">Call selected LLM provider with tool schemas</li>
<li class="">On <code>tool_use</code>, execute tool(s), append results, and continue</li>
<li class="">On <code>end_turn</code>, persist session and return response</li>
</ol>
<p>This gives MicroClaw controlled, iterative tool use while preserving resumability.</p>
<p><img decoding="async" loading="lazy" alt="Agent loop sequence" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzIwIiBoZWlnaHQ9Ijk4MCIgdmlld0JveD0iMCAwIDE3MjAgOTgwIj4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYmc0IiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VmZjZmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZhZThmZiIvPjwvbGluZWFyR3JhZGllbnQ+CiAgICA8c3R5bGU+LnR0e2ZvbnQ6NzAwIDQwcHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMwZjE3MmF9Lmh7Zm9udDo3MDAgMjJweCAnQXZlbmlyIE5leHQnLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZpbGw6IzFlMjkzYn0ueHtmb250OjUwMCAxOHB4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fS5se3N0cm9rZTojOTRhM2I4O3N0cm9rZS13aWR0aDoyfS5he3N0cm9rZTojMzM0MTU1O3N0cm9rZS13aWR0aDozO2ZpbGw6bm9uZTttYXJrZXItZW5kOnVybCgjbTQpfTwvc3R5bGU+CiAgICA8bWFya2VyIGlkPSJtNCIgbWFya2VyV2lkdGg9IjEyIiBtYXJrZXJIZWlnaHQ9IjEyIiByZWZYPSIxMCIgcmVmWT0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCwwIEwxMiw2IEwwLDEyIHoiIGZpbGw9IiMzMzQxNTUiLz48L21hcmtlcj4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjE3MjAiIGhlaWdodD0iOTgwIiBmaWxsPSJ1cmwoI2JnNCkiLz4KICA8dGV4dCBjbGFzcz0idHQiIHg9IjcwIiB5PSI4NCI+YHByb2Nlc3Nfd2l0aF9hZ2VudGAgU2VxdWVuY2U8L3RleHQ+CgogIDx0ZXh0IGNsYXNzPSJoIiB4PSIxMjAiIHk9IjE0NiI+VXNlcjwvdGV4dD48dGV4dCBjbGFzcz0iaCIgeD0iNDIwIiB5PSIxNDYiPkFkYXB0ZXI8L3RleHQ+PHRleHQgY2xhc3M9ImgiIHg9IjcyMCIgeT0iMTQ2Ij5BZ2VudCBFbmdpbmU8L3RleHQ+PHRleHQgY2xhc3M9ImgiIHg9IjEwODAiIHk9IjE0NiI+TExNIFByb3ZpZGVyPC90ZXh0Pjx0ZXh0IGNsYXNzPSJoIiB4PSIxMzkwIiB5PSIxNDYiPlRvb2xzIC8gREI8L3RleHQ+CiAgPGxpbmUgY2xhc3M9ImwiIHgxPSIxNjAiIHkxPSIxNzAiIHgyPSIxNjAiIHkyPSI5MDAiLz48bGluZSBjbGFzcz0ibCIgeDE9IjQ4MCIgeTE9IjE3MCIgeDI9IjQ4MCIgeTI9IjkwMCIvPjxsaW5lIGNsYXNzPSJsIiB4MT0iODAwIiB5MT0iMTcwIiB4Mj0iODAwIiB5Mj0iOTAwIi8+PGxpbmUgY2xhc3M9ImwiIHgxPSIxMTYwIiB5MT0iMTcwIiB4Mj0iMTE2MCIgeTI9IjkwMCIvPjxsaW5lIGNsYXNzPSJsIiB4MT0iMTQ2MCIgeTE9IjE3MCIgeDI9IjE0NjAiIHkyPSI5MDAiLz4KCiAgPHBhdGggY2xhc3M9ImEiIGQ9Ik0xODAgMjMwIEw0NjAgMjMwIi8+PHRleHQgY2xhc3M9IngiIHg9IjI0MiIgeT0iMjE2Ij5tZXNzYWdlIHJlY2VpdmVkPC90ZXh0PgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNNTAwIDI4MCBMNzgwIDI4MCIvPjx0ZXh0IGNsYXNzPSJ4IiB4PSI1NjAiIHk9IjI2NiI+ZGlzcGF0Y2ggdG8gc2hhcmVkIGxvb3A8L3RleHQ+CiAgPHBhdGggY2xhc3M9ImEiIGQ9Ik04MDAgMzM2IEwxNDYwIDMzNiIvPjx0ZXh0IGNsYXNzPSJ4IiB4PSI5MzgiIHk9IjMyMiI+bG9hZCBzZXNzaW9uICsgbWVtb3J5IGNvbnRleHQ8L3RleHQ+CiAgPHBhdGggY2xhc3M9ImEiIGQ9Ik04MDAgNDE0IEwxMTQwIDQxNCIvPjx0ZXh0IGNsYXNzPSJ4IiB4PSI4ODAiIHk9IjQwMCI+cmVxdWVzdCB3aXRoIHRvb2xzPC90ZXh0PgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNMTE2MCA0ODYgTDgyMCA0ODYiLz48dGV4dCBjbGFzcz0ieCIgeD0iOTc1IiB5PSI0NzIiPnRvb2xfdXNlPC90ZXh0PgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNODIwIDU1NiBMMTQ0MCA1NTYiLz48dGV4dCBjbGFzcz0ieCIgeD0iOTY4IiB5PSI1NDIiPmV4ZWN1dGUgKyBhcHBlbmQgcmVzdWx0czwvdGV4dD4KICA8cGF0aCBjbGFzcz0iYSIgZD0iTTE0NjAgNjIwIEw4MjAgNjIwIi8+PHRleHQgY2xhc3M9IngiIHg9IjEwNDIiIHk9IjYwNiI+dG9vbF9yZXN1bHQ8L3RleHQ+CiAgPHBhdGggY2xhc3M9ImEiIGQ9Ik0xMTQwIDcwNCBMODIwIDcwNCIvPjx0ZXh0IGNsYXNzPSJ4IiB4PSI5NjAiIHk9IjY5MCI+ZW5kX3R1cm4gdGV4dDwvdGV4dD4KICA8cGF0aCBjbGFzcz0iYSIgZD0iTTgwMCA3NzAgTDE0NjAgNzcwIi8+PHRleHQgY2xhc3M9IngiIHg9Ijk4MCIgeT0iNzU2Ij5wZXJzaXN0IHNlc3Npb24gKyBsb2dzPC90ZXh0PgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNNzgwIDgzNCBMNTAwIDgzNCIvPjx0ZXh0IGNsYXNzPSJ4IiB4PSI2MDAiIHk9IjgyMCI+cmVzcG9uc2UgcGF5bG9hZDwvdGV4dD4KICA8cGF0aCBjbGFzcz0iYSIgZD0iTTQ2MCA4NzIgTDE4MCA4NzIiLz48dGV4dCBjbGFzcz0ieCIgeD0iMjU4IiB5PSI4NTgiPmZpbmFsIHJlcGx5PC90ZXh0Pgo8L3N2Zz4K" width="1720" height="980" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tool-system-and-safety">Tool System and Safety<a href="https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime#tool-system-and-safety" class="hash-link" aria-label="Tool System and Safety का सीधा लिंक" title="Tool System and Safety का सीधा लिंक" translate="no">​</a></h2>
<p>The tool system (<code>src/tools/mod.rs</code>) provides a common <code>Tool</code> trait and <code>ToolRegistry</code> dispatch with auth context injection.</p>
<p>Key traits of the current system:</p>
<ul>
<li class="">JSON-schema tool definitions consumed by providers</li>
<li class="">High-risk tool approval gate in sensitive contexts</li>
<li class="">Built-in tool docs generated from code to prevent doc drift</li>
<li class="">Sub-agent mode with a restricted registry (<code>new_sub_agent</code>)</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Main agent vs sub-agent boundary" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjYwIiBoZWlnaHQ9IjkyMCIgdmlld0JveD0iMCAwIDE2NjAgOTIwIj4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYmc1IiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VlZjJmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2VjZmVmZiIvPjwvbGluZWFyR3JhZGllbnQ+CiAgICA8c3R5bGU+LnR0e2ZvbnQ6NzAwIDQycHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMxMTE4Mjd9Lmh7Zm9udDo3MDAgMjdweCAnQXZlbmlyIE5leHQnLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZpbGw6IzExMTgyN30ueHtmb250OjUwMCAxOXB4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMWYyOTM3fS5he3N0cm9rZTojMzc0MTUxO3N0cm9rZS13aWR0aDo0O2ZpbGw6bm9uZTttYXJrZXItZW5kOnVybCgjbTUpfTwvc3R5bGU+CiAgICA8bWFya2VyIGlkPSJtNSIgbWFya2VyV2lkdGg9IjEyIiBtYXJrZXJIZWlnaHQ9IjEyIiByZWZYPSIxMCIgcmVmWT0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCwwIEwxMiw2IEwwLDEyIHoiIGZpbGw9IiMzNzQxNTEiLz48L21hcmtlcj4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjE2NjAiIGhlaWdodD0iOTIwIiBmaWxsPSJ1cmwoI2JnNSkiLz4KICA8dGV4dCBjbGFzcz0idHQiIHg9IjcwIiB5PSI4NiI+TWFpbiBBZ2VudCB2cyBTdWItQWdlbnQgQm91bmRhcmllczwvdGV4dD4KCiAgPHJlY3QgeD0iMTEwIiB5PSIxNzAiIHdpZHRoPSI2NjAiIGhlaWdodD0iNjQwIiByeD0iMjQiIGZpbGw9IiNmZmZmZmZjYyIgc3Ryb2tlPSIjMzM0MTU1IiBzdHJva2Utd2lkdGg9IjMiLz4KICA8dGV4dCBjbGFzcz0iaCIgeD0iMzUwIiB5PSIyMzgiPk1haW4gQWdlbnQ8L3RleHQ+CiAgPHJlY3QgeD0iMTYwIiB5PSIyODYiIHdpZHRoPSI1NjAiIGhlaWdodD0iODQiIHJ4PSIxNCIgZmlsbD0iIzkzYzVmZCIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjIuNSIvPjx0ZXh0IGNsYXNzPSJ4IiB4PSIxODgiIHk9IjMzOCI+RnVsbCB0b29sc2V0IGF2YWlsYWJsZSAocmVnaXN0cnkpPC90ZXh0PgogIDxyZWN0IHg9IjE2MCIgeT0iMzg4IiB3aWR0aD0iNTYwIiBoZWlnaHQ9Ijg0IiByeD0iMTQiIGZpbGw9IiM4NmVmYWMiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz48dGV4dCBjbGFzcz0ieCIgeD0iMTg4IiB5PSI0NDAiPkNhbiBtZXNzYWdlLCBzY2hlZHVsZSwgYW5kIG1hbmFnZSBtZW1vcnkgZmxvd3M8L3RleHQ+CiAgPHJlY3QgeD0iMTYwIiB5PSI0OTAiIHdpZHRoPSI1NjAiIGhlaWdodD0iODQiIHJ4PSIxNCIgZmlsbD0iI2ZkZTY4YSIgc3Ryb2tlPSIjYTE2MjA3IiBzdHJva2Utd2lkdGg9IjIuNSIvPjx0ZXh0IGNsYXNzPSJ4IiB4PSIxODgiIHk9IjU0MiI+QXBwbGllcyByaXNrL2FwcHJvdmFsIGNoZWNrcyBpbiBzZW5zaXRpdmUgY29udGV4dHM8L3RleHQ+CiAgPHJlY3QgeD0iMTYwIiB5PSI1OTIiIHdpZHRoPSI1NjAiIGhlaWdodD0iODQiIHJ4PSIxNCIgZmlsbD0iI2Y5YThkNCIgc3Ryb2tlPSIjYmUxODVkIiBzdHJva2Utd2lkdGg9IjIuNSIvPjx0ZXh0IGNsYXNzPSJ4IiB4PSIxODgiIHk9IjY0NCI+TWF5IGRlbGVnYXRlIGlzb2xhdGVkIHdvcmsgdG8gc3ViLWFnZW50PC90ZXh0PgoKICA8cmVjdCB4PSI4OTAiIHk9IjE3MCIgd2lkdGg9IjY2MCIgaGVpZ2h0PSI2NDAiIHJ4PSIyNCIgZmlsbD0iI2ZmZmZmZmNjIiBzdHJva2U9IiMzMzQxNTUiIHN0cm9rZS13aWR0aD0iMyIvPgogIDx0ZXh0IGNsYXNzPSJoIiB4PSIxMTQwIiB5PSIyMzgiPlN1Yi1BZ2VudDwvdGV4dD4KICA8cmVjdCB4PSI5NDAiIHk9IjI4NiIgd2lkdGg9IjU2MCIgaGVpZ2h0PSI4NCIgcng9IjE0IiBmaWxsPSIjYmZkYmZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMi41Ii8+PHRleHQgY2xhc3M9IngiIHg9Ijk2OCIgeT0iMzM4Ij5SZXN0cmljdGVkIHJlZ2lzdHJ5IChgbmV3X3N1Yl9hZ2VudGApPC90ZXh0PgogIDxyZWN0IHg9Ijk0MCIgeT0iMzg4IiB3aWR0aD0iNTYwIiBoZWlnaHQ9Ijg0IiByeD0iMTQiIGZpbGw9IiM5OWY2ZTQiIHN0cm9rZT0iIzBmNzY2ZSIgc3Ryb2tlLXdpZHRoPSIyLjUiLz48dGV4dCBjbGFzcz0ieCIgeD0iOTY4IiB5PSI0NDAiPkZvY3VzZWQgb24gYm91bmRlZCB0YXNrcyBhbmQgc2FmZSBkZWxlZ2F0aW9uPC90ZXh0PgogIDxyZWN0IHg9Ijk0MCIgeT0iNDkwIiB3aWR0aD0iNTYwIiBoZWlnaHQ9Ijg0IiByeD0iMTQiIGZpbGw9IiNmZWNhY2EiIHN0cm9rZT0iI2I5MWMxYyIgc3Ryb2tlLXdpZHRoPSIyLjUiLz48dGV4dCBjbGFzcz0ieCIgeD0iOTY4IiB5PSI1NDIiPk5vIHJlY3Vyc2l2ZSBkZWxlZ2F0aW9uIG9yIGJyb2FkIHNpZGUgZWZmZWN0czwvdGV4dD4KICA8cmVjdCB4PSI5NDAiIHk9IjU5MiIgd2lkdGg9IjU2MCIgaGVpZ2h0PSI4NCIgcng9IjE0IiBmaWxsPSIjZGRkNmZlIiBzdHJva2U9IiM2ZDI4ZDkiIHN0cm9rZS13aWR0aD0iMi41Ii8+PHRleHQgY2xhc3M9IngiIHg9Ijk2OCIgeT0iNjQ0Ij5SZXR1cm5zIHJlc3VsdHMgdG8gbWFpbiBsb29wIGZvciBmaW5hbCByZXNwb25zZTwvdGV4dD4KCiAgPHBhdGggY2xhc3M9ImEiIGQ9Ik03NzAgNDUwIEw4OTAgNDUwIi8+PHRleHQgY2xhc3M9IngiIHg9Ijc4NCIgeT0iNDMwIj5kZWxlZ2F0ZTwvdGV4dD4KPC9zdmc+Cg==" width="1660" height="920" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="memory-is-layered-not-monolithic">Memory Is Layered, Not Monolithic<a href="https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime#memory-is-layered-not-monolithic" class="hash-link" aria-label="Memory Is Layered, Not Monolithic का सीधा लिंक" title="Memory Is Layered, Not Monolithic का सीधा लिंक" translate="no">​</a></h2>
<p>MicroClaw now uses two complementary memory layers.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-file-memory">1) File memory<a href="https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime#1-file-memory" class="hash-link" aria-label="1) File memory का सीधा लिंक" title="1) File memory का सीधा लिंक" translate="no">​</a></h3>
<ul>
<li class="">Global: <code>runtime/groups/AGENTS.md</code></li>
<li class="">Per chat: <code>runtime/groups/{chat_id}/AGENTS.md</code></li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-structured-memory-memories-table">2) Structured memory (<code>memories</code> table)<a href="https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime#2-structured-memory-memories-table" class="hash-link" aria-label="2-structured-memory-memories-table का सीधा लिंक" title="2-structured-memory-memories-table का सीधा लिंक" translate="no">​</a></h3>
<ul>
<li class="">Normalized records with category/confidence/source/last_seen</li>
<li class="">Archive lifecycle and supersede edges (<code>memory_supersede_edges</code>)</li>
<li class="">Explicit-memory fast path + reflector extraction from conversation history</li>
</ul>
<p>This layered design keeps user-facing notes simple while enabling queryable memory operations in SQLite.</p>
<p><img decoding="async" loading="lazy" alt="Memory hierarchy and lifecycle" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjQwIiBoZWlnaHQ9IjkyMCIgdmlld0JveD0iMCAwIDE2NDAgOTIwIj4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYmc2IiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VjZmVmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2UwZTdmZiIvPjwvbGluZWFyR3JhZGllbnQ+CiAgICA8c3R5bGU+LnR0e2ZvbnQ6NzAwIDQwcHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMwYzFmMzN9Lmh7Zm9udDo3MDAgMjNweCAnQXZlbmlyIE5leHQnLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZpbGw6IzBjMWYzM30ueHtmb250OjUwMCAxOHB4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fS5he3N0cm9rZTojMzM0MTU1O3N0cm9rZS13aWR0aDo0O2ZpbGw6bm9uZTttYXJrZXItZW5kOnVybCgjbTYpfTwvc3R5bGU+CiAgICA8bWFya2VyIGlkPSJtNiIgbWFya2VyV2lkdGg9IjEyIiBtYXJrZXJIZWlnaHQ9IjEyIiByZWZYPSIxMCIgcmVmWT0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCwwIEwxMiw2IEwwLDEyIHoiIGZpbGw9IiMzMzQxNTUiLz48L21hcmtlcj4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjE2NDAiIGhlaWdodD0iOTIwIiBmaWxsPSJ1cmwoI2JnNikiLz4KICA8dGV4dCBjbGFzcz0idHQiIHg9IjcwIiB5PSI4NiI+U2Vzc2lvbiBhbmQgQ29udGV4dCBMaWZlY3ljbGU8L3RleHQ+CgogIDxyZWN0IHg9IjkwIiB5PSIyMzAiIHdpZHRoPSIyOTIiIGhlaWdodD0iMTg0IiByeD0iMTYiIGZpbGw9IiM5M2M1ZmQiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9ImgiIHg9IjE3NSIgeT0iMzA0Ij5SZXN0b3JlPC90ZXh0Pjx0ZXh0IGNsYXNzPSJ4IiB4PSIxMzIiIHk9IjMzOSI+bG9hZCBzZXNzaW9uIG9yIHJlYnVpbGQgaGlzdG9yeTwvdGV4dD4KICA8cmVjdCB4PSI0MzAiIHk9IjIzMCIgd2lkdGg9IjI5MiIgaGVpZ2h0PSIxODQiIHJ4PSIxNiIgZmlsbD0iIzg2ZWZhYyIgc3Ryb2tlPSIjMTU4MDNkIiBzdHJva2Utd2lkdGg9IjMiLz48dGV4dCBjbGFzcz0iaCIgeD0iNTMwIiB5PSIzMDQiPkVucmljaDwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iNDQ4IiB5PSIzMzkiPmZpbGUgbWVtb3J5ICsgc3RydWN0dXJlZCBtZW1vcnkgKyBza2lsbHM8L3RleHQ+CiAgPHJlY3QgeD0iNzcwIiB5PSIyMzAiIHdpZHRoPSIyOTIiIGhlaWdodD0iMTg0IiByeD0iMTYiIGZpbGw9IiNmZGU2OGEiIHN0cm9rZT0iI2ExNjIwNyIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9ImgiIHg9Ijg0OCIgeT0iMzA0Ij5Db21wYWN0PC90ZXh0Pjx0ZXh0IGNsYXNzPSJ4IiB4PSI4MTAiIHk9IjMzOSI+c3VtbWFyaXplIG9sZCBjb250ZXh0IG9uIHRocmVzaG9sZDwvdGV4dD4KICA8cmVjdCB4PSIxMTEwIiB5PSIyMzAiIHdpZHRoPSIyOTIiIGhlaWdodD0iMTg0IiByeD0iMTYiIGZpbGw9IiNmOWE4ZDQiIHN0cm9rZT0iI2JlMTg1ZCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9ImgiIHg9IjExOTAiIHk9IjMwNCI+UGVyc2lzdDwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iMTE0OCIgeT0iMzM5Ij5zdG9yZSB1cGRhdGVkIHN0YXRlIGZvciByZXN1bWU8L3RleHQ+CgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNMzgyIDMyMiBMNDMwIDMyMiIvPjxwYXRoIGNsYXNzPSJhIiBkPSJNNzIyIDMyMiBMNzcwIDMyMiIvPjxwYXRoIGNsYXNzPSJhIiBkPSJNMTA2MiAzMjIgTDExMTAgMzIyIi8+CgogIDxyZWN0IHg9IjI3MCIgeT0iNTE0IiB3aWR0aD0iMTEwMCIgaGVpZ2h0PSIyMzAiIHJ4PSIyMCIgZmlsbD0iI2ZmZmZmZmNjIiBzdHJva2U9IiMzMzQxNTUiIHN0cm9rZS13aWR0aD0iMyIvPgogIDx0ZXh0IGNsYXNzPSJoIiB4PSI2MDIiIHk9IjU4MiI+UXVhbGl0eSArIFJlZmxlY3RvciBGZWVkYmFjayBMb29wPC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4IiB4PSIzMzgiIHk9IjYyMiI+ZXhwbGljaXQgcmVtZW1iZXIgcGF0aCwgbm9ybWFsaXphdGlvbiwgZGVkdXAsIHN1cGVyc2VkZSBlZGdlcywgYW5kIHBlcmlvZGljIHJlZmxlY3RvciBleHRyYWN0aW9uPC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4IiB4PSI0MzAiIHk9IjY1OCI+YWxsIGZlZWRpbmcgZnV0dXJlIHByb21wdCBpbmplY3Rpb24gd2l0aCBvYnNlcnZhYmlsaXR5IGxvZ3MgZm9yIHJlY2FsbCBxdWFsaXR5PC90ZXh0Pgo8L3N2Zz4K" width="1640" height="920" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" alt="File + structured memory model" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNTYwIiBoZWlnaHQ9IjkyMCIgdmlld0JveD0iMCAwIDE1NjAgOTIwIj4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYmc3IiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZlZjNjNyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2UwZjJmZSIvPjwvbGluZWFyR3JhZGllbnQ+CiAgICA8c3R5bGU+LnR0e2ZvbnQ6NzAwIDQycHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMxMTE4Mjd9Lmh7Zm9udDo3MDAgMjRweCAnQXZlbmlyIE5leHQnLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZpbGw6IzExMTgyN30ueHtmb250OjUwMCAxOHB4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMzc0MTUxfS5he3N0cm9rZTojMzc0MTUxO3N0cm9rZS13aWR0aDozO2ZpbGw6bm9uZTttYXJrZXItZW5kOnVybCgjbTcpfTwvc3R5bGU+CiAgICA8bWFya2VyIGlkPSJtNyIgbWFya2VyV2lkdGg9IjEyIiBtYXJrZXJIZWlnaHQ9IjEyIiByZWZYPSIxMCIgcmVmWT0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCwwIEwxMiw2IEwwLDEyIHoiIGZpbGw9IiMzNzQxNTEiLz48L21hcmtlcj4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjE1NjAiIGhlaWdodD0iOTIwIiBmaWxsPSJ1cmwoI2JnNykiLz4KICA8dGV4dCBjbGFzcz0idHQiIHg9IjcwIiB5PSI4NiI+RmlsZSArIFN0cnVjdHVyZWQgTWVtb3J5IE1vZGVsPC90ZXh0PgoKICA8cmVjdCB4PSI1MjAiIHk9IjE2MCIgd2lkdGg9IjUyMCIgaGVpZ2h0PSIxMzAiIHJ4PSIxOCIgZmlsbD0iI2M0YjVmZCIgc3Ryb2tlPSIjNmQyOGQ5IiBzdHJva2Utd2lkdGg9IjMiLz4KICA8dGV4dCBjbGFzcz0iaCIgeD0iNjkwIiB5PSIyMTUiPk1lbW9yeSBNYW5hZ2VyPC90ZXh0Pjx0ZXh0IGNsYXNzPSJ4IiB4PSI2MjYiIHk9IjI0NiI+YnVpbGRzIG1lbW9yeSBjb250ZXh0IGZvciBwcm9tcHRzPC90ZXh0PgoKICA8cmVjdCB4PSIxNDAiIHk9IjM4MCIgd2lkdGg9IjUyMCIgaGVpZ2h0PSIyNjAiIHJ4PSIyMCIgZmlsbD0iIzg2ZWZhYyIgc3Ryb2tlPSIjMTU4MDNkIiBzdHJva2Utd2lkdGg9IjMiLz4KICA8dGV4dCBjbGFzcz0iaCIgeD0iMzAwIiB5PSI0NDIiPkZpbGUgTWVtb3J5PC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4IiB4PSIyMDAiIHk9IjQ4NCI+YHJ1bnRpbWUvZ3JvdXBzL0FHRU5UUy5tZGAgKGdsb2JhbCk8L3RleHQ+CiAgPHRleHQgY2xhc3M9IngiIHg9IjIwMCIgeT0iNTIwIj5gcnVudGltZS9ncm91cHMve2NoYXRfaWR9L0FHRU5UUy5tZGAgKGNoYXQpPC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4IiB4PSIyMDAiIHk9IjU1NiI+aHVtYW4tZWRpdGFibGUsIHBlcnNpc3RlbnQgbm90ZXM8L3RleHQ+CgogIDxyZWN0IHg9IjkwMCIgeT0iMzgwIiB3aWR0aD0iNTIwIiBoZWlnaHQ9IjI2MCIgcng9IjIwIiBmaWxsPSIjZjlhOGQ0IiBzdHJva2U9IiNiZTE4NWQiIHN0cm9rZS13aWR0aD0iMyIvPgogIDx0ZXh0IGNsYXNzPSJoIiB4PSIxMDMwIiB5PSI0NDIiPlN0cnVjdHVyZWQgTWVtb3J5PC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4IiB4PSI5NjAiIHk9IjQ4NCI+YG1lbW9yaWVzYCArIHN1cGVyc2VkZSBlZGdlczwvdGV4dD4KICA8dGV4dCBjbGFzcz0ieCIgeD0iOTYwIiB5PSI1MjAiPmNvbmZpZGVuY2Uvc291cmNlL2xhc3Rfc2VlbiBsaWZlY3ljbGU8L3RleHQ+CiAgPHRleHQgY2xhc3M9IngiIHg9Ijk2MCIgeT0iNTU2Ij5yZWZsZWN0b3IgKyBxdWFsaXR5IGdhdGluZyBzdXBwb3J0PC90ZXh0PgoKICA8cGF0aCBjbGFzcz0iYSIgZD0iTTcwMCAyOTAgTDQyMCAzODAiLz48cGF0aCBjbGFzcz0iYSIgZD0iTTg2MCAyOTAgTDExNDAgMzgwIi8+CgogIDxyZWN0IHg9IjQwMCIgeT0iNzMwIiB3aWR0aD0iNzYwIiBoZWlnaHQ9IjExMCIgcng9IjE2IiBmaWxsPSIjOTNjNWZkIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMyIvPgogIDx0ZXh0IGNsYXNzPSJ4IiB4PSI1MTAiIHk9Ijc5NyI+Ym90aCBsYXllcnMgZmVlZCBzeXN0ZW0gcHJvbXB0IG1lbW9yeSBpbmplY3Rpb24gYW5kIG9ic2VydmFiaWxpdHk8L3RleHQ+Cjwvc3ZnPgo=" width="1560" height="920" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="scheduler--reflector-background-jobs">Scheduler + Reflector Background Jobs<a href="https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime#scheduler--reflector-background-jobs" class="hash-link" aria-label="Scheduler + Reflector Background Jobs का सीधा लिंक" title="Scheduler + Reflector Background Jobs का सीधा लिंक" translate="no">​</a></h2>
<p>Background workers in <code>scheduler.rs</code> run on intervals:</p>
<ul>
<li class="">Execute due scheduled tasks</li>
<li class="">Trigger memory reflector passes</li>
<li class="">Persist run metadata for observability</li>
</ul>
<p>So MicroClaw is not only reactive to incoming messages, but also proactive through timed execution and memory maintenance.</p>
<p><img decoding="async" loading="lazy" alt="Scheduler and reflector lifecycle" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjYwIiBoZWlnaHQ9IjkyMCIgdmlld0JveD0iMCAwIDE2NjAgOTIwIj4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYmc4IiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2RjZmNlNyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2RiZWFmZSIvPjwvbGluZWFyR3JhZGllbnQ+CiAgICA8c3R5bGU+LnR0e2ZvbnQ6NzAwIDQwcHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMwNTJlMmJ9Lmh7Zm9udDo3MDAgMjJweCAnQXZlbmlyIE5leHQnLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZpbGw6IzA2NWY0Nn0ueHtmb250OjUwMCAxOHB4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMTQ1MzJkfS5he3N0cm9rZTojMTY2NTM0O3N0cm9rZS13aWR0aDo0O2ZpbGw6bm9uZTttYXJrZXItZW5kOnVybCgjbTgpfTwvc3R5bGU+CiAgICA8bWFya2VyIGlkPSJtOCIgbWFya2VyV2lkdGg9IjEyIiBtYXJrZXJIZWlnaHQ9IjEyIiByZWZYPSIxMCIgcmVmWT0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCwwIEwxMiw2IEwwLDEyIHoiIGZpbGw9IiMxNjY1MzQiLz48L21hcmtlcj4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjE2NjAiIGhlaWdodD0iOTIwIiBmaWxsPSJ1cmwoI2JnOCkiLz4KICA8dGV4dCBjbGFzcz0idHQiIHg9IjcwIiB5PSI4OCI+QmFja2dyb3VuZCBXb3JrZXJzOiBTY2hlZHVsZXIgKyBSZWZsZWN0b3I8L3RleHQ+CgogIDxjaXJjbGUgY3g9IjI2MCIgY3k9IjQ2MCIgcj0iMTIwIiBmaWxsPSIjYmJmN2QwIiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IGNsYXNzPSJoIiB4PSIyMDQiIHk9IjQ1NSI+UG9sbCBUaWNrPC90ZXh0Pjx0ZXh0IGNsYXNzPSJ4IiB4PSIxNzAiIHk9IjQ4NiI+cGVyaW9kaWMgbG9vcDwvdGV4dD4KICA8Y2lyY2xlIGN4PSI2MjAiIGN5PSIzMjAiIHI9IjEyMCIgZmlsbD0iIzkzYzVmZCIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjMiLz48dGV4dCBjbGFzcz0iaCIgeD0iNTQ1IiB5PSIzMTUiPkR1ZSBUYXNrczwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iNTEwIiB5PSIzNDYiPnNjaGVkdWxlZF90YXNrczwvdGV4dD4KICA8Y2lyY2xlIGN4PSI2MjAiIGN5PSI2MDAiIHI9IjEyMCIgZmlsbD0iI2Y5YThkNCIgc3Ryb2tlPSIjYmUxODVkIiBzdHJva2Utd2lkdGg9IjMiLz48dGV4dCBjbGFzcz0iaCIgeD0iNTMyIiB5PSI1OTUiPlJlZmxlY3RvcjwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iNTAwIiB5PSI2MjYiPm1lbW9yeSBleHRyYWN0aW9uPC90ZXh0PgogIDxjaXJjbGUgY3g9IjEwMTAiIGN5PSIzMjAiIHI9IjEyMCIgZmlsbD0iI2ZkZTY4YSIgc3Ryb2tlPSIjYTE2MjA3IiBzdHJva2Utd2lkdGg9IjMiLz48dGV4dCBjbGFzcz0iaCIgeD0iOTM0IiB5PSIzMTUiPkFnZW50IFJ1bjwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iODkyIiB5PSIzNDYiPnByb2Nlc3Nfd2l0aF9hZ2VudDwvdGV4dD4KICA8Y2lyY2xlIGN4PSIxMDEwIiBjeT0iNjAwIiByPSIxMjAiIGZpbGw9IiNjNGI1ZmQiIHN0cm9rZT0iIzZkMjhkOSIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9ImgiIHg9IjkyNSIgeT0iNTk1Ij5NZW1vcnkgT3BzPC90ZXh0Pjx0ZXh0IGNsYXNzPSJ4IiB4PSI4ODUiIHk9IjYyNiI+ZGVkdXAgLyBzdXBlcnNlZGU8L3RleHQ+CiAgPGNpcmNsZSBjeD0iMTM5MCIgY3k9IjQ2MCIgcj0iMTIwIiBmaWxsPSIjNjdlOGY5IiBzdHJva2U9IiMwZTc0OTAiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IGNsYXNzPSJoIiB4PSIxMzA4IiB5PSI0NTUiPk9ic2VydmFiaWxpdHk8L3RleHQ+PHRleHQgY2xhc3M9IngiIHg9IjEyNjYiIHk9IjQ4NiI+cnVucyArIGluamVjdGlvbnM8L3RleHQ+CgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNMzgwIDQxMCBMNTEwIDM1MCIvPjxwYXRoIGNsYXNzPSJhIiBkPSJNMzgwIDUxMCBMNTEwIDU3MCIvPgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNNzQwIDMyMCBMODkwIDMyMCIvPjxwYXRoIGNsYXNzPSJhIiBkPSJNNzQwIDYwMCBMODkwIDYwMCIvPgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNMTEyNSAzNzAgTDEyOTAgNDMwIi8+PHBhdGggY2xhc3M9ImEiIGQ9Ik0xMTI1IDU1MCBMMTI5MCA0OTAiLz4KPC9zdmc+Cg==" width="1660" height="920" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cross-channel-behavior">Cross-Channel Behavior<a href="https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime#cross-channel-behavior" class="hash-link" aria-label="Cross-Channel Behavior का सीधा लिंक" title="Cross-Channel Behavior का सीधा लिंक" translate="no">​</a></h2>
<p>Each channel keeps its own delivery rules, but all share the same engine.</p>
<ul>
<li class="">Telegram and Discord apply adapter-specific mention and output limits</li>
<li class="">Web supports send/stream APIs and replay endpoints</li>
<li class="">Session/history/reset/delete behavior is unified through shared persistence</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Telegram vs Discord handling" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzIwIiBoZWlnaHQ9IjkyMCIgdmlld0JveD0iMCAwIDE3MjAgOTIwIj4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYmc5IiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VmZjZmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZjZTdmMyIvPjwvbGluZWFyR3JhZGllbnQ+CiAgICA8c3R5bGU+LnR0e2ZvbnQ6NzAwIDQwcHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMwZjE3MmF9Lmh7Zm9udDo3MDAgMzBweCAnQXZlbmlyIE5leHQnLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZpbGw6IzBmMTcyYX0ueHtmb250OjUwMCAyMXB4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMWUyOTNifTwvc3R5bGU+CiAgPC9kZWZzPgogIDxyZWN0IHdpZHRoPSIxNzIwIiBoZWlnaHQ9IjkyMCIgZmlsbD0idXJsKCNiZzkpIi8+CiAgPHRleHQgY2xhc3M9InR0IiB4PSI3MCIgeT0iODgiPk1lc3NhZ2UgSGFuZGxpbmc6IFRlbGVncmFtIHZzIERpc2NvcmQ8L3RleHQ+CgogIDxyZWN0IHg9IjEwMCIgeT0iMTY4IiB3aWR0aD0iNzIwIiBoZWlnaHQ9IjY2MCIgcng9IjIyIiBmaWxsPSIjZGJlYWZlY2MiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIzIi8+CiAgPHRleHQgY2xhc3M9ImgiIHg9IjM2NSIgeT0iMjQwIj5UZWxlZ3JhbTwvdGV4dD4KICA8dGV4dCBjbGFzcz0ieCIgeD0iMTUwIiB5PSIzMjAiPuKAoiBQcml2YXRlIGNoYXQ6IGFsd2F5cyByZXNwb25kPC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4IiB4PSIxNTAiIHk9IjM4MCI+4oCiIEdyb3VwIGNoYXQ6IG1lbnRpb24tZ2F0ZWQgYmVoYXZpb3I8L3RleHQ+CiAgPHRleHQgY2xhc3M9IngiIHg9IjE1MCIgeT0iNDQwIj7igKIgVHlwaW5nL3N0YXR1cyB1cGRhdGVzIGR1cmluZyBsb25nIHJ1bnM8L3RleHQ+CiAgPHRleHQgY2xhc3M9IngiIHg9IjE1MCIgeT0iNTAwIj7igKIgU3BsaXQgbG9uZyByZXBsaWVzIGJ5IHBsYXRmb3JtIGxpbWl0czwvdGV4dD4KICA8dGV4dCBjbGFzcz0ieCIgeD0iMTUwIiB5PSI1NjAiPuKAoiBQZXJzaXN0IG1lc3NhZ2VzIGludG8gc2hhcmVkIHN0b3JhZ2U8L3RleHQ+CgogIDxyZWN0IHg9IjkwMCIgeT0iMTY4IiB3aWR0aD0iNzIwIiBoZWlnaHQ9IjY2MCIgcng9IjIyIiBmaWxsPSIjZmNlN2YzY2MiIHN0cm9rZT0iI2JlMTg1ZCIgc3Ryb2tlLXdpZHRoPSIzIi8+CiAgPHRleHQgY2xhc3M9ImgiIHg9IjExNzIiIHk9IjI0MCI+RGlzY29yZDwvdGV4dD4KICA8dGV4dCBjbGFzcz0ieCIgeD0iOTUwIiB5PSIzMjAiPuKAoiBETXM6IGFsd2F5cyByZXNwb25kPC90ZXh0PgogIDx0ZXh0IGNsYXNzPSJ4IiB4PSI5NTAiIHk9IjM4MCI+4oCiIFNlcnZlciBjaGFubmVsczogbWVudGlvbi93aGl0ZWxpc3QgcnVsZXM8L3RleHQ+CiAgPHRleHQgY2xhc3M9IngiIHg9Ijk1MCIgeT0iNDQwIj7igKIgR2F0ZXdheSBldmVudHMgcm91dGVkIGludG8gc2FtZSBjb3JlIGxvb3A8L3RleHQ+CiAgPHRleHQgY2xhc3M9IngiIHg9Ijk1MCIgeT0iNTAwIj7igKIgU3BsaXQgcmVwbGllcyB0byBjaGFubmVsLXNhZmUgY2h1bmsgc2l6ZTwvdGV4dD4KICA8dGV4dCBjbGFzcz0ieCIgeD0iOTUwIiB5PSI1NjAiPuKAoiBTaGFyZWQgc2Vzc2lvbiBhbmQgbWVtb3J5IGJlaGF2aW9yPC90ZXh0Pgo8L3N2Zz4K" width="1720" height="920" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="data-model-and-observability">Data Model and Observability<a href="https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime#data-model-and-observability" class="hash-link" aria-label="Data Model and Observability का सीधा लिंक" title="Data Model and Observability का सीधा लिंक" translate="no">​</a></h2>
<p><code>db.rs</code> now covers more than core chat storage. In addition to <code>chats/messages/sessions/scheduled_tasks</code>, it includes:</p>
<ul>
<li class="">Structured memory tables (<code>memories</code>, <code>memory_supersede_edges</code>)</li>
<li class="">Memory observability tables (<code>memory_reflector_runs</code>, <code>memory_injection_logs</code>)</li>
<li class="">Schema versioning and migration tracking (<code>db_meta</code>, <code>schema_migrations</code>)</li>
</ul>
<p>Operational surfaces include:</p>
<ul>
<li class=""><code>/api/usage</code></li>
<li class=""><code>/api/memory_observability</code></li>
<li class="">Web Usage panel trend cards</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Database and observability schema" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNzQwIiBoZWlnaHQ9IjEwMjAiIHZpZXdCb3g9IjAgMCAxNzQwIDEwMjAiPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJiZzEwIiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2YwZjlmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZlZjNjNyIvPjwvbGluZWFyR3JhZGllbnQ+CiAgICA8c3R5bGU+LnR0e2ZvbnQ6NzAwIDQwcHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMxMTE4Mjd9Lmh7Zm9udDo3MDAgMjRweCAnQXZlbmlyIE5leHQnLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZpbGw6IzExMTgyN30ueHtmb250OjUwMCAxN3B4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMzc0MTUxfS5se3N0cm9rZTojMzM0MTU1O3N0cm9rZS13aWR0aDozO21hcmtlci1lbmQ6dXJsKCNtMTApfTwvc3R5bGU+CiAgICA8bWFya2VyIGlkPSJtMTAiIG1hcmtlcldpZHRoPSIxMiIgbWFya2VySGVpZ2h0PSIxMiIgcmVmWD0iMTAiIHJlZlk9IjYiIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAsMCBMMTIsNiBMMCwxMiB6IiBmaWxsPSIjMzM0MTU1Ii8+PC9tYXJrZXI+CiAgPC9kZWZzPgogIDxyZWN0IHdpZHRoPSIxNzQwIiBoZWlnaHQ9IjEwMjAiIGZpbGw9InVybCgjYmcxMCkiLz4KICA8dGV4dCBjbGFzcz0idHQiIHg9IjcwIiB5PSI4NCI+RGF0YWJhc2UgKyBPYnNlcnZhYmlsaXR5IFNjaGVtYSAoSGlnaCBMZXZlbCk8L3RleHQ+CgogIDxyZWN0IHg9Ijg2IiB5PSIxNzAiIHdpZHRoPSIzNTAiIGhlaWdodD0iMjQ4IiByeD0iMTYiIGZpbGw9IiM5M2M1ZmQiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9ImgiIHg9IjIwOCIgeT0iMjE0Ij5jaGF0czwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iMTIwIiB5PSIyNTQiPmlkLCB0aXRsZSwgdHlwZSwgbGFzdF9tZXNzYWdlX3RpbWU8L3RleHQ+CiAgPHJlY3QgeD0iNDk2IiB5PSIxMzAiIHdpZHRoPSI0NDgiIGhlaWdodD0iMzIwIiByeD0iMTYiIGZpbGw9IiNjNGI1ZmQiIHN0cm9rZT0iIzZkMjhkOSIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9ImgiIHg9IjY2NCIgeT0iMTc0Ij5tZXNzYWdlczwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iNTI4IiB5PSIyMTQiPmlkLCBjaGF0X2lkLCBzZW5kZXIsIGNvbnRlbnQ8L3RleHQ+PHRleHQgY2xhc3M9IngiIHg9IjUyOCIgeT0iMjQ0Ij5pc19mcm9tX2JvdCwgdGltZXN0YW1wPC90ZXh0PgogIDxyZWN0IHg9IjQ5NiIgeT0iNDkwIiB3aWR0aD0iNDQ4IiBoZWlnaHQ9IjIyMCIgcng9IjE2IiBmaWxsPSIjODZlZmFjIiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IGNsYXNzPSJoIiB4PSI2NzQiIHk9IjUzNCI+c2Vzc2lvbnM8L3RleHQ+PHRleHQgY2xhc3M9IngiIHg9IjUyOCIgeT0iNTc0Ij5jaGF0X2lkLCBtZXNzYWdlc19qc29uLCB1cGRhdGVkX2F0PC90ZXh0PgogIDxyZWN0IHg9Ijg2IiB5PSI1MDAiIHdpZHRoPSIzNTAiIGhlaWdodD0iMjMyIiByeD0iMTYiIGZpbGw9IiNmZGU2OGEiIHN0cm9rZT0iI2ExNjIwNyIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9ImgiIHg9IjEzNCIgeT0iNTQ2Ij5zY2hlZHVsZWRfdGFza3M8L3RleHQ+PHRleHQgY2xhc3M9IngiIHg9IjEyMCIgeT0iNTg2Ij5wcm9tcHQsIHNjaGVkdWxlLCBuZXh0X3J1biwgc3RhdHVzPC90ZXh0PgoKICA8cmVjdCB4PSIxMDEwIiB5PSIxMzAiIHdpZHRoPSIzMzAiIGhlaWdodD0iMjYwIiByeD0iMTYiIGZpbGw9IiNmOWE4ZDQiIHN0cm9rZT0iI2JlMTg1ZCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9ImgiIHg9IjExMTYiIHk9IjE3NCI+bWVtb3JpZXM8L3RleHQ+PHRleHQgY2xhc3M9IngiIHg9IjEwNDAiIHk9IjIxNCI+Y2F0ZWdvcnksIGNvbmZpZGVuY2UsIHNvdXJjZTwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iMTA0MCIgeT0iMjQ0Ij5sYXN0X3NlZW4sIGFyY2hpdmVkIGxpZmVjeWNsZTwvdGV4dD4KICA8cmVjdCB4PSIxMDEwIiB5PSI0MzAiIHdpZHRoPSIzMzAiIGhlaWdodD0iMjAwIiByeD0iMTYiIGZpbGw9IiNmY2E1YTUiIHN0cm9rZT0iI2I5MWMxYyIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9ImgiIHg9IjEwNDgiIHk9IjQ3NCI+bWVtb3J5X3N1cGVyc2VkZV9lZGdlczwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iMTA0MCIgeT0iNTE0Ij5mcm9tX21lbW9yeV9pZCAtPiB0b19tZW1vcnlfaWQ8L3RleHQ+CiAgPHJlY3QgeD0iMTM5MCIgeT0iMTMwIiB3aWR0aD0iMjg2IiBoZWlnaHQ9IjI0MCIgcng9IjE2IiBmaWxsPSIjNjdlOGY5IiBzdHJva2U9IiMwZTc0OTAiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IGNsYXNzPSJoIiB4PSIxNDMyIiB5PSIxNzQiPm1lbW9yeV9yZWZsZWN0b3JfcnVuczwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iMTQxOCIgeT0iMjE0Ij5ydW4gbWV0YWRhdGEgKyBvdXRjb21lczwvdGV4dD4KICA8cmVjdCB4PSIxMzkwIiB5PSI0MjAiIHdpZHRoPSIyODYiIGhlaWdodD0iMjEwIiByeD0iMTYiIGZpbGw9IiNhN2YzZDAiIHN0cm9rZT0iIzA0Nzg1NyIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9ImgiIHg9IjE0MjIiIHk9IjQ2NCI+bWVtb3J5X2luamVjdGlvbl9sb2dzPC90ZXh0Pjx0ZXh0IGNsYXNzPSJ4IiB4PSIxNDIwIiB5PSI1MDQiPnByb21wdCBpbmplY3Rpb24gdGVsZW1ldHJ5PC90ZXh0PgogIDxyZWN0IHg9IjEwMTAiIHk9IjcwMCIgd2lkdGg9IjY2NiIgaGVpZ2h0PSIxODAiIHJ4PSIxNiIgZmlsbD0iI2JmZGJmZSIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjMiLz48dGV4dCBjbGFzcz0iaCIgeD0iMTIyMCIgeT0iNzQ0Ij5kYl9tZXRhICsgc2NoZW1hX21pZ3JhdGlvbnM8L3RleHQ+PHRleHQgY2xhc3M9IngiIHg9IjEwNDgiIHk9Ijc4NCI+c2NoZW1hIHZlcnNpb25pbmcsIG1pZ3JhdGlvbiBoaXN0b3J5LCBsZWdhY3kgdXBncmFkZSB0cmFja2luZzwvdGV4dD4KCiAgPGxpbmUgY2xhc3M9ImwiIHgxPSI0MzYiIHkxPSIyNTIiIHgyPSI0OTYiIHkyPSIyNTIiLz48bGluZSBjbGFzcz0ibCIgeDE9IjI2MiIgeTE9IjQxOCIgeDI9IjI2MiIgeTI9IjUwMCIvPjxsaW5lIGNsYXNzPSJsIiB4MT0iNzIwIiB5MT0iNDUwIiB4Mj0iNzIwIiB5Mj0iNDkwIi8+CiAgPGxpbmUgY2xhc3M9ImwiIHgxPSI5NDQiIHkxPSIyNTIiIHgyPSIxMDEwIiB5Mj0iMjUyIi8+PGxpbmUgY2xhc3M9ImwiIHgxPSIxMTc2IiB5MT0iMzkwIiB4Mj0iMTE3NiIgeTI9IjQzMCIvPjxsaW5lIGNsYXNzPSJsIiB4MT0iMTM0MCIgeTE9IjI1MiIgeDI9IjEzOTAiIHkyPSIyNTIiLz4KICA8bGluZSBjbGFzcz0ibCIgeDE9IjEzNDAiIHkxPSI1MjIiIHgyPSIxMzkwIiB5Mj0iNTIyIi8+Cjwvc3ZnPgo=" width="1740" height="1020" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="extending-microclaw">Extending MicroClaw<a href="https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime#extending-microclaw" class="hash-link" aria-label="Extending MicroClaw का सीधा लिंक" title="Extending MicroClaw का सीधा लिंक" translate="no">​</a></h2>
<p>For new tools and capabilities:</p>
<ol>
<li class="">Implement a new tool under <code>src/tools/</code></li>
<li class="">Register it via <code>ToolRegistry</code></li>
<li class="">Keep schemas explicit and docs generated from source</li>
<li class="">Reuse <code>process_with_agent</code> rather than adding platform-specific loops</li>
</ol>
<p>This keeps the runtime coherent as features scale.</p>
<p><img decoding="async" loading="lazy" alt="New tool flow" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjYwIiBoZWlnaHQ9IjkyMCIgdmlld0JveD0iMCAwIDE2NjAgOTIwIj4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYmcxMSIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjEiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNlY2ZlZmYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZWY5YzMiLz48L2xpbmVhckdyYWRpZW50PgogICAgPHN0eWxlPi50dHtmb250OjcwMCA0MHB4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMGYxNzJhfS5ue2ZvbnQ6NzAwIDMwcHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMwZjE3MmF9Lnh7Zm9udDo1MDAgMjFweCAnQXZlbmlyIE5leHQnLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZpbGw6IzFlMjkzYn0uYXtzdHJva2U6IzMzNDE1NTtzdHJva2Utd2lkdGg6NDtmaWxsOm5vbmU7bWFya2VyLWVuZDp1cmwoI20xMSl9PC9zdHlsZT4KICAgIDxtYXJrZXIgaWQ9Im0xMSIgbWFya2VyV2lkdGg9IjEyIiBtYXJrZXJIZWlnaHQ9IjEyIiByZWZYPSIxMCIgcmVmWT0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCwwIEwxMiw2IEwwLDEyIHoiIGZpbGw9IiMzMzQxNTUiLz48L21hcmtlcj4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjE2NjAiIGhlaWdodD0iOTIwIiBmaWxsPSJ1cmwoI2JnMTEpIi8+CiAgPHRleHQgY2xhc3M9InR0IiB4PSI3MCIgeT0iODYiPkhvdyB0byBBZGQgYSBOZXcgVG9vbDwvdGV4dD4KCiAgPHJlY3QgeD0iMTIwIiB5PSIyMzAiIHdpZHRoPSIyOTAiIGhlaWdodD0iMTcwIiByeD0iMTYiIGZpbGw9IiM5M2M1ZmQiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9Im4iIHg9IjE2MCIgeT0iMjkyIj4xPC90ZXh0Pjx0ZXh0IGNsYXNzPSJ4IiB4PSIyMDAiIHk9IjI5MiI+Q3JlYXRlIGZpbGU8L3RleHQ+PHRleHQgY2xhc3M9IngiIHg9IjE2MCIgeT0iMzMyIj5gc3JjL3Rvb2xzL215X3Rvb2wucnNgPC90ZXh0PgogIDxyZWN0IHg9IjQ3MCIgeT0iMjMwIiB3aWR0aD0iMjkwIiBoZWlnaHQ9IjE3MCIgcng9IjE2IiBmaWxsPSIjYzRiNWZkIiBzdHJva2U9IiM2ZDI4ZDkiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IGNsYXNzPSJuIiB4PSI1MTAiIHk9IjI5MiI+MjwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iNTUwIiB5PSIyOTIiPkltcGxlbWVudCBgVG9vbGAgdHJhaXQ8L3RleHQ+CiAgPHJlY3QgeD0iODIwIiB5PSIyMzAiIHdpZHRoPSIyOTAiIGhlaWdodD0iMTcwIiByeD0iMTYiIGZpbGw9IiM4NmVmYWMiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9Im4iIHg9Ijg2MCIgeT0iMjkyIj4zPC90ZXh0Pjx0ZXh0IGNsYXNzPSJ4IiB4PSI5MDAiIHk9IjI5MiI+RXhwb3J0IG1vZHVsZTwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iODYwIiB5PSIzMzIiPmB0b29scy9tb2QucnNgPC90ZXh0PgogIDxyZWN0IHg9IjExNzAiIHk9IjIzMCIgd2lkdGg9IjI5MCIgaGVpZ2h0PSIxNzAiIHJ4PSIxNiIgZmlsbD0iI2ZkZTY4YSIgc3Ryb2tlPSIjYTE2MjA3IiBzdHJva2Utd2lkdGg9IjMiLz48dGV4dCBjbGFzcz0ibiIgeD0iMTIxMCIgeT0iMjkyIj40PC90ZXh0Pjx0ZXh0IGNsYXNzPSJ4IiB4PSIxMjUwIiB5PSIyOTIiPlJlZ2lzdGVyIGluIHJlZ2lzdHJ5PC90ZXh0PgogIDxyZWN0IHg9IjY3MCIgeT0iNTIwIiB3aWR0aD0iMzMwIiBoZWlnaHQ9IjE5MCIgcng9IjE2IiBmaWxsPSIjZjlhOGQ0IiBzdHJva2U9IiNiZTE4NWQiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IGNsYXNzPSJuIiB4PSI3MjAiIHk9IjU4NiI+NTwvdGV4dD48dGV4dCBjbGFzcz0ieCIgeD0iNzYwIiB5PSI1ODYiPkluamVjdCBkZXBlbmRlbmNpZXM8L3RleHQ+PHRleHQgY2xhc3M9IngiIHg9IjcyMCIgeT0iNjI2Ij5Cb3QgLyBEQiAvIGNvbmZpZyBhcyBuZWVkZWQ8L3RleHQ+CgogIDxwYXRoIGNsYXNzPSJhIiBkPSJNNDEwIDMxNSBMNDcwIDMxNSIvPjxwYXRoIGNsYXNzPSJhIiBkPSJNNzYwIDMxNSBMODIwIDMxNSIvPjxwYXRoIGNsYXNzPSJhIiBkPSJNMTExMCAzMTUgTDExNzAgMzE1Ii8+PHBhdGggY2xhc3M9ImEiIGQ9Ik0xMzIwIDQwMCBMOTgwIDUyMCIvPgo8L3N2Zz4K" width="1660" height="920" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="final-take">Final Take<a href="https://microclaw.org/hi/blog/built-with-rust-microclaw-runtime#final-take" class="hash-link" aria-label="Final Take का सीधा लिंक" title="Final Take का सीधा लिंक" translate="no">​</a></h2>
<p>MicroClaw is best understood as a <strong>Rust agent runtime</strong>:</p>
<ul>
<li class="">Multi-channel adapters</li>
<li class="">Provider abstraction</li>
<li class="">Unified agent loop</li>
<li class="">Durable sessions</li>
<li class="">Layered memory with quality + reflection</li>
<li class="">Production observability</li>
</ul>
<p>That combination makes it a practical foundation for long-running, tool-using AI assistants.</p>
<p><img decoding="async" loading="lazy" alt="Built with Rust runtime summary" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjQwIiBoZWlnaHQ9IjkyMCIgdmlld0JveD0iMCAwIDE2NDAgOTIwIj4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYmcxMiIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjEiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNkYmVhZmUiLz48c3RvcCBvZmZzZXQ9IjQwJSIgc3RvcC1jb2xvcj0iI2Y1ZDBmZSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2RjZmNlNyIvPjwvbGluZWFyR3JhZGllbnQ+CiAgICA8c3R5bGU+LnR0e2ZvbnQ6NzAwIDYwcHggJ0F2ZW5pciBOZXh0JyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmaWxsOiMwZjE3MmF9LnN7Zm9udDo2MDAgMjhweCAnQXZlbmlyIE5leHQnLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZpbGw6IzFlMjkzYn0ucHtmb250OjcwMCAyMnB4ICdBdmVuaXIgTmV4dCcsSGVsdmV0aWNhLHNhbnMtc2VyaWY7ZmlsbDojMGYxNzJhfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxyZWN0IHdpZHRoPSIxNjQwIiBoZWlnaHQ9IjkyMCIgZmlsbD0idXJsKCNiZzEyKSIvPgogIDx0ZXh0IGNsYXNzPSJ0dCIgeD0iMTYwIiB5PSIyMTAiPkJ1aWx0IHdpdGggUnVzdDwvdGV4dD4KICA8dGV4dCBjbGFzcz0icyIgeD0iMTYwIiB5PSIyNjYiPk1pY3JvQ2xhdyBhcyBhIHByb2R1Y3Rpb24tcmVhZHkgYWdlbnQgcnVudGltZTwvdGV4dD4KCiAgPHJlY3QgeD0iMTYwIiB5PSIzMzgiIHdpZHRoPSIyMzAiIGhlaWdodD0iODAiIHJ4PSIzNCIgZmlsbD0iIzkzYzVmZCIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjMiLz48dGV4dCBjbGFzcz0icCIgeD0iMTk0IiB5PSIzODgiPk11bHRpLUNoYW5uZWw8L3RleHQ+CiAgPHJlY3QgeD0iNDIwIiB5PSIzMzgiIHdpZHRoPSIyNDAiIGhlaWdodD0iODAiIHJ4PSIzNCIgZmlsbD0iI2M0YjVmZCIgc3Ryb2tlPSIjNmQyOGQ5IiBzdHJva2Utd2lkdGg9IjMiLz48dGV4dCBjbGFzcz0icCIgeD0iNDU1IiB5PSIzODgiPkFnZW50IEVuZ2luZTwvdGV4dD4KICA8cmVjdCB4PSI2OTAiIHk9IjMzOCIgd2lkdGg9IjI2MCIgaGVpZ2h0PSI4MCIgcng9IjM0IiBmaWxsPSIjZmRlNjhhIiBzdHJva2U9IiNhMTYyMDciIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IGNsYXNzPSJwIiB4PSI3MjYiIHk9IjM4OCI+TExNIFByb3ZpZGVyczwvdGV4dD4KICA8cmVjdCB4PSI5ODAiIHk9IjMzOCIgd2lkdGg9IjIyMCIgaGVpZ2h0PSI4MCIgcng9IjM0IiBmaWxsPSIjODZlZmFjIiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IGNsYXNzPSJwIiB4PSIxMDQ2IiB5PSIzODgiPlRvb2xpbmc8L3RleHQ+CiAgPHJlY3QgeD0iMTIzMCIgeT0iMzM4IiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjgwIiByeD0iMzQiIGZpbGw9IiNmOWE4ZDQiIHN0cm9rZT0iI2JlMTg1ZCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9InAiIHg9IjEyNzIiIHk9IjM4OCI+U2NoZWR1bGVyPC90ZXh0PgoKICA8cmVjdCB4PSIyNTAiIHk9IjQ2MiIgd2lkdGg9IjI4MCIgaGVpZ2h0PSI4MCIgcng9IjM0IiBmaWxsPSIjNjdlOGY5IiBzdHJva2U9IiMwZTc0OTAiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IGNsYXNzPSJwIiB4PSIzMDUiIHk9IjUxMiI+RmlsZSBNZW1vcnk8L3RleHQ+CiAgPHJlY3QgeD0iNTYwIiB5PSI0NjIiIHdpZHRoPSIzNDAiIGhlaWdodD0iODAiIHJ4PSIzNCIgZmlsbD0iI2ZjYTVhNSIgc3Ryb2tlPSIjYjkxYzFjIiBzdHJva2Utd2lkdGg9IjMiLz48dGV4dCBjbGFzcz0icCIgeD0iNjE2IiB5PSI1MTIiPlN0cnVjdHVyZWQgTWVtb3J5PC90ZXh0PgogIDxyZWN0IHg9IjkzMCIgeT0iNDYyIiB3aWR0aD0iMzYwIiBoZWlnaHQ9IjgwIiByeD0iMzQiIGZpbGw9IiNhN2YzZDAiIHN0cm9rZT0iIzA0Nzg1NyIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgY2xhc3M9InAiIHg9Ijk3OCIgeT0iNTEyIj5SZWZsZWN0b3IgKyBRdWFsaXR5PC90ZXh0PgoKICA8cmVjdCB4PSI0MjAiIHk9IjYxMCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSIxMDAiIHJ4PSIzNiIgZmlsbD0iI2ZmZmZmZmNjIiBzdHJva2U9IiMzMzQxNTUiIHN0cm9rZS13aWR0aD0iMyIvPgogIDx0ZXh0IGNsYXNzPSJwIiB4PSI1NTQiIHk9IjY3MCI+U2Vzc2lvbnMsIE9ic2VydmFiaWxpdHksIGFuZCBTYWZlIEV4dGVuc2liaWxpdHk8L3RleHQ+Cjwvc3ZnPgo=" width="1640" height="920" class="img_ev3q"></p>]]></content:encoded>
            <category>Architecture</category>
            <category>Rust</category>
            <category>Agentic AI</category>
            <category>Telegram</category>
        </item>
        <item>
            <title><![CDATA[MicroClaw vs NanoClaw vs OpenClaw: Updated Three-Path Comparison]]></title>
            <link>https://microclaw.org/hi/blog/microclaw-vs-nanoclaw-openclaw</link>
            <guid>https://microclaw.org/hi/blog/microclaw-vs-nanoclaw-openclaw</guid>
            <pubDate>Sun, 08 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[If you are building a personal AI assistant around chat, you usually choose among three distinct paths:]]></description>
            <content:encoded><![CDATA[<p>If you are building a personal AI assistant around chat, you usually choose among three distinct paths:</p>
<ol>
<li class="">Minimal and isolation-first</li>
<li class="">Broad platform with high feature surface</li>
<li class="">Balanced runtime with practical built-ins</li>
</ol>
<p>This comparison is updated using publicly available docs/repos as of <strong>February 14, 2026</strong>.</p>
<p><img decoding="async" loading="lazy" alt="Three-path capability spectrum" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSI3MDAiIHZpZXdCb3g9IjAgMCAxMjAwIDcwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiByb2xlPSJpbWciIGFyaWEtbGFiZWxsZWRieT0idGl0bGUgZGVzYyI+CiAgPHRpdGxlIGlkPSJ0aXRsZSI+VGhyZWUgUGF0aHMgU3BlY3RydW08L3RpdGxlPgogIDxkZXNjIGlkPSJkZXNjIj5OYW5vQ2xhdywgTWljcm9DbGF3LCBPcGVuQ2xhdyBwb3NpdGlvbmVkIG9uIGEgY29tcGxleGl0eSBhbmQgY2FwYWJpbGl0eSBzcGVjdHJ1bS48L2Rlc2M+CiAgPGRlZnM+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImJnIiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMCI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiMwYjE3MzAiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSI1MCUiIHN0b3AtY29sb3I9IiMwZjNiMjQiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjM2ExMjI4Ii8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHN0eWxlPgogICAgICAuaHtmb250OjcwMCA0MHB4IC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2Y4ZmFmY30KICAgICAgLmN7Zm9udDo2MDAgMjFweCAtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxTZWdvZSBVSSxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNlMmU4ZjB9CiAgICAgIC5ie2ZvbnQ6NzAwIDI4cHggLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsU2Vnb2UgVUksSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojZjhmYWZjfQogICAgICAuc3tmb250OjYwMCAxOXB4IC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2UyZThmMH0KICAgICAgLmF7Zm9udDo3MDAgMjBweCAtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxTZWdvZSBVSSxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNmMWY1Zjl9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KCiAgPHJlY3Qgd2lkdGg9IjEyMDAiIGhlaWdodD0iNzAwIiBmaWxsPSJ1cmwoI2JnKSIvPgoKICA8dGV4dCB4PSI2MCIgeT0iODQiIGNsYXNzPSJoIj5OYW5vQ2xhdywgTWljcm9DbGF3LCBPcGVuQ2xhdzwvdGV4dD4KICA8dGV4dCB4PSI2MCIgeT0iMTIwIiBjbGFzcz0iYyI+Q2FwYWJpbGl0eSB2cyBjb21wbGV4aXR5IHNwZWN0cnVtIChzbmFwc2hvdDogMjAyNi0wMi0xNCk8L3RleHQ+CgogIDxsaW5lIHgxPSIxMjAiIHkxPSIzOTAiIHgyPSIxMDgwIiB5Mj0iMzkwIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMTAiIG9wYWNpdHk9IjAuOTUiLz4KICA8cG9seWdvbiBwb2ludHM9IjEwODAsMzkwIDEwNDgsMzcyIDEwNDgsNDA4IiBmaWxsPSIjZTJlOGYwIi8+CgogIDxjaXJjbGUgY3g9IjI2MCIgY3k9IjM5MCIgcj0iOTIiIGZpbGw9IiMxZTNhOGEiIHN0cm9rZT0iI2JmZGJmZSIgc3Ryb2tlLXdpZHRoPSI0Ii8+CiAgPHRleHQgeD0iMjYwIiB5PSIzODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGNsYXNzPSJiIj5OYW5vQ2xhdzwvdGV4dD4KICA8dGV4dCB4PSIyNjAiIHk9IjQxNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgY2xhc3M9InMiPk1pbmltYWwgKyBpc29sYXRlZDwvdGV4dD4KCiAgPGNpcmNsZSBjeD0iNjAwIiBjeT0iMzkwIiByPSI5OCIgZmlsbD0iIzE2NjUzNCIgc3Ryb2tlPSIjYmJmN2QwIiBzdHJva2Utd2lkdGg9IjQiLz4KICA8dGV4dCB4PSI2MDAiIHk9IjM4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgY2xhc3M9ImIiPk1pY3JvQ2xhdzwvdGV4dD4KICA8dGV4dCB4PSI2MDAiIHk9IjQxNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgY2xhc3M9InMiPkJhbGFuY2VkIHJ1bnRpbWU8L3RleHQ+CgogIDxjaXJjbGUgY3g9Ijk0MCIgY3k9IjM5MCIgcj0iMTA0IiBmaWxsPSIjN2UyMmNlIiBzdHJva2U9IiNlOWQ1ZmYiIHN0cm9rZS13aWR0aD0iNCIvPgogIDx0ZXh0IHg9Ijk0MCIgeT0iMzgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBjbGFzcz0iYiI+T3BlbkNsYXc8L3RleHQ+CiAgPHRleHQgeD0iOTQwIiB5PSI0MTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGNsYXNzPSJzIj5QbGF0Zm9ybSBicmVhZHRoPC90ZXh0PgoKICA8dGV4dCB4PSIxMjAiIHk9IjU0MCIgY2xhc3M9ImEiPkxvd2VyIG9wZXJhdGlvbmFsIGNvbXBsZXhpdHk8L3RleHQ+CiAgPHRleHQgeD0iODIwIiB5PSI1NDAiIGNsYXNzPSJhIj5IaWdoZXIgZmVhdHVyZSBzdXJmYWNlPC90ZXh0Pgo8L3N2Zz4K" width="1200" height="700" class="img_ev3q"></p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="https://microclaw.org/hi/blog/microclaw-vs-nanoclaw-openclaw#tldr" class="hash-link" aria-label="TL;DR का सीधा लिंक" title="TL;DR का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class=""><strong>NanoClaw</strong>: best when minimal code surface and container isolation are the top priorities.</li>
<li class=""><strong>OpenClaw</strong>: best when you need wide channel/platform coverage with control-plane breadth.</li>
<li class=""><strong>MicroClaw</strong>: best when you want a practical middle path with durable state and maintainable complexity.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="at-a-glance-updated">At a Glance (Updated)<a href="https://microclaw.org/hi/blog/microclaw-vs-nanoclaw-openclaw#at-a-glance-updated" class="hash-link" aria-label="At a Glance (Updated) का सीधा लिंक" title="At a Glance (Updated) का सीधा लिंक" translate="no">​</a></h2>
<table><thead><tr><th>Dimension</th><th>NanoClaw</th><th>OpenClaw</th><th>MicroClaw</th></tr></thead><tbody><tr><td>Orientation</td><td>Minimal, skill-first, single-user customization</td><td>Personal AI platform with broad channel + node ecosystem</td><td>Practical chat runtime, Telegram-first with shared core</td></tr><tr><td>Runtime stack</td><td>Node.js + Claude Agent SDK + containers</td><td>TypeScript/Node.js control plane + multi-surface stack</td><td>Rust + Tokio + unified agent engine</td></tr><tr><td>Channel stance</td><td>WhatsApp-first base</td><td>Broad native + extension channels</td><td>Telegram-first, plus Discord/Web and optional expansions</td></tr><tr><td>Extensibility style</td><td>Prefer skills that transform forked code</td><td>Platform modules, tools, nodes, apps, and ecosystem surfaces</td><td>Built-in tools + skills + sub-agent composition</td></tr><tr><td>Session and memory</td><td>Simpler base persistence model</td><td>Platform-level session/routing model</td><td>Durable sessions + context compaction + layered memory</td></tr><tr><td>Security emphasis</td><td>OS-level isolation by default</td><td>Policy/pairing/allowlist controls in gateway model</td><td>App-level authorization + hardening path</td></tr><tr><td>Ops complexity</td><td>Low-to-moderate</td><td>Highest (in exchange for capability breadth)</td><td>Moderate (feature-rich, but loop architecture remains focused)</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="notable-public-signals-as-of-2026-02-14">Notable Public Signals (as of 2026-02-14)<a href="https://microclaw.org/hi/blog/microclaw-vs-nanoclaw-openclaw#notable-public-signals-as-of-2026-02-14" class="hash-link" aria-label="Notable Public Signals (as of 2026-02-14) का सीधा लिंक" title="Notable Public Signals (as of 2026-02-14) का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class="">NanoClaw README now foregrounds <strong>Agent Swarms</strong> and keeps a strong skill-first philosophy.</li>
<li class="">OpenClaw README/docs continue expanding multi-channel, node, voice, and canvas workflows.</li>
<li class="">MicroClaw remains focused on the mid-complexity runtime space: robust agent loop, durable state, and practical operational features.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="choosing-by-use-case">Choosing by Use Case<a href="https://microclaw.org/hi/blog/microclaw-vs-nanoclaw-openclaw#choosing-by-use-case" class="hash-link" aria-label="Choosing by Use Case का सीधा लिंक" title="Choosing by Use Case का सीधा लिंक" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="choose-nanoclaw-if">Choose NanoClaw if<a href="https://microclaw.org/hi/blog/microclaw-vs-nanoclaw-openclaw#choose-nanoclaw-if" class="hash-link" aria-label="Choose NanoClaw if का सीधा लिंक" title="Choose NanoClaw if का सीधा लिंक" translate="no">​</a></h3>
<ul>
<li class="">You want the smallest understandable base and plan to customize by code transformation skills.</li>
<li class="">You prioritize container-isolation defaults over broad built-in surfaces.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="choose-openclaw-if">Choose OpenClaw if<a href="https://microclaw.org/hi/blog/microclaw-vs-nanoclaw-openclaw#choose-openclaw-if" class="hash-link" aria-label="Choose OpenClaw if का सीधा लिंक" title="Choose OpenClaw if का सीधा लिंक" translate="no">​</a></h3>
<ul>
<li class="">You want the widest integrated platform: many channels, nodes, voice, canvas, and gateway tooling.</li>
<li class="">You accept higher operational and configuration complexity for that breadth.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="choose-microclaw-if">Choose MicroClaw if<a href="https://microclaw.org/hi/blog/microclaw-vs-nanoclaw-openclaw#choose-microclaw-if" class="hash-link" aria-label="Choose MicroClaw if का सीधा लिंक" title="Choose MicroClaw if का सीधा लिंक" translate="no">​</a></h3>
<ul>
<li class="">Telegram-centric workflows are your immediate priority.</li>
<li class="">You want strong session continuity, memory quality, tool orchestration, and scheduler support without adopting the largest platform footprint.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="final-take">Final Take<a href="https://microclaw.org/hi/blog/microclaw-vs-nanoclaw-openclaw#final-take" class="hash-link" aria-label="Final Take का सीधा लिंक" title="Final Take का सीधा लिंक" translate="no">​</a></h2>
<p>This is not a winner-take-all ranking. It is a complexity-placement decision:</p>
<ul>
<li class="">NanoClaw: complexity pushed into fork customization</li>
<li class="">OpenClaw: complexity pushed into platform breadth</li>
<li class="">MicroClaw: complexity concentrated on high-frequency runtime features</li>
</ul>
<p>Pick the one that matches your operations budget and workflow style.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="references">References<a href="https://microclaw.org/hi/blog/microclaw-vs-nanoclaw-openclaw#references" class="hash-link" aria-label="References का सीधा लिंक" title="References का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class="">NanoClaw: <a href="https://github.com/qwibitai/nanoclaw" target="_blank" rel="noopener noreferrer" class="">https://github.com/qwibitai/nanoclaw</a></li>
<li class="">NanoClaw README: <a href="https://raw.githubusercontent.com/qwibitai/nanoclaw/main/README.md" target="_blank" rel="noopener noreferrer" class="">https://raw.githubusercontent.com/qwibitai/nanoclaw/main/README.md</a></li>
<li class="">OpenClaw: <a href="https://github.com/openclaw/openclaw" target="_blank" rel="noopener noreferrer" class="">https://github.com/openclaw/openclaw</a></li>
<li class="">OpenClaw Docs: <a href="https://docs.openclaw.ai/" target="_blank" rel="noopener noreferrer" class="">https://docs.openclaw.ai</a></li>
<li class="">MicroClaw: <a href="https://github.com/microclaw/microclaw" target="_blank" rel="noopener noreferrer" class="">https://github.com/microclaw/microclaw</a></li>
<li class="">MicroClaw Docs: <a href="https://microclaw.org/docs/overview" target="_blank" rel="noopener noreferrer" class="">https://microclaw.org/docs/overview</a></li>
</ul>]]></content:encoded>
            <category>Architecture</category>
            <category>Rust</category>
            <category>Telegram</category>
            <category>Agentic AI</category>
            <category>Comparison</category>
        </item>
        <item>
            <title><![CDATA[Building MicroClaw: A Practical Agent Runtime for Telegram and Beyond]]></title>
            <link>https://microclaw.org/hi/blog/building-microclaw</link>
            <guid>https://microclaw.org/hi/blog/building-microclaw</guid>
            <pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[MicroClaw is a Rust-based AI assistant that treats chat as an execution surface, not only a text interface.]]></description>
            <content:encoded><![CDATA[<p>MicroClaw is a Rust-based AI assistant that treats chat as an execution surface, not only a text interface.</p>
<p>It can run shell and file tools, browse the web, schedule jobs, and persist memory/session state so multi-step work can continue across turns.</p>
<p><img decoding="async" loading="lazy" alt="MicroClaw runtime overview" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSI2ODAiIHZpZXdCb3g9IjAgMCAxMjAwIDY4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiByb2xlPSJpbWciIGFyaWEtbGFiZWxsZWRieT0idGl0bGUgZGVzYyI+CiAgPHRpdGxlIGlkPSJ0aXRsZSI+TWljcm9DbGF3IFJ1bnRpbWUgT3ZlcnZpZXc8L3RpdGxlPgogIDxkZXNjIGlkPSJkZXNjIj5BZGFwdGVycyBmZWVkIGEgc2hhcmVkIFJ1c3QgYWdlbnQgZW5naW5lIHdpdGggdG9vbHMsIG1lbW9yeSwgc2NoZWR1bGVyIGFuZCBTUUxpdGUgcGVyc2lzdGVuY2UuPC9kZXNjPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJiZyIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjEiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMGIxZjJhIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzEyMzg0YSIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxzdHlsZT4KICAgICAgLmh7Zm9udDo3MDAgNDZweCAtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxTZWdvZSBVSSxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNlYWY2ZmZ9CiAgICAgIC50e2ZvbnQ6NTAwIDI0cHggLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsU2Vnb2UgVUksSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojZDdlYmY4fQogICAgICAuYntmb250OjYwMCAyNnB4IC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzA2MjAzMX0KICAgICAgLnN7Zm9udDo1MDAgMjFweCAtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxTZWdvZSBVSSxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMxNjM4NGR9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8cmVjdCB3aWR0aD0iMTIwMCIgaGVpZ2h0PSI2ODAiIGZpbGw9InVybCgjYmcpIi8+CiAgPHRleHQgeD0iNjAiIHk9IjkwIiBjbGFzcz0iaCI+TWljcm9DbGF3IFJ1bnRpbWUgKFNuYXBzaG90IDIwMjYtMDItMTQpPC90ZXh0PgogIDx0ZXh0IHg9IjYwIiB5PSIxMzAiIGNsYXNzPSJ0Ij5PbmUgYWdlbnQgbG9vcCwgbXVsdGlwbGUgY2hhbm5lbHMsIGR1cmFibGUgc3RhdGU8L3RleHQ+CgogIDxyZWN0IHg9IjYwIiB5PSIxOTAiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIiByeD0iMTgiIGZpbGw9IiNlY2Y3ZmYiLz4KICA8dGV4dCB4PSI5MCIgeT0iMjQwIiBjbGFzcz0iYiI+Q2hhbm5lbCBBZGFwdGVyczwvdGV4dD4KICA8dGV4dCB4PSI5MCIgeT0iMjg1IiBjbGFzcz0icyI+VGVsZWdyYW08L3RleHQ+CiAgPHRleHQgeD0iOTAiIHk9IjMyNSIgY2xhc3M9InMiPkRpc2NvcmQ8L3RleHQ+CiAgPHRleHQgeD0iOTAiIHk9IjM2NSIgY2xhc3M9InMiPldlYiBBUEk8L3RleHQ+CgogIDxyZWN0IHg9IjQzMCIgeT0iMTcwIiB3aWR0aD0iMzYwIiBoZWlnaHQ9IjM0MCIgcng9IjE4IiBmaWxsPSIjYzhmMmZmIi8+CiAgPHRleHQgeD0iNDcwIiB5PSIyMjUiIGNsYXNzPSJiIj5SdXN0IEFnZW50IEVuZ2luZTwvdGV4dD4KICA8dGV4dCB4PSI0NzAiIHk9IjI3MCIgY2xhc3M9InMiPlJlYXNvbmluZyArIHRvb2wgbG9vcDwvdGV4dD4KICA8dGV4dCB4PSI0NzAiIHk9IjMxMCIgY2xhc3M9InMiPlNlc3Npb24gcmVzdW1lPC90ZXh0PgogIDx0ZXh0IHg9IjQ3MCIgeT0iMzUwIiBjbGFzcz0icyI+Q29udGV4dCBjb21wYWN0aW9uPC90ZXh0PgogIDx0ZXh0IHg9IjQ3MCIgeT0iMzkwIiBjbGFzcz0icyI+U3ViLWFnZW50IGJvdW5kYXJ5PC90ZXh0PgoKICA8cmVjdCB4PSI4NjAiIHk9IjE5MCIgd2lkdGg9IjI4MCIgaGVpZ2h0PSIzMDAiIHJ4PSIxOCIgZmlsbD0iI2U0ZmZmMSIvPgogIDx0ZXh0IHg9Ijg5NSIgeT0iMjQwIiBjbGFzcz0iYiI+U3RhdGUgKyBPcHM8L3RleHQ+CiAgPHRleHQgeD0iODk1IiB5PSIyODUiIGNsYXNzPSJzIj5TUUxpdGUgcGVyc2lzdGVuY2U8L3RleHQ+CiAgPHRleHQgeD0iODk1IiB5PSIzMjUiIGNsYXNzPSJzIj5NZW1vcnkgbGF5ZXJzPC90ZXh0PgogIDx0ZXh0IHg9Ijg5NSIgeT0iMzY1IiBjbGFzcz0icyI+U2NoZWR1bGVyICsgcmVmbGVjdG9yPC90ZXh0PgogIDx0ZXh0IHg9Ijg5NSIgeT0iNDA1IiBjbGFzcz0icyI+VXNhZ2Ugb2JzZXJ2YWJpbGl0eTwvdGV4dD4KCiAgPHBhdGggZD0iTTM2MCAzNDAgTDQzMCAzNDAiIHN0cm9rZT0iIzlhZDZmMCIgc3Ryb2tlLXdpZHRoPSI4IiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgPHBhdGggZD0iTTc5MCAzNDAgTDg2MCAzNDAiIHN0cm9rZT0iIzlhZDZmMCIgc3Ryb2tlLXdpZHRoPSI4IiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CgogIDxkZWZzPgogICAgPG1hcmtlciBpZD0iYSIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI5IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iOCIgbWFya2VySGVpZ2h0PSI4IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+CiAgICAgIDxwYXRoIGQ9Ik0wIDBMMTAgNUwwIDEwWiIgZmlsbD0iIzlhZDZmMCIvPgogICAgPC9tYXJrZXI+CiAgPC9kZWZzPgo8L3N2Zz4K" width="1200" height="680" class="img_ev3q"></p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2026-02-14-update-snapshot">2026-02-14 Update Snapshot<a href="https://microclaw.org/hi/blog/building-microclaw#2026-02-14-update-snapshot" class="hash-link" aria-label="2026-02-14 Update Snapshot का सीधा लिंक" title="2026-02-14 Update Snapshot का सीधा लिंक" translate="no">​</a></h2>
<p>This post was refreshed on <strong>February 14, 2026</strong> to match the current codebase and docs.</p>
<p>Current shape:</p>
<ul>
<li class="">Shared agent loop with iterative <code>tool_use</code> / <code>tool_result</code> execution</li>
<li class="">Channel adapters for Telegram, Discord, and Web API surfaces</li>
<li class="">Provider abstraction for Anthropic + OpenAI-compatible endpoints</li>
<li class="">Durable session resume with context compaction</li>
<li class="">Layered memory: file memory (<code>AGENTS.md</code>) + structured SQLite memory</li>
<li class="">Scheduler + memory reflection background jobs</li>
<li class="">Usage and memory-observability endpoints for operations</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-this-runtime-exists">Why This Runtime Exists<a href="https://microclaw.org/hi/blog/building-microclaw#why-this-runtime-exists" class="hash-link" aria-label="Why This Runtime Exists का सीधा लिंक" title="Why This Runtime Exists का सीधा लिंक" translate="no">​</a></h2>
<p>Most chat bots still behave like single-turn wrappers:</p>
<ol>
<li class="">Receive text</li>
<li class="">Produce text</li>
<li class="">Lose execution context</li>
</ol>
<p>MicroClaw is built for a different loop:</p>
<ol>
<li class="">Interpret an incoming task</li>
<li class="">Decide when tools are needed</li>
<li class="">Execute tools and read outputs</li>
<li class="">Iterate until done</li>
<li class="">Persist state for continuation</li>
</ol>
<p>That makes it suitable for long-running workflows instead of one-shot Q&amp;A.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="core-capabilities">Core Capabilities<a href="https://microclaw.org/hi/blog/building-microclaw#core-capabilities" class="hash-link" aria-label="Core Capabilities का सीधा लिंक" title="Core Capabilities का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class="">Chat-native tool execution (<code>bash</code>, file ops, search/fetch, scheduler, memory)</li>
<li class="">Full session resume including prior tool interaction context</li>
<li class="">Context compaction for long-running conversations</li>
<li class="">Global and per-chat memory via <code>AGENTS.md</code></li>
<li class="">Structured memory records in SQLite for queryable recall</li>
<li class="">One-shot and cron-style scheduled runs</li>
<li class="">Sub-agent delegation with reduced tool permissions</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="runtime-architecture">Runtime Architecture<a href="https://microclaw.org/hi/blog/building-microclaw#runtime-architecture" class="hash-link" aria-label="Runtime Architecture का सीधा लिंक" title="Runtime Architecture का सीधा लिंक" translate="no">​</a></h2>
<p>MicroClaw keeps one shared execution core and separates channel concerns into adapters.</p>
<ul>
<li class=""><strong>Adapters</strong>: Telegram / Discord / Web handle input-output constraints</li>
<li class=""><strong>Engine</strong>: shared reasoning and tool loop</li>
<li class=""><strong>Persistence</strong>: messages, sessions, tasks, memories, observability</li>
<li class=""><strong>Background workers</strong>: scheduler and memory reflector</li>
</ul>
<p>This keeps behavior consistent while allowing channels/providers to evolve independently.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-rust">Why Rust<a href="https://microclaw.org/hi/blog/building-microclaw#why-rust" class="hash-link" aria-label="Why Rust का सीधा लिंक" title="Why Rust का सीधा लिंक" translate="no">​</a></h2>
<p>Rust is used here for operational reliability, not novelty:</p>
<ul>
<li class="">Explicit concurrency with Tokio for long-lived processes</li>
<li class="">Predictable shared state boundaries</li>
<li class="">Strong typing for tool/message/state protocols</li>
<li class="">Single-binary deployment for simpler operations</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="design-principles">Design Principles<a href="https://microclaw.org/hi/blog/building-microclaw#design-principles" class="hash-link" aria-label="Design Principles का सीधा लिंक" title="Design Principles का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class=""><code>execution-first</code>: useful assistants should complete tasks, not only chat</li>
<li class=""><code>state-is-a-feature</code>: session and memory quality are first-class</li>
<li class=""><code>small-core-practical-edges</code>: keep core loop clear, add high-frequency features</li>
<li class=""><code>layered-safety</code>: tool-level checks + chat access controls + deployment hardening</li>
<li class=""><code>composable-growth</code>: evolve through tools and skills, avoid loop fragmentation</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="real-workflow-examples">Real Workflow Examples<a href="https://microclaw.org/hi/blog/building-microclaw#real-workflow-examples" class="hash-link" aria-label="Real Workflow Examples का सीधा लिंक" title="Real Workflow Examples का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class="">"Scan this repo for breaking changes and draft release notes."</li>
<li class="">"Weekdays 9am: send me an AI news briefing from selected sources."</li>
<li class="">"Read these logs, identify likely root causes, and propose fixes."</li>
<li class="">"Remember my response style preference and apply it in future sessions."</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="current-priorities">Current Priorities<a href="https://microclaw.org/hi/blog/building-microclaw#current-priorities" class="hash-link" aria-label="Current Priorities का सीधा लिंक" title="Current Priorities का सीधा लिंक" translate="no">​</a></h2>
<ol>
<li class="">Stronger default boundaries for high-risk tools</li>
<li class="">Better cross-channel behavior consistency</li>
<li class="">Clearer skill/tool boundary to reduce misuse</li>
<li class="">Better failure observability for sessions/scheduler/tools</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="references">References<a href="https://microclaw.org/hi/blog/building-microclaw#references" class="hash-link" aria-label="References का सीधा लिंक" title="References का सीधा लिंक" translate="no">​</a></h2>
<ul>
<li class="">MicroClaw repository: <a href="https://github.com/microclaw/microclaw" target="_blank" rel="noopener noreferrer" class="">https://github.com/microclaw/microclaw</a></li>
<li class="">Overview docs: <a href="https://microclaw.org/docs/overview" target="_blank" rel="noopener noreferrer" class="">https://microclaw.org/docs/overview</a></li>
<li class="">Architecture docs: <a href="https://microclaw.org/docs/architecture" target="_blank" rel="noopener noreferrer" class="">https://microclaw.org/docs/architecture</a></li>
<li class="">Tools docs: <a href="https://microclaw.org/docs/tools" target="_blank" rel="noopener noreferrer" class="">https://microclaw.org/docs/tools</a></li>
</ul>]]></content:encoded>
            <category>Architecture</category>
            <category>Rust</category>
            <category>Telegram</category>
            <category>Agentic AI</category>
        </item>
    </channel>
</rss>