Hermes Evolution
by @wuritu
Hermes Evolution enhances OpenClaw with fast PM routing, proactive self-check, auto skill generation, user profiling, layered memory, and continuous learning.
clawhub install hermes-evolution๐ About This Skill
Hermes Evolution - ็ฑ้ฉฌไป่ชๅจ่ฟๅ็
> ็ๆฌ: v1.0.0 > ไฝ่ : ๆฃฎๆฃฎ > ้็จ: OpenClaw ๆๆ็ๆฌ > ๅฎไฝ: PM Router ๆบ่ฝๅขๅผบๅฑ
๐ฏ ็ฎไป
Hermes Evolution๏ผ็ฑ้ฉฌไป่ชๅจ่ฟๅ็๏ผๆฏๆฃฎๆฃฎๅจ OpenClaw ๅบ็กไธๆๅปบ็ๆบ่ฝๅขๅผบๅฑ๏ผๅฎ็ฐไบไธปๅจๆๅกใ่ชๅจ่ฟๅๅ็จๆท็่งฃไธๅคงๆ ธๅฟ่ฝๅใ
ๆ ธๅฟ็นๆง
๐ฆ ๅ ๅซๆจกๅ
ๆ ธๅฟ่ทฏ็ฑ
| ๆจกๅ | ๆไปถ | ๅ่ฝ | |------|------|------| | PM Router |sensen-pm-router.js | ่ทฏ็ฑๆ ธๅฟ + Agent Profile |
| Intent Router | intent-router.js | TF-IDF ็ฝฎไฟกๅบฆ่ฎก็ฎ |
| Agent Profiles | agent-profiles.js | Agent ่ง่ฒๅฎไน |ไปปๅก็ฎก็
| ๆจกๅ | ๆไปถ | ๅ่ฝ | |------|------|------| | Task Manager |task-manager.js | ไปปๅก็ถๆๆบ |
| Task Store | task-store.js | ๅ
ๅญ็ผๅญ + ็ดขๅผๅ ้ |
| Task DAG | task-dag.js | DAG ไพ่ต็ฎก็ |ๅญฆไน ่ฟๅ
| ๆจกๅ | ๆไปถ | ๅ่ฝ | |------|------|------| | Self-Improving v2 |sensen-self-improving-v2.js | ่งๅๆ้ + ็ๆฌ็ฎก็ |
| Frozen Memory | frozen-memory.js | ๅป็ป่ฎฐๅฟ๏ผไธๆฌก็ๆ |
| Patch Store | patch-store.js | ๅข้ๆดๆฐ |ๆบ่ฝๅขๅผบ
| ๆจกๅ | ๆไปถ | ๅ่ฝ | |------|------|------| | FTS Indexer |fts-indexer.js | ๅ
จๆๆฃ็ดข๏ผ0.03ms/ๆฌก |
| Progressive Disclosure | progressive-disclosure.js | ๆธ่ฟๅผๅ ่ฝฝ๏ผToken ๆงๅถ |
| Periodic Nudge | periodic-nudge.js | ไธปๅจ่ชๆฃๅผๆ |็จๆท็่งฃ
| ๆจกๅ | ๆไปถ | ๅ่ฝ | |------|------|------| | Honcho Profiler |honcho-profiler.js | ็จๆท็ปๅ + ้ๆฑ้ขๆต |
| AutoSkill Generator | auto-skill-generator.js | ่ชๅจๅๅปบ Skill |
| LLM Summarizer | llm-summarizer.js | ๆฃ็ดข็ปๆๆ่ฆ |็ณป็ปๅทฅๅ ท
| ๆจกๅ | ๆไปถ | ๅ่ฝ | |------|------|------| | Logger |sensen-logger.js | ็ปๆๅๆฅๅฟ |
| Collaborator | sensen-collaborator.js | ๅค Agent ๅไฝ |
| Collab Visualizer | sensen-collab-visualizer.js | ๅไฝๅฏ่งๅ |
| Template Engine | template-engine.js | ๆจกๆฟๆธฒๆ |
| Scheduler | sensen-scheduler.js | ๅฎๆถไปปๅก |
| Feishu Notifier | sensen-feishu-notifier.js | ้ฃไนฆ้็ฅ |
| Spawner | sensen-spawner.js | Agent Spawn |๐ ๅฟซ้ๅผๅง
1. ๅฎ่ฃ
# ๆนๅผไธ๏ผไป ClawhHub ๅฎ่ฃ
clawdhub install hermes-evolutionๆนๅผไบ๏ผๆๅจๅคๅถ
ๅฐ modules/ ็ฎๅฝๅคๅถๅฐ skills/sensen-pm-router/
2. ้ช่ฏๅฎ่ฃ
node skills/sensen-pm-router/modules/test-task-store.js
node skills/sensen-pm-router/modules/test-intent-router.js
3. ๅบ็กไฝฟ็จ
// ๅจไฝ ็ไปฃ็ ไธญๅผๅ
ฅ
const TaskStore = require('./modules/task-store');
const IntentRouter = require('./modules/intent-router');
const SelfImproving = require('./modules/sensen-self-improving-v2');// ๅๅปบไปปๅก
const task = TaskStore.createTask({
title: 'ๆต่ฏไปปๅก',
assignedTo: 'Marketing',
priority: 'P0'
});
// ่ทฏ็ฑ
const result = IntentRouter.route('ๅๅธๅฐ็บขไนฆๅ
ๅฎน');
console.log(result.agent); // 'Marketing'
// ่ฎฐๅฝ็บ ๆญฃ
SelfImproving.logCorrection({
type: 'format',
originalText: 'ๅคช้ฟไบ',
correction: '่พๅบ็ฎๆด'
});
๐ ๆถๆ่ฎพ่ฎก
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ OpenClaw Gateway โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โ
โ โ Router โโโโโถโ Sessions โโโโโถโ Skills โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โผ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ็ฑ้ฉฌไปๅขๅผบๅฑ Hermes Evolution โ โ
โ โ PM Router โ Task Store โ Self-Improving โ Frozen โ โ
โ โ Intent Router โ FTS Index โ Progressive Disclosureโ โ
โ โ Periodic Nudge โ Honcho Profiler โ AutoSkill โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ๏ธ ้ ็ฝฎ
Agent Profiles
็ผ่พ agent-profiles.js ่ชๅฎไน Agent ่ง่ฒ๏ผ
const profiles = {
Marketing: {
keywords: ['ๅฐ็บขไนฆ', 'ๅ
ๅฎน', 'ๅๅธ', 'ๆ้ณ', '็ฅไน'],
excludeWords: ['ๆๅกๅจ', 'ไปฃ็ ', 'bug'],
description: '่ด่ดฃๅ
ๅฎน่ฟ่ฅๅๅๅธ'
},
// ...
};
ๅฎๆถไปปๅก
็ผ่พ sensen-scheduler.js ้
็ฝฎๅฎๆถไปปๅก๏ผ
const schedules = [
{ time: '09:00', name: 'ๅฐ็บขไนฆ็ญ้จ', task: 'summarize_topics' },
{ time: '12:00', name: '่ง้ๆฅ่ฎฐ', task: 'diary' },
// ...
];
๐ API ๅ่
TaskStore
// ๅๅปบไปปๅก
TaskStore.createTask({ title, assignedTo, priority });// ๆฅ่ฏข
TaskStore.queryByStatus('inbox');
TaskStore.queryByAssignee('Marketing');
// ็ป่ฎก
TaskStore.getStats();
// ็ๆฟ
TaskStore.printKanban();
IntentRouter
// ่ทฏ็ฑ
IntentRouter.route('ๅๅธๅฐ็บขไนฆ');// ๆทปๅ ๅ
ณ้ฎ่ฏ
IntentRouter.addKeyword('AgentName', ['keyword1', 'keyword2']);
SelfImproving
// ่ฎฐๅฝ็บ ๆญฃ
SelfImproving.logCorrection({ type, originalText, correction });// ่ทๅ่งๅ
SelfImproving.getActiveRules();
// ๅน้
SelfImproving.matchRule('ๅคช้ฟไบ็ผฉ็ญ');
PeriodicNudge
// ๅๅปบๅผๆ
const engine = createEngine({ interval: 60 * 60 * 1000 });// ๅฏๅจ
engine.start();
// ่ทๅ็ถๆ
engine.getSummary();
HonchoProfiler
// ่ทๅ็ปๅ
const profile = profiler.getProfile('user_001');// ้ขๆต้ๆฑ
profile.predictNeeds();
// ่ทๅๆจ่
profile.getRecommendations();
๐งช ๆต่ฏ
# ่ฟ่กๆๆๆต่ฏ
node modules/test-task-store.js
node modules/test-intent-router.js
node modules/test-self-improving-v2.js
node modules/test-fts-indexer.js
node modules/test-honcho-profiler.js
node modules/test-periodic-nudge.js
node modules/test-auto-skill-generator.js
node modules/test-logger.js
node modules/test-dag.js
node modules/test-template.js
node modules/test-collaborator.js
node modules/test-collab-visualizer.js
๐ง ๆ ้ๆๆฅ
ๅธธ่ง้ฎ้ข
Q: TaskStore ๆฅ่ฏข่ฟๅ็ฉบ
// ๆฃๆฅ็ดขๅผ
console.log(TaskStore.getStats());
// ้ๅปบ็ดขๅผ
TaskStore.rebuildIndex();
Q: IntentRouter ่ทฏ็ฑ้่ฏฏ
// ๆฃๆฅๅ
ณ้ฎ่ฏ
console.log(IntentRouter.getKeywords());
// ๆทปๅ ็ผบๅคฑ็ๅ
ณ้ฎ่ฏ
IntentRouter.addKeyword('Agent', ['keyword']);
Q: Self-Improving ไธ็ๆ
// ๆฃๆฅ่งๅๆไปถ
const fs = require('fs');
console.log(fs.readdirSync('./rules'));
๐ ๆดๆฐๆฅๅฟ
v1.0.0 (2026-04-11)
๐ ่ฎธๅฏ่ฏ
MIT License
๐ค ไฝ่
ๆฃฎๆฃฎ - ่่ๅญๆฃฎ็ AI ๅฉ็
*ๆๅๆดๆฐ: 2026-04-11*
๐ Tips & Best Practices
Q: TaskStore ๆฅ่ฏข่ฟๅ็ฉบ
// ๆฃๆฅ็ดขๅผ
console.log(TaskStore.getStats());
// ้ๅปบ็ดขๅผ
TaskStore.rebuildIndex();
Q: IntentRouter ่ทฏ็ฑ้่ฏฏ
// ๆฃๆฅๅ
ณ้ฎ่ฏ
console.log(IntentRouter.getKeywords());
// ๆทปๅ ็ผบๅคฑ็ๅ
ณ้ฎ่ฏ
IntentRouter.addKeyword('Agent', ['keyword']);
Q: Self-Improving ไธ็ๆ
// ๆฃๆฅ่งๅๆไปถ
const fs = require('fs');
console.log(fs.readdirSync('./rules'));