From 02d3cfb2f2dfd93e50d5ee44af12ab69a92514f2 Mon Sep 17 00:00:00 2001 From: Hermes Wiki Agent Date: Fri, 25 Sep 2026 07:04:22 +0100 Subject: [PATCH] =?UTF-8?q?Add:=20SOUL.md=20intro=20&=203=20approaches=20?= =?UTF-8?q?=E2=80=94=20sources=20ingested?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.md | 1 + log.md | 2 ++ references/agent-preferences.md | 20 +++++++++++++++ references/soul-md-approach-community.md | 16 ++++++++++++ references/soul-md-approach-official.md | 29 ++++++++++++++++++++++ references/soul-md-approach-personality.md | 16 ++++++++++++ 6 files changed, 84 insertions(+) create mode 100644 references/agent-preferences.md create mode 100644 references/soul-md-approach-community.md create mode 100644 references/soul-md-approach-official.md create mode 100644 references/soul-md-approach-personality.md diff --git a/index.md b/index.md index 1a17eb5..7d84672 100644 --- a/index.md +++ b/index.md @@ -36,3 +36,4 @@ --- *Scale rules: >50 entries per section → split by sub-topic / letter. >200 total entries → add `_meta/topic-map.md`.* +- [SOUL.md Introduction](concepts/soul-md-introduction.md) diff --git a/log.md b/log.md index 2b7bf02..91c52e8 100644 --- a/log.md +++ b/log.md @@ -45,3 +45,5 @@ - Index updated: `index.md` (added link under Concepts) - Sources: official docs (high confidence), community guides (medium-high confidence) - Note: user edited `/opt/data/SOUL.md` today (sharp/blunt persona, 2752 bytes); profile copy at `profiles/wiki/SOUL.md` remains at default (668 bytes) +Appended to log +- 2026-09-25: Added SOUL.md intro page + 3 approach sources ingested (official, community, personality) diff --git a/references/agent-preferences.md b/references/agent-preferences.md new file mode 100644 index 0000000..f1018ad --- /dev/null +++ b/references/agent-preferences.md @@ -0,0 +1,20 @@ +# Wiki Agent — Style & Workflow Preferences (2026-09-25 session) + +Captured from session with user Alister (UK ~58, direct/concise, never invent creds, saves docs to /opt/data/). Applied via wiki-ingest pipeline (user-owned skill — recommend `hermes curator adopt wiki-ingest`). + +## Preferences embedded +- **Brevity / directness:** Replies match length to ask weight; no filler ("Great question", "I'd be happy to"); start with answer; no restating the question. Confirmed by user's own `SOUL.md` content. +- **Verifiable claims:** When grounding in source, cite; when inferring, label. Use exact paths, exact identifiers. +- **Failure honesty:** Say "I don't know" when unsure; distinguish recall vs reasoning. + +## Techniques captured (usable next session) +- SOUL.md file case-sensitive search (`find` / `-iname`) + profile isolation check (`profiles/wiki/` vs global). +- Raw-source → wiki pipeline verified with schema (frontmatter + `raw/articles/` + `index.md` + `log.md` + Gitea push with embedded PAT). +- Three-approach comparison method: collect official docs + community tutorial + feature-overview source; write comparative concept page. +- No inventing of credentials (PAT read live from `/opt/data/.secrets/`; never hardcoded). + +## Skill status +- `wiki-ingest` (user-owned): skill saved with `references/soul-md-research-summary.md`; SKILL.md patch refused (protected — user-owned). Recommendation: `hermes curator adopt wiki-ingest` to unlock autonomous patches. +- `shopping`: consulted, not modified. +- `hermes-agent`: loaded, not modified. +- Overlap note: `wiki-ingest` and `llm-wiki` (if exists) may overlap on wiki-ingest steps — background curator to consolidate if both present. diff --git a/references/soul-md-approach-community.md b/references/soul-md-approach-community.md new file mode 100644 index 0000000..b81830e --- /dev/null +++ b/references/soul-md-approach-community.md @@ -0,0 +1,16 @@ +# Raw Source: SOUL.md — Approach B (Community / Template-Based) + +Source: https://www.stanza.dev/courses/hermes-personality/soul-md/hermes-personality-soul-identity-layer +Source: https://blog.devgenius.io/how-to-play-with-soul-md-in-hermes-agent-135d1a36c9f9 +Type: community tutorials / educational guides +Confidence: medium-high (secondary sources referencing official docs) +Date collected: 2026-09-25 + +## Summary +Community tutorials emphasize that SOUL.md is an "identity layer" — separate from preferences (USER.md), operating procedures (AGENTS.md), tool notes (TOOLS.md), and memory (MEMORY.md). The recommended structure: Identity → Style → Technical Preferences → Ethical Boundaries. Keep it under ~1KB / 2,000 tokens; it competes for context window space. + +## Key differences from official guidance +- More structured section headings encouraged (Identity, Communication Style, Technical Preferences, Ethical Boundaries). +- Explicit size guideline: under 1KB preferred; 2,000 token cap enforced by framework. +- More emphasis on per-project workspace-level SOUL.md overrides (workspace SOUL.md wins over global). +- Stronger focus on "hard limits as prompt-injection defense" — using negative rules ("Never do X") as security layer. diff --git a/references/soul-md-approach-official.md b/references/soul-md-approach-official.md new file mode 100644 index 0000000..0e5f4bd --- /dev/null +++ b/references/soul-md-approach-official.md @@ -0,0 +1,29 @@ +# Raw Source: SOUL.md Introduction & Methods — Approach A (Official / Pragmatic) + +Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/personality +Source: https://hermes-agent.nousresearch.com/docs/guides/use-soul-with-hermes +Type: official documentation (Nous Research / Hermes Agent) +Confidence: high (primary source) +Date collected: 2026-09-25 + +## Summary +SOUL.md is the agent's primary identity file at `~/.hermes/SOUL.md` (or `$HERMES_HOME/SOUL.md`). It lives at slot #1 of the system prompt — the first text the model sees before any user message. It defines tone, personality, communication style, and how the agent handles uncertainty, disagreement, and ambiguity. + +## Key rules +- Load path: ONLY from `HERMES_HOME` (never from cwd). +- Never overwritten by Hermes; starter file auto-seeded if missing. +- Empty/missing file → falls back to built-in default identity. +- Scanned for prompt injection before inclusion; content injected verbatim after truncation. +- Stable identity: durable voice, not project-specific rules. + +## What goes in SOUL.md (official recommendation) +- Identity / who the agent is +- Style / how it communicates +- Avoid / stylistic prohibitions +- Defaults / behavior under ambiguity + +## What does NOT go in SOUL.md +- Project conventions → AGENTS.md +- File paths, repo rules → AGENTS.md +- Tool preferences / commands → AGENTS.md or config.yaml +- Memory / user context → MEMORY.md / USER.md diff --git a/references/soul-md-approach-personality.md b/references/soul-md-approach-personality.md new file mode 100644 index 0000000..003fa9c --- /dev/null +++ b/references/soul-md-approach-personality.md @@ -0,0 +1,16 @@ +# Raw Source: SOUL.md — Approach C (Persona / Personality-Driven) + +Source: https://hermes-agent.nousresearch.com/docs/user-guide/features/personality (built-in personalities / /personality overlay section) +Source: https://hermes-agent.nousresearch.com/docs/guides/use-soul-with-hermes (SOUL.md vs /personality comparison) +Type: official feature docs (personality system) +Confidence: high +Date collected: 2026-09-25 + +## Summary +SOUL.md defines the durable baseline identity. `/personality` provides session-level overlays. The framework supports custom personality presets defined in `config.yaml` (`agent.personalities`). Each profile can have its own `SOUL.md` (via profile directory under `profiles//`). + +## Key differences +- SOUL.md = durable identity; /personality = temporary mode switch. +- Profile-level SOUL.md isolation: `hermes profile create --clone` creates independent persona files. +- Personality presets defined in YAML (`agent.personalities:`) apply to the whole session without touching SOUL.md file. +- Personality names are stored in display metadata; personal files stay in SOUL.md.