<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Hermes on TorchTree</title>
        <link>https://torchtree.com/en/tags/hermes/</link>
        <description>Recent content in Hermes on TorchTree</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <copyright>TorchTree Co., Ltd.</copyright>
        <lastBuildDate>Mon, 13 Apr 2026 10:12:01 +0800</lastBuildDate><atom:link href="https://torchtree.com/en/tags/hermes/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>The Complete Guide to Hermes Agent Discord Setup and Session Isolation</title>
        <link>https://torchtree.com/en/post/hermes-agent-discord-setup-session-isolation/</link>
        <pubDate>Mon, 13 Apr 2026 10:12:01 +0800</pubDate>
        
        <guid>https://torchtree.com/en/post/hermes-agent-discord-setup-session-isolation/</guid>
        <description>&lt;p&gt;Hermes Agent, as a fully-featured AI assistant platform, supports connecting to servers as a Discord Bot. Based on hands-on deployment experience, this article systematically walks through the whole flow from bot creation to session-isolation configuration, and answers the typical problems you may hit during deployment.&lt;/p&gt;
&lt;h2 id=&#34;1-discord-bot-creation-and-basic-configuration&#34;&gt;1. Discord Bot creation and basic configuration
&lt;/h2&gt;&lt;h3 id=&#34;1-create-a-discord-application&#34;&gt;1. Create a Discord Application
&lt;/h3&gt;&lt;p&gt;Go to the &lt;a class=&#34;link&#34; href=&#34;https://discord.com/developers/applications&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Discord Developer Portal&lt;/a&gt;, click &lt;strong&gt;New Application&lt;/strong&gt;, fill in the app name, and you&amp;rsquo;ll enter the management interface. On the General Information page, note down the &lt;strong&gt;Application ID&lt;/strong&gt;; you&amp;rsquo;ll need it later to generate the invite link.&lt;/p&gt;
&lt;h3 id=&#34;2-configure-the-bot-and-key-permissions&#34;&gt;2. Configure the Bot and key permissions
&lt;/h3&gt;&lt;p&gt;Open the &lt;strong&gt;Bot&lt;/strong&gt; tab on the left. Here you need to complete three key settings:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bot identity settings&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Public Bot: keep it ON so you can use Discord&amp;rsquo;s standard invite link&lt;/li&gt;
&lt;li&gt;You can upload the bot&amp;rsquo;s avatar and banner on this page&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Getting the Token&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Click Reset Token to generate the Bot Token&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;This Token is shown only once&lt;/strong&gt;, so save it carefully; you&amp;rsquo;ll write it into Hermes&amp;rsquo; &lt;code&gt;.env&lt;/code&gt; file later&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Privileged Gateway Intents (key step)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;At the bottom of the page, find the Privileged Gateway Intents section. You &lt;strong&gt;must enable both of the following&lt;/strong&gt;:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Intent&lt;/th&gt;
          &lt;th&gt;Purpose&lt;/th&gt;
          &lt;th&gt;Required?&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Server Members Intent&lt;/td&gt;
          &lt;td&gt;Access member list, resolve usernames&lt;/td&gt;
          &lt;td&gt;Yes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Message Content Intent&lt;/td&gt;
          &lt;td&gt;Read message text content&lt;/td&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;Yes&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Message Content Intent is a prerequisite for the bot to respond properly. If it isn&amp;rsquo;t enabled, the bot can come online and receive events but can&amp;rsquo;t read the message text—it appears &amp;ldquo;online but unresponsive.&amp;rdquo;&lt;/p&gt;
&lt;h3 id=&#34;3-generate-the-invite-link-and-authorize&#34;&gt;3. Generate the invite link and authorize
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Method 1: Installation tab (recommended)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On the left, go to Installation → enable Guild Install&lt;/li&gt;
&lt;li&gt;For Install Link, select Discord Provided Link&lt;/li&gt;
&lt;li&gt;Under Scopes, check &lt;code&gt;bot&lt;/code&gt; and &lt;code&gt;applications.commands&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Under Permissions, select: View Channels, Send Messages, Read Message History, Embed Links, Attach Files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Method 2: Build the URL manually&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Replace YOUR_APP_ID with the Application ID, then visit the link and pick a server to authorize.&lt;/p&gt;
&lt;h2 id=&#34;2-hermes-environment-configuration&#34;&gt;2. Hermes environment configuration
&lt;/h2&gt;&lt;p&gt;Add the following to the &lt;code&gt;~/.hermes/.env&lt;/code&gt; file:&lt;/p&gt;
&lt;p&gt;To get your User ID: Discord Settings → Advanced → enable Developer Mode, then right-click your own username and select Copy User ID.&lt;/p&gt;
&lt;p&gt;Start the Gateway:&lt;/p&gt;
&lt;p&gt;Optional environment variables:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Variable&lt;/th&gt;
          &lt;th&gt;Default&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;DISCORD_REQUIRE_MENTION&lt;/td&gt;
          &lt;td&gt;true&lt;/td&gt;
          &lt;td&gt;Whether the bot only responds when @-mentioned in a channel&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DISCORD_AUTO_THREAD&lt;/td&gt;
          &lt;td&gt;true&lt;/td&gt;
          &lt;td&gt;Automatically create a Thread on @mention (recommended to keep on)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DISCORD_FREE_RESPONSE_CHANNELS&lt;/td&gt;
          &lt;td&gt;-&lt;/td&gt;
          &lt;td&gt;Channel IDs where the bot responds without an @mention&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DISCORD_IGNORED_CHANNELS&lt;/td&gt;
          &lt;td&gt;-&lt;/td&gt;
          &lt;td&gt;Blacklist of channels the bot completely ignores&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;3-how-session-isolation-works&#34;&gt;3. How session isolation works
&lt;/h2&gt;&lt;p&gt;Hermes distinguishes sessions with a &lt;code&gt;session_key&lt;/code&gt;. The default behavior in the Discord scenario is as follows:&lt;/p&gt;
&lt;h3 id=&#34;1-dm--naturally-isolated&#34;&gt;1. DM — naturally isolated
&lt;/h3&gt;&lt;p&gt;Every DM conversation has its own independent &lt;code&gt;session_key&lt;/code&gt;, no @mention needed, and all messages automatically fall into the same session.&lt;/p&gt;
&lt;h3 id=&#34;2-server-channels--isolated-per-user-by-default&#34;&gt;2. Server channels — isolated per user by default
&lt;/h3&gt;&lt;p&gt;A global setting in &lt;code&gt;config.yaml&lt;/code&gt; controls this behavior:&lt;/p&gt;
&lt;p&gt;When the value is &lt;code&gt;true&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Alice @-mentions the bot in #research; the bot maintains a separate session for her&lt;/li&gt;
&lt;li&gt;Bob @-mentions the bot in the same channel; the bot maintains a &lt;strong&gt;completely different session&lt;/strong&gt; for him&lt;/li&gt;
&lt;li&gt;The two share no context, token usage, or runtime state&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If set to &lt;code&gt;false&lt;/code&gt;, the whole channel shares a single session.&lt;/p&gt;
&lt;h3 id=&#34;3-threads--the-core-isolation-mechanism&#34;&gt;3. Threads — the core isolation mechanism
&lt;/h3&gt;&lt;p&gt;Discord Threads are the key mechanism Hermes uses to isolate sessions:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Threads are isolated from the parent channel&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Thread&amp;rsquo;s &lt;code&gt;session_key&lt;/code&gt; includes the &lt;code&gt;thread_id&lt;/code&gt;, so conversations inside a Thread are completely isolated from the parent channel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Shared by default within a Thread&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;thread_sessions_per_user&lt;/code&gt; defaults to &lt;code&gt;false&lt;/code&gt;, so all users in the same Thread share one session (good for collaborative scenarios)&lt;/li&gt;
&lt;li&gt;If you want per-user isolation within a Thread too, set &lt;code&gt;thread_sessions_per_user: true&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Auto-created Threads (strongly recommended)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DISCORD_AUTO_THREAD&lt;/code&gt; defaults to &lt;code&gt;true&lt;/code&gt;. Its mechanism:&lt;/p&gt;
&lt;p&gt;Result:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Each @mention = one new Thread = one brand-new isolated session&lt;/li&gt;
&lt;li&gt;Subsequent replies inside the Thread don&amp;rsquo;t need another @mention&lt;/li&gt;
&lt;li&gt;Different tasks naturally live in different sessions, completely avoiding context contamination&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;4-troubleshooting-no-response-to-mention-in-a-channel&#34;&gt;4. Troubleshooting: no response to @mention in a channel
&lt;/h2&gt;&lt;p&gt;If DM works fine but channel @mention gets no response, check in this order:&lt;/p&gt;
&lt;h3 id=&#34;1-check-message-content-intent-the-most-common-cause&#34;&gt;1. Check Message Content Intent (the most common cause)
&lt;/h3&gt;&lt;p&gt;Go to Discord Developer Portal → your Application → Bot → Privileged Gateway Intents, confirm &lt;strong&gt;Message Content Intent is enabled&lt;/strong&gt;, then click Save Changes.&lt;/p&gt;
&lt;h3 id=&#34;2-check-the-bots-channel-permissions&#34;&gt;2. Check the bot&amp;rsquo;s channel permissions
&lt;/h3&gt;&lt;p&gt;In Discord, right-click the channel → Edit Channel → Permissions, and confirm the bot role has:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;View Channels&lt;/li&gt;
&lt;li&gt;Read Message History&lt;/li&gt;
&lt;li&gt;Send Messages&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-check-the-environment-configuration&#34;&gt;3. Check the environment configuration
&lt;/h3&gt;&lt;h3 id=&#34;4-the-ultimate-fix-re-authorize&#34;&gt;4. The ultimate fix: re-authorize
&lt;/h3&gt;&lt;p&gt;If you&amp;rsquo;ve confirmed all the above settings are correct but it still won&amp;rsquo;t respond, try:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Kick the bot from the server&lt;/li&gt;
&lt;li&gt;Re-authorize with a new invite link (make sure the permission integer includes the required permissions)&lt;/li&gt;
&lt;li&gt;Restart the hermes gateway&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Real-world deployment experience shows that re-authorizing often fixes the problem—likely because Discord&amp;rsquo;s side permission cache hasn&amp;rsquo;t refreshed.&lt;/p&gt;
&lt;h2 id=&#34;5-recommended-configuration&#34;&gt;5. Recommended configuration
&lt;/h2&gt;&lt;p&gt;For &lt;strong&gt;maximum isolation&lt;/strong&gt;, here&amp;rsquo;s the recommended configuration:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;~/.hermes/.env&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;~/.hermes/config.yaml&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;The interaction experience under this configuration:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In #general, @Bot &amp;ldquo;help me write a Python script&amp;rdquo; → the bot automatically creates Thread A, and the task runs in an isolated environment&lt;/li&gt;
&lt;li&gt;@Bot again &amp;ldquo;analyze this document&amp;rdquo; → the bot creates Thread B, another brand-new session&lt;/li&gt;
&lt;li&gt;A colleague also @-mentions the bot in #general → gets their own Thread C, no interference&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;6-session-management-commands&#34;&gt;6. Session management commands
&lt;/h2&gt;&lt;p&gt;The following commands are available in any conversation:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Command&lt;/th&gt;
          &lt;th&gt;Effect&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;/reset&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;Reset the current session and start a fresh empty session&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;/title task-name&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;Name the current session for easier reference later&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;/sethome&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;Set the current channel as Home Channel, used to receive scheduled task output&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Isolation level&lt;/th&gt;
          &lt;th&gt;Default behavior&lt;/th&gt;
          &lt;th&gt;Control method&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;DM vs channel&lt;/td&gt;
          &lt;td&gt;Fully isolated&lt;/td&gt;
          &lt;td&gt;Natural&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Different users, same channel&lt;/td&gt;
          &lt;td&gt;Isolated per user&lt;/td&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;group_sessions_per_user: true&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Different Threads&lt;/td&gt;
          &lt;td&gt;Fully isolated&lt;/td&gt;
          &lt;td&gt;Natural (&lt;!-- raw HTML omitted --&gt;thread_id&lt;!-- raw HTML omitted --&gt; is part of the session key)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Same Thread, different users&lt;/td&gt;
          &lt;td&gt;Shared session&lt;/td&gt;
          &lt;td&gt;Enable isolation with &lt;!-- raw HTML omitted --&gt;thread_sessions_per_user: true&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Same user, same channel, different tasks&lt;/td&gt;
          &lt;td&gt;Shared session&lt;/td&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;Rely on &lt;!-- raw HTML omitted --&gt;DISCORD_AUTO_THREAD=true&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt; to auto-open a Thread&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Keeping &lt;code&gt;DISCORD_AUTO_THREAD=true&lt;/code&gt; (the default) is the simplest and most effective way to prevent contamination: every @mention lands in a fresh Thread session, fundamentally preventing multiple tasks in the same channel from interfering with one another.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>From OpenClaw to Hermes: Automatic Role Migration with a Single Command</title>
        <link>https://torchtree.com/en/post/openclaw-to-hermes-role-migration/</link>
        <pubDate>Wed, 08 Apr 2026 05:55:11 +0800</pubDate>
        
        <guid>https://torchtree.com/en/post/openclaw-to-hermes-role-migration/</guid>
        <description>&lt;p&gt;After running &lt;code&gt;hermes claw migrate&lt;/code&gt;, your config files and skills have been migrated to Hermes, but the Agent&amp;rsquo;s cognition may still be stuck in the OpenClaw era. It may still call itself &amp;ldquo;Aris,&amp;rdquo; try to access the &lt;code&gt;~/.openclaw/&lt;/code&gt; directory, and use tools that no longer exist.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: Send a single command that lets the Agent automatically check and fix its own identity and working logic.&lt;/p&gt;
&lt;h2 id=&#34;roles-explained&#34;&gt;Roles Explained
&lt;/h2&gt;&lt;p&gt;Before continuing, we need to clarify two identities:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Identity&lt;/th&gt;
          &lt;th&gt;Framework&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;Aris&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;OpenClaw&lt;/td&gt;
          &lt;td&gt;The AI assistant name in the original OpenClaw ecosystem, used in your historical configuration&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;Helix&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;Hermes&lt;/td&gt;
          &lt;td&gt;The new identity after migrating to Hermes, which the Agent needs to self-identify as&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;When the Agent says &amp;ldquo;I am Aris,&amp;rdquo; it is still running on its OpenClaw identity. You need it to update to &amp;ldquo;I am Helix.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;background&#34;&gt;Background
&lt;/h2&gt;&lt;h3 id=&#34;limitations-of-the-official-migration-command&#34;&gt;Limitations of the Official Migration Command
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;hermes claw migrate&lt;/code&gt; handles the &lt;strong&gt;data level&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copies configuration files to &lt;code&gt;~/.hermes/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Migrates skills to &lt;code&gt;~/.hermes/skills/openclaw-imports/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Transfers memory files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But it &lt;strong&gt;does not modify the contents of files&lt;/strong&gt;. If SOUL.md says &amp;ldquo;I am Aris,&amp;rdquo; the Agent will still believe that after migration.&lt;/p&gt;
&lt;h3 id=&#34;typical-symptoms&#34;&gt;Typical Symptoms
&lt;/h3&gt;&lt;p&gt;After migration, if the Agent exhibits any of the following behaviors, it needs role adaptation:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Symptom&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Calls itself &amp;ldquo;Aris&amp;rdquo;&lt;/td&gt;
          &lt;td&gt;Identity not updated&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Accesses &lt;code&gt;~/.openclaw/&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Wrong path cognition&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Invokes &lt;!-- raw HTML omitted --&gt;memory_search&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;Using an OpenClaw-specific tool&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Mentions &amp;ldquo;OpenClaw provides context&amp;rdquo;&lt;/td&gt;
          &lt;td&gt;Wrong framework cognition&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;the-single-command-automation-approach&#34;&gt;The Single-Command Automation Approach
&lt;/h2&gt;&lt;p&gt;You don&amp;rsquo;t need to edit files manually. Send the following command to the Agent, and it will automatically perform all checks and fixes:&lt;/p&gt;
&lt;p&gt;The Agent will automatically run the checks above, modify files directly, and report a summary of changes to you.&lt;/p&gt;
&lt;h2 id=&#34;technical-details-for-reference&#34;&gt;Technical Details (for reference)
&lt;/h2&gt;&lt;p&gt;If you want to know exactly what the Agent will check, here are the technical details:&lt;/p&gt;
&lt;h3 id=&#34;where-identity-is-declared&#34;&gt;Where Identity Is Declared
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;File&lt;/th&gt;
          &lt;th&gt;Path&lt;/th&gt;
          &lt;th&gt;Purpose&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;SOUL.md&lt;/td&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;~/.hermes/SOUL.md&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;Global identity and personality definition&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;MEMORY.md&lt;/td&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;~/.hermes/memories/MEMORY.md&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;The Agent&amp;rsquo;s personal notes (limited to 2,200 characters)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;USER.md&lt;/td&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;~/.hermes/memories/USER.md&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;User profile (limited to 1,375 characters)&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;key-differences&#34;&gt;Key Differences
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Dimension&lt;/th&gt;
          &lt;th&gt;OpenClaw (Aris)&lt;/th&gt;
          &lt;th&gt;Hermes (Helix)&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;Identity&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;&amp;ldquo;I am Aris&amp;rdquo;&lt;/td&gt;
          &lt;td&gt;&amp;ldquo;I am Helix&amp;rdquo;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;Framework&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;OpenClaw&lt;/td&gt;
          &lt;td&gt;Hermes Agent (Nous Research)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;Home directory&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;~/.openclaw/&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;~/.hermes/&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;Memory storage&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;.jsonl&lt;!-- raw HTML omitted --&gt; files&lt;/td&gt;
          &lt;td&gt;SQLite + FTS5&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;Skill lookup&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;memory_search&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;skills_list&lt;!-- raw HTML omitted --&gt; + &lt;!-- raw HTML omitted --&gt;skill_view&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;!-- raw HTML omitted --&gt;Memory limits&lt;!-- raw HTML omitted --&gt;&lt;/td&gt;
          &lt;td&gt;No explicit limits&lt;/td&gt;
          &lt;td&gt;2,200 / 1,375 characters&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;example-of-actual-changes&#34;&gt;Example of Actual Changes
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;SOUL.md changes:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MEMORY.md changes:&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;verification-results&#34;&gt;Verification Results
&lt;/h2&gt;&lt;p&gt;After the Agent completes its self-check, it will output a report similar to the following:&lt;/p&gt;
&lt;h2 id=&#34;manual-verification-optional&#34;&gt;Manual Verification (optional)
&lt;/h2&gt;&lt;p&gt;If you want to confirm the migration results manually:&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Official migration guide: &lt;a class=&#34;link&#34; href=&#34;https://hermes-agent.nousresearch.com/docs/guides/migrate-from-openclaw/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Migrate from OpenClaw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Memory system: &lt;a class=&#34;link&#34; href=&#34;https://hermes-agent.nousresearch.com/docs/user-guide/features/memory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Persistent Memory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Context files: &lt;a class=&#34;link&#34; href=&#34;https://hermes-agent.nousresearch.com/docs/user-guide/features/context-files&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Context Files&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Compiled from actual migration experience with Hermes Agent v0.7.0.&lt;/em&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
