Skip to content

feat(site): add skill for hermes agent#259

Open
Yui-Song wants to merge 11 commits into
mem9-ai:mainfrom
Yui-Song:add-hermes-skill
Open

feat(site): add skill for hermes agent#259
Yui-Song wants to merge 11 commits into
mem9-ai:mainfrom
Yui-Song:add-hermes-skill

Conversation

@Yui-Song

@Yui-Song Yui-Song commented Apr 22, 2026

Copy link
Copy Markdown

Summary

  • add dedicated public install skills for both OpenClaw and Hermes
  • convert the root https://mem9.ai/SKILL.md into a backward-compatible launcher that routes users to the correct client-specific skill
  • preserve filtered utm_* params when handing off from the legacy launcher to the platform-specific skill
  • update site docs, onboarding copy, CTAs, and FAQ/API links to use https://mem9.ai/openclaw/SKILL.md as the canonical OpenClaw entrypoint
  • expand public skill URL tracking in the site UI to include the new OpenClaw and Hermes skill paths

Why

The previous public SKILL.md assumed an OpenClaw-only install flow. Now that Hermes has its own install path, we need client-specific onboarding documents so agents do not mix OpenClaw and Hermes commands or config. Keeping /SKILL.md as a launcher preserves backward compatibility for existing links while making the canonical install URLs explicit.

Scope

This is a site/content change only:

  • adds site/public/hermes/SKILL.md
  • adds site/public/openclaw/SKILL.md
  • repurposes site/public/SKILL.md as a router/launcher
  • updates Astro content and CTA links to point OpenClaw onboarding at the new canonical URL

@netlify

netlify Bot commented Apr 22, 2026

Copy link
Copy Markdown

👷 Deploy request for mem9 pending review.

A Netlify team Owner will need to approve the deploy before you can run your build.

Are you a team Owner? Visit the deploys page to approve it

Need more help? Learn more in the Netlify docs

Name Link
🔨 Latest commit acbf228

@Yui-Song Yui-Song changed the title add skill for hermes agent feat: add skill for hermes agent Apr 22, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9e8ea5e2b5

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread site/public/SKILL.md Outdated
@Yui-Song Yui-Song changed the title feat: add skill for hermes agent feat(Hermes): add skill for hermes agent Apr 22, 2026
@Yui-Song

Copy link
Copy Markdown
Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Can't wait for the next one!

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@Yuiham

Yuiham commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

I think this still needs another pass before merge.

  1. Root site/public/SKILL.md should stay a true backward-compatible OpenClaw entry.
  • Right now it has already diverged from site/public/openclaw/SKILL.md.
  • Some OpenClaw safety/routing constraints that existed in the historical root doc were dropped during the split.
  • Please keep the root behavior equivalent to the old OpenClaw skill, then add Hermes handoff on top.
  • Ideally site/public/SKILL.md and site/public/openclaw/SKILL.md stay in lockstep, with differences limited to alias/canonical wording and path-prefix changes.
  1. site/public/openclaw/ needs the full doc set, not just SKILL.md.
  • If https://mem9.ai/openclaw/SKILL.md is the canonical OpenClaw entry, SETUP.md, TROUBLESHOOTING.md, and UNINSTALL.md should live under site/public/openclaw/ too.
  • Right now site/public/openclaw/SKILL.md still routes back to the root docs, which leaves the split half-done and easy to drift.
  • When copying them over, keep the content aligned with the existing root docs and only change the OpenClaw-prefixed paths and canonical/alias wording where needed.
  1. Repo guidance needs to match the new public layout.
  • AGENTS.md and site/AGENTS.md still say site/public/SKILL.md is the production doc / the only file to edit.
  • Once /openclaw/ and /hermes/ are real public entry points, those instructions need to be updated too.
  1. Please avoid version/content drift between the root and OpenClaw docs.
  • The root doc is already 1.0.46 while site/public/openclaw/SKILL.md is still 1.0.45.
  • This split will be hard to maintain unless the two OpenClaw-facing docs are kept in lockstep.

@codex review again after the changes above.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 306e305cd7

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread site/public/SKILL.md Outdated
Comment thread site/public/openclaw/SKILL.md Outdated
Comment thread site/public/SKILL.md Outdated
@Yui-Song

Copy link
Copy Markdown
Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@Yuiham Yuiham changed the title feat(Hermes): add skill for hermes agent feat(site): add skill for hermes agent Apr 28, 2026
@Yuiham

Yuiham commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

One remaining issue in the Hermes public docs: please avoid hermes memory setup in the IM-facing install/repair flow.

hermes memory setup is an interactive provider picker. In a non-TTY / IM flow it can fall through to the built-in provider path, so mem9 may never become active even after the agent keeps running link/setup/status commands.

Please make Hermes activation non-interactive:

  • remove hermes memory setup from the normal SKILL.md, SETUP.md, and TROUBLESHOOTING.md flow
  • after install/link succeeds, activate with hermes config set memory.provider mem9
  • then verify with hermes memory status
  • if the official install script and fallback install both fail, stop and report the install failure instead of continuing with link/setup/status
  • mention hermes memory setup only as a manual terminal fallback, if needed

This matches the one-shot install script behavior more closely and avoids driving an interactive picker from an IM skill.

@Yuiham

Yuiham commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Please sync this branch with the latest main before the next round of changes. The PR is touching public docs and site content, so it is safer to update the base first and avoid fixing the Hermes setup flow on a stale branch.

@Yui-Song

Copy link
Copy Markdown
Author

@Yuiham Done

Please sync this branch with the latest main before the next round of changes. The PR is touching public docs and site content, so it is safer to update the base first and avoid fixing the Hermes setup flow on a stale branch.

@Yuiham Yuiham left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The version of the hermes SKILL.md should be 1.0.0.

@Yuiham Yuiham left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Follow-up on the Hermes flow per my earlier IM-flow comment. Three remaining gaps before that thread can fully close — see the file comments below.

- Run `hermes plugins install mem9-ai/mem9-hermes-plugin` only as a fallback when the official install script is unavailable or when the upstream instructions explicitly require the manual path
- Run the upstream helper script `link-memory-provider.sh` from the installed mem9 Hermes plugin when the Hermes provider link is missing
- Set `HERMES_PROJECT_ROOT` only for the current install/link command when Hermes cannot auto-detect the project root
- Run `hermes config set memory.provider mem9` only on the manual fallback path, to set mem9 as the active provider non-interactively

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "only on the manual fallback path" wording will conflict with SETUP.md once the link-repair flow also activates mem9 non-interactively (see my comment on SETUP.md Step 3). After that lands, this scope bullet should cover both paths.

Suggested wording:

Suggested change
- Run `hermes config set memory.provider mem9` only on the manual fallback path, to set mem9 as the active provider non-interactively
- Run `hermes config set memory.provider mem9` on the link-repair path or the manual fallback path, to set mem9 as the active provider non-interactively

- Do not replace it with ad hoc shell logic when the upstream script is available.
- If the install script already completes install, setup, and verification, do not repeat those steps unnecessarily.
- The upstream README says this script installs the plugin, obtains or reuses an API key, writes `.env`, writes `mem9.json`, and creates the provider symlink.
- If the script installs the plugin but reports a connectivity failure or leaves mem9 inactive, continue to Step 3.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This bullet only handles "install ran but mem9 ended up inactive". It doesn't cover the case where install.sh exits non-zero or fails to install the plugin at all — today we'd silently fall through into Step 3 link-repair / Step 4 status loops, which is the exact IM-flow loop we agreed to avoid.

Per the earlier comment ("if the official install script and fallback install both fail, stop and report the install failure instead of continuing with link/setup/status"), please add a fail-stop rule here:

  • If install.sh exits non-zero, fall through to Step 3b (hermes plugins install ...) as the documented manual fallback.
  • If both Step 2 and Step 3b fail to install the plugin, stop and report the install failure using the failure template in Step 4.
  • Do not continue to link/status loops while the plugin is not installed.

That keeps the IM flow bounded and avoids the "agent keeps retrying setup forever" failure mode.


- Run the upstream helper script at `${HERMES_HOME:-$HOME/.hermes}/plugins/mem9/scripts/link-memory-provider.sh`.
- If the helper script cannot locate the Hermes repo automatically, rerun it with `HERMES_PROJECT_ROOT` set for that one command only.
- Re-run `hermes memory status` to confirm.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The link-repair flow shouldn't rely on link-memory-provider.sh to flip the active provider for us. In a non-TTY / IM context the active provider can stay on whatever Hermes had before, so hermes memory status will keep returning "not active" even though the symlink is correct.

Per the IM-flow rule (after install/link succeeds, activate non-interactively), please add an explicit set step before re-verifying:

# Set mem9 as the active provider non-interactively
hermes config set memory.provider mem9

# Then verify
hermes memory status

This matches the sequence already documented in TROUBLESHOOTING.md → "mem9 Is Installed But Not Active".

@Yuiham

Yuiham commented May 7, 2026

Copy link
Copy Markdown
Contributor

@codex review

Please take another pass focused on the Hermes IM-flow. Three concrete gaps just flagged inline:

  1. site/public/hermes/SETUP.md Step 3 — link-memory-provider.sh should be followed by an explicit hermes config set memory.provider mem9 before re-running hermes memory status, otherwise non-TTY runs can stay on the previous active provider.
  2. site/public/hermes/SETUP.md Step 2 — no fail-stop when install.sh exits non-zero. Today we silently fall through into link/status loops; should fall back to Step 3b's hermes plugins install ... and stop+report if both fail.
  3. site/public/hermes/SKILL.md Allowed Action Scope — the "only on the manual fallback path" wording for hermes config set memory.provider mem9 will conflict with the SETUP.md change above; should cover the link-repair path too.

Confirm these three are the only remaining gaps in the Hermes flow, and flag anything adjacent (e.g. similar interactive-picker risks, missing fail-stops elsewhere) you'd like tightened in the same round.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9ec2d35e19

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +59 to +61
- Run the upstream helper script at `${HERMES_HOME:-$HOME/.hermes}/plugins/mem9/scripts/link-memory-provider.sh`.
- If the helper script cannot locate the Hermes repo automatically, rerun it with `HERMES_PROJECT_ROOT` set for that one command only.
- Re-run `hermes memory status` to confirm.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Set mem9 active after repairing the provider link

When the install reaches the link-repair path because hermes memory status does not show mem9, running link-memory-provider.sh only repairs provider discovery; it does not necessarily switch the active provider in non-TTY runs that are still pinned to a previous memory.provider. Add an explicit hermes config set memory.provider mem9 after the helper and before the next status check so this repair path can actually activate mem9 instead of looping or reporting failure with the link fixed.

Useful? React with 👍 / 👎.

- Do not replace it with ad hoc shell logic when the upstream script is available.
- If the install script already completes install, setup, and verification, do not repeat those steps unnecessarily.
- The upstream README says this script installs the plugin, obtains or reuses an API key, writes `.env`, writes `mem9.json`, and creates the provider symlink.
- If the script installs the plugin but reports a connectivity failure or leaves mem9 inactive, continue to Step 3.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Stop or fall back when the install script fails

In the IM install flow, a non-zero install.sh result is not handled separately from the partial-success case, so an agent can continue into link/status repair commands even though the plugin may not have been installed at all. This step should explicitly fail-stop on a non-zero script exit, try the Step 3b hermes plugins install ... fallback when appropriate, and stop with a clear error if both paths fail.

Useful? React with 👍 / 👎.

- Read `hermes version`
- Run the official install script from `mem9-ai/mem9-hermes-plugin`
- Run `hermes plugins install mem9-ai/mem9-hermes-plugin` only as a fallback when the official install script is unavailable or when the upstream instructions explicitly require the manual path
- Run the upstream helper script `link-memory-provider.sh` from the installed mem9 Hermes plugin when the Hermes provider link is missing

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Allow provider config on the link-repair path

The allowed scope still permits hermes config set memory.provider mem9 only on the manual fallback path, which conflicts with the needed non-interactive activation after link-memory-provider.sh repairs an installed-but-inactive provider. If SETUP.md tells agents to set the provider during link repair, this scope line will block or confuse that action; broaden it to include the provider-link repair path as well.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants