技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
hermes-agent【数据与研究】Hermes Agent is Nous Research's open-source self-improving AI agent: a terminal and messaging-gateway agent that saves memories, writes and patches its own skills from experience, and searches its past sessions. Use when a user asks to install or configure Hermes Agent, pick its model provider, inspect or gate what it learns (memory, skills, backgrou…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Hermes Agent (MIT, Nous Research) is a tool-calling agent you run as a CLI/TUI (hermes), as a gateway for Telegram, Discord, Slack and other chats, or embed in Python. It works with any provider (Nous Portal, OpenRouter, Anthropic, OpenAI, local OpenAI-compatible endpoints). What sets it apart is a built-in learning loop that grows with usage — you configure and supervise it rather than build it.
MEMORY.md (environment facts, conventions, lessons; 2,200 chars) and USER.md (who you are and how you like to work; 1,375 chars). The agent edits them with its memory tool.SKILL.md under ~/.hermes/skills/ with its skill_manage tool and patches it when it goes stale.~/.hermes/state.db, FTS5); the agent searches it when you refer to earlier work.~/.hermes/SOUL.md is the persona at the top of the system prompt; you edit it by hand.User message -> [SOUL.md + MEMORY.md + USER.md + skill index] -> agent turn (tools, skills)
-> [background review] -> memory tool / skill_manage -> visible from the next session
The project's one-line installer pipes a script into a shell. Prefer one of these:
# A. Docker (officially supported image; state lives in the mounted directory)
mkdir -p ~/.hermes
docker run -it --rm -v ~/.hermes:/opt/data nousresearch/hermes-agent:v2026.9.24 setup # first-run wizard
docker run -it --rm -v ~/.hermes:/opt/data nousresearch/hermes-agent:v2026.9.24 # chat
# B. From a release tag with uv (needs Git and uv; Python 3.11–3.13)
git clone --depth 1 --branch v2026.9.24 https://github.com/NousResearch/hermes-agent.git ~/.hermes/hermes-agent
cd ~/.hermes/hermes-agent
uv venv ~/.hermes/venvs/hermes --python 3.12 # keep the venv outside the checkout
VIRTUAL_ENV=~/.hermes/venvs/hermes uv pip install -e . # must be editable; a plain install is refused
mkdir -p ~/.local/bin && ln -s ~/.hermes/venvs/hermes/bin/hermes ~/.local/bin/hermes # ~/.local/bin must be on PATH
hermes --version # Hermes Agent v0.21.5 (2026.9.24)
On macOS and Windows the Hermes Desktop installer from https://hermes-agent.nousresearch.com/ installs the CLI too. PyPI (pip install hermes-agent) and Homebrew builds are listed as unsupported.
hermes setup # full wizard; or `hermes model` for provider + model only
# Non-interactive: secrets go to ~/.hermes/.env, settings to ~/.hermes/config.yaml
hermes config set OPENROUTER_API_KEY "$OPENROUTER_API_KEY"
hermes config set model.provider openrouter
hermes config set model.default anthropic/claude-sonnet-4.6
hermes doctor # checks packages, config and credentials
hermes # classic CLI; `hermes --tui` for the newer TUI
hermes -c # resume the most recent session
hermes chat -q "Summarize what changed in this repo since v2.3.0" -Q # one query, then exit; prints the answer and a session line
hermes -z "List the failing tests and the likely cause" # prints only the final answer; command approvals are bypassed
hermes profile create research --no-skills # isolated instance: own memory, skills, sessions
hermes -p research # use it
In a session: /new starts a fresh session, /model switches model, /skills browses skills, /compress shrinks context, /usage shows spend.
cat ~/.hermes/memories/MEMORY.md ~/.hermes/memories/USER.md # entries are separated by a line with §
hermes journey list # everything learned: skill names plus ids like memory:profile:1
hermes journey edit memory:profile:1 # fix a wrong entry in $EDITOR (or: hermes journey delete)
# ~/.hermes/config.yaml
memory:
memory_enabled: true
user_profile_enabled: true
memory_char_limit: 2200
user_char_limit: 1375
nudge_interval: 10 # remind the agent to consider saving every N user turns (0 = off)
write_approval: false # true = you approve every save
Memory is a frozen snapshot taken at session start: something saved now shows up in the next session. A fact counts as saved only when the memory tool ran — check the file.
hermes skills list # bundled, hub-installed and agent-written skills
hermes skills search kubernetes # search the registries; then: hermes skills inspect / install
hermes curator status # usage stats, stale/archived counts
hermes curator run --dry-run # preview what the curator would archive
hermes curator pin deploy-staging # never auto-archive or rewrite this skill
Inside a chat, /learn turns material or the workflow you just walked through into a skill:
/learn how I just deployed the staging server
/learn https://docs.stripe.com/webhooks
# ~/.hermes/config.yaml
skills:
creation_nudge_interval: 15 # every N tool iterations, consider saving a skill (0 = off)
write_approval: false # true = stage every skill write for review
auxiliary:
background_review:
enabled: true # false = no automatic post-turn review
provider: openrouter # run the review on a cheaper model than the main one
model: google/gemini-3-flash-preview
curator:
enabled: true
stale_after_days: 14
archive_after_days: 30
consolidate: false # true = LLM pass that merges overlapping skills
hermes config set memory.write_approval true
hermes config set skills.write_approval true
With the gates on, every skill write is staged; memory writes prompt inline in the interactive CLI and are staged when they come from the background review, gateways or scripts. Review staged writes in any session (ids are 8 hex characters, shown by pending):
/memory pending /memory approve all /memory reject e6bb2a11
/skills pending /skills diff 9c41d07a /skills approve 9c41d07a
Run with the interpreter of the install (~/.hermes/venvs/hermes/bin/python triage.py); the same provider keys and ~/.hermes state apply.
from run_agent import AIAgent
agent = AIAgent(
model="anthropic/claude-sonnet-4.6",
quiet_mode=True, # no spinners or banners in your program's output
disabled_toolsets=["terminal"], # or enabled_toolsets=["web"] for a locked-down agent
)
print(agent.chat("Draft a reply to the ticket about duplicate invoice emails"))
first = agent.run_conversation("My ticket is INV-2291") # dict: final_response, messages
second = agent.run_conversation("Which ticket did I mention?", conversation_history=first["messages"])
print(second["final_response"])
Pass skip_memory=True for stateless batch workers so they do not write to the shared memory files.
User request: "Hermes keeps writing verbose Python with comments everywhere. Make it remember how I like code."
Tell it once, explicitly, and confirm the write landed:
❯ Remember: I want type hints, no inline comments, and short lambda variable names in Python.
❯ /new
$ cat ~/.hermes/memories/USER.md
Prefers concise Python: type hints, no inline comments, single-letter lambda variables.
§
Works on a data pipeline that reads from AWS S3.
The next session starts with that block in its system prompt, so "write a function to batch-process S3 objects" comes back in the preferred style without being asked. If the file did not change, the model only said it saved — repeat with "use the memory tool to save …" or switch to a model with stronger tool calling.
User request: "I want Hermes to learn our staging deploy and remember project facts, but nothing gets saved without my OK."
$ hermes config set memory.write_approval true
✓ Set memory.write_approval = True in /home/dana/.hermes/config.yaml
$ hermes config set skills.write_approval true
✓ Set skills.write_approval = True in /home/dana/.hermes/config.yaml
Walk the agent through one deploy, then in the same session:
/learn how I just deployed the staging server
/skills pending
/skills approve all
/memory pending
/memory approve all
A week later, in a new session, "deploy staging again" loads the saved skill, and "what did we decide about the invoice schema?" is answered from session search. hermes journey list shows the skill and the memory entries; hermes curator pin protects the skill from archiving.
/new after a finished task.memory tool returns an error and the agent must consolidate. Put long procedures in skills, not memory.~/.hermes corrupt each other's memory. Use hermes profile create for a second agent.write_approval for memory and skills stops a wrong assumption from becoming permanent; memory entries are also scanned for prompt-injection patterns before they are accepted.auxiliary.background_review to a cheaper model or disable it on busy hosts.approvals.mode is smart by default; --yolo, hermes -z and approvals.mode: off remove every prompt — only inside a container or VM. hermes config set terminal.backend docker runs the agent's shell commands in a sandbox container.API_SERVER_KEY; keep both off the public internet.uv pip install -e ..