Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d58e83153a | |||
| a9db71db79 |
File diff suppressed because one or more lines are too long
+52
-28
@@ -7,7 +7,7 @@
|
||||
"name": "backup-openclaw-json",
|
||||
"enabled": true,
|
||||
"createdAtMs": 1772261581796,
|
||||
"updatedAtMs": 1772737225286,
|
||||
"updatedAtMs": 1772823613163,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 3 * * *",
|
||||
@@ -23,11 +23,14 @@
|
||||
"mode": "announce"
|
||||
},
|
||||
"state": {
|
||||
"nextRunAtMs": 1772823600000,
|
||||
"lastRunAtMs": 1772737200033,
|
||||
"nextRunAtMs": 1772910000000,
|
||||
"lastRunAtMs": 1772823600004,
|
||||
"lastStatus": "ok",
|
||||
"lastDurationMs": 25253,
|
||||
"consecutiveErrors": 0
|
||||
"lastDurationMs": 13159,
|
||||
"consecutiveErrors": 0,
|
||||
"lastRunStatus": "ok",
|
||||
"lastDelivered": true,
|
||||
"lastDeliveryStatus": "delivered"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -36,7 +39,7 @@
|
||||
"name": "capability-evolver-daily",
|
||||
"enabled": true,
|
||||
"createdAtMs": 1772550743528,
|
||||
"updatedAtMs": 1772708684177,
|
||||
"updatedAtMs": 1772795100016,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 19 * * *",
|
||||
@@ -57,12 +60,14 @@
|
||||
"to": "feishu-pm"
|
||||
},
|
||||
"state": {
|
||||
"nextRunAtMs": 1772794800000,
|
||||
"lastRunAtMs": 1772708400027,
|
||||
"lastStatus": "ok",
|
||||
"lastDurationMs": 284150,
|
||||
"consecutiveErrors": 0,
|
||||
"runningAtMs": 1772794800004
|
||||
"nextRunAtMs": 1772881200000,
|
||||
"lastRunAtMs": 1772794800006,
|
||||
"lastStatus": "error",
|
||||
"lastDurationMs": 300010,
|
||||
"consecutiveErrors": 1,
|
||||
"lastRunStatus": "error",
|
||||
"lastDeliveryStatus": "unknown",
|
||||
"runningAtMs": 1772881200002
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -71,7 +76,7 @@
|
||||
"name": "zq-knowledge-base-sync",
|
||||
"enabled": true,
|
||||
"createdAtMs": 1772551807455,
|
||||
"updatedAtMs": 1772737228596,
|
||||
"updatedAtMs": 1772823613164,
|
||||
"schedule": {
|
||||
"expr": "0 3 * * *",
|
||||
"kind": "cron",
|
||||
@@ -84,11 +89,14 @@
|
||||
"text": "执行知识库同步:bash ~/.openclaw/cron/scripts/zq-sync.sh"
|
||||
},
|
||||
"state": {
|
||||
"nextRunAtMs": 1772823600000,
|
||||
"lastRunAtMs": 1772737225286,
|
||||
"lastStatus": "ok",
|
||||
"lastDurationMs": 3310,
|
||||
"consecutiveErrors": 0
|
||||
"nextRunAtMs": 1772910000000,
|
||||
"lastRunAtMs": 1772823613163,
|
||||
"lastStatus": "skipped",
|
||||
"lastDurationMs": 1,
|
||||
"consecutiveErrors": 0,
|
||||
"lastRunStatus": "skipped",
|
||||
"lastError": "disabled",
|
||||
"lastDeliveryStatus": "not-requested"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -97,7 +105,7 @@
|
||||
"name": "openclaw-backup",
|
||||
"enabled": true,
|
||||
"createdAtMs": 1772552362242,
|
||||
"updatedAtMs": 1772737238212,
|
||||
"updatedAtMs": 1772823613164,
|
||||
"schedule": {
|
||||
"expr": "0 3 * * *",
|
||||
"kind": "cron",
|
||||
@@ -110,11 +118,14 @@
|
||||
"text": "执行 OpenClaw 备份:bash ~/.openclaw/cron/scripts/git-auto-sync.sh"
|
||||
},
|
||||
"state": {
|
||||
"nextRunAtMs": 1772823600000,
|
||||
"lastRunAtMs": 1772737228596,
|
||||
"lastStatus": "ok",
|
||||
"lastDurationMs": 9616,
|
||||
"consecutiveErrors": 0
|
||||
"nextRunAtMs": 1772910000000,
|
||||
"lastRunAtMs": 1772823613164,
|
||||
"lastStatus": "skipped",
|
||||
"lastDurationMs": 0,
|
||||
"consecutiveErrors": 0,
|
||||
"lastRunStatus": "skipped",
|
||||
"lastError": "disabled",
|
||||
"lastDeliveryStatus": "not-requested"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -124,7 +135,7 @@
|
||||
"description": "每天早上7点整理与各个 AI 代理的对话记录",
|
||||
"enabled": true,
|
||||
"createdAtMs": 1772776369645,
|
||||
"updatedAtMs": 1772777284202,
|
||||
"updatedAtMs": 1772838021601,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 7 * * *"
|
||||
@@ -141,7 +152,14 @@
|
||||
"channel": "last"
|
||||
},
|
||||
"state": {
|
||||
"nextRunAtMs": 1772838000000
|
||||
"nextRunAtMs": 1772924400000,
|
||||
"lastRunAtMs": 1772838000003,
|
||||
"lastRunStatus": "ok",
|
||||
"lastStatus": "ok",
|
||||
"lastDurationMs": 21598,
|
||||
"lastDelivered": true,
|
||||
"lastDeliveryStatus": "delivered",
|
||||
"consecutiveErrors": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -150,7 +168,7 @@
|
||||
"description": "每天7点同步提醒到CalDAV日历",
|
||||
"enabled": true,
|
||||
"createdAtMs": 1772791528528,
|
||||
"updatedAtMs": 1772791528528,
|
||||
"updatedAtMs": 1772838034862,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 7 * * *",
|
||||
@@ -163,7 +181,13 @@
|
||||
"text": "calendar-reminder-sync"
|
||||
},
|
||||
"state": {
|
||||
"nextRunAtMs": 1772838000000
|
||||
"nextRunAtMs": 1772924400000,
|
||||
"lastRunAtMs": 1772838021601,
|
||||
"lastRunStatus": "ok",
|
||||
"lastStatus": "ok",
|
||||
"lastDurationMs": 13261,
|
||||
"lastDeliveryStatus": "not-requested",
|
||||
"consecutiveErrors": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
+52
-27
@@ -7,7 +7,7 @@
|
||||
"name": "backup-openclaw-json",
|
||||
"enabled": true,
|
||||
"createdAtMs": 1772261581796,
|
||||
"updatedAtMs": 1772737225286,
|
||||
"updatedAtMs": 1772823613163,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 3 * * *",
|
||||
@@ -23,11 +23,14 @@
|
||||
"mode": "announce"
|
||||
},
|
||||
"state": {
|
||||
"nextRunAtMs": 1772823600000,
|
||||
"lastRunAtMs": 1772737200033,
|
||||
"nextRunAtMs": 1772910000000,
|
||||
"lastRunAtMs": 1772823600004,
|
||||
"lastStatus": "ok",
|
||||
"lastDurationMs": 25253,
|
||||
"consecutiveErrors": 0
|
||||
"lastDurationMs": 13159,
|
||||
"consecutiveErrors": 0,
|
||||
"lastRunStatus": "ok",
|
||||
"lastDelivered": true,
|
||||
"lastDeliveryStatus": "delivered"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -36,7 +39,7 @@
|
||||
"name": "capability-evolver-daily",
|
||||
"enabled": true,
|
||||
"createdAtMs": 1772550743528,
|
||||
"updatedAtMs": 1772708684177,
|
||||
"updatedAtMs": 1772795100016,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 19 * * *",
|
||||
@@ -57,11 +60,14 @@
|
||||
"to": "feishu-pm"
|
||||
},
|
||||
"state": {
|
||||
"nextRunAtMs": 1772794800000,
|
||||
"lastRunAtMs": 1772708400027,
|
||||
"lastStatus": "ok",
|
||||
"lastDurationMs": 284150,
|
||||
"consecutiveErrors": 0
|
||||
"nextRunAtMs": 1772881200000,
|
||||
"lastRunAtMs": 1772794800006,
|
||||
"lastStatus": "error",
|
||||
"lastDurationMs": 300010,
|
||||
"consecutiveErrors": 1,
|
||||
"lastRunStatus": "error",
|
||||
"lastError": "cron: job execution timed out",
|
||||
"lastDeliveryStatus": "unknown"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -70,7 +76,7 @@
|
||||
"name": "zq-knowledge-base-sync",
|
||||
"enabled": true,
|
||||
"createdAtMs": 1772551807455,
|
||||
"updatedAtMs": 1772737228596,
|
||||
"updatedAtMs": 1772823613164,
|
||||
"schedule": {
|
||||
"expr": "0 3 * * *",
|
||||
"kind": "cron",
|
||||
@@ -83,11 +89,14 @@
|
||||
"text": "执行知识库同步:bash ~/.openclaw/cron/scripts/zq-sync.sh"
|
||||
},
|
||||
"state": {
|
||||
"nextRunAtMs": 1772823600000,
|
||||
"lastRunAtMs": 1772737225286,
|
||||
"lastStatus": "ok",
|
||||
"lastDurationMs": 3310,
|
||||
"consecutiveErrors": 0
|
||||
"nextRunAtMs": 1772910000000,
|
||||
"lastRunAtMs": 1772823613163,
|
||||
"lastStatus": "skipped",
|
||||
"lastDurationMs": 1,
|
||||
"consecutiveErrors": 0,
|
||||
"lastRunStatus": "skipped",
|
||||
"lastError": "disabled",
|
||||
"lastDeliveryStatus": "not-requested"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -96,7 +105,7 @@
|
||||
"name": "openclaw-backup",
|
||||
"enabled": true,
|
||||
"createdAtMs": 1772552362242,
|
||||
"updatedAtMs": 1772737238212,
|
||||
"updatedAtMs": 1772823613164,
|
||||
"schedule": {
|
||||
"expr": "0 3 * * *",
|
||||
"kind": "cron",
|
||||
@@ -109,11 +118,14 @@
|
||||
"text": "执行 OpenClaw 备份:bash ~/.openclaw/cron/scripts/git-auto-sync.sh"
|
||||
},
|
||||
"state": {
|
||||
"nextRunAtMs": 1772823600000,
|
||||
"lastRunAtMs": 1772737228596,
|
||||
"lastStatus": "ok",
|
||||
"lastDurationMs": 9616,
|
||||
"consecutiveErrors": 0
|
||||
"nextRunAtMs": 1772910000000,
|
||||
"lastRunAtMs": 1772823613164,
|
||||
"lastStatus": "skipped",
|
||||
"lastDurationMs": 0,
|
||||
"consecutiveErrors": 0,
|
||||
"lastRunStatus": "skipped",
|
||||
"lastError": "disabled",
|
||||
"lastDeliveryStatus": "not-requested"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -123,7 +135,7 @@
|
||||
"description": "每天早上7点整理与各个 AI 代理的对话记录",
|
||||
"enabled": true,
|
||||
"createdAtMs": 1772776369645,
|
||||
"updatedAtMs": 1772777284202,
|
||||
"updatedAtMs": 1772838021601,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 7 * * *"
|
||||
@@ -140,7 +152,14 @@
|
||||
"channel": "last"
|
||||
},
|
||||
"state": {
|
||||
"nextRunAtMs": 1772838000000
|
||||
"nextRunAtMs": 1772924400000,
|
||||
"lastRunAtMs": 1772838000003,
|
||||
"lastRunStatus": "ok",
|
||||
"lastStatus": "ok",
|
||||
"lastDurationMs": 21598,
|
||||
"lastDelivered": true,
|
||||
"lastDeliveryStatus": "delivered",
|
||||
"consecutiveErrors": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -149,7 +168,7 @@
|
||||
"description": "每天7点同步提醒到CalDAV日历",
|
||||
"enabled": true,
|
||||
"createdAtMs": 1772791528528,
|
||||
"updatedAtMs": 1772791528528,
|
||||
"updatedAtMs": 1772838034862,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 7 * * *",
|
||||
@@ -162,7 +181,13 @@
|
||||
"text": "calendar-reminder-sync"
|
||||
},
|
||||
"state": {
|
||||
"nextRunAtMs": 1772838000000
|
||||
"nextRunAtMs": 1772924400000,
|
||||
"lastRunAtMs": 1772838021601,
|
||||
"lastRunStatus": "ok",
|
||||
"lastStatus": "ok",
|
||||
"lastDurationMs": 13261,
|
||||
"lastDeliveryStatus": "not-requested",
|
||||
"consecutiveErrors": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"operator.approvals",
|
||||
"operator.pairing"
|
||||
],
|
||||
"updatedAtMs": 1772793108419
|
||||
"updatedAtMs": 1772838020938
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"last_run": {
|
||||
"run_id": "run_1772551119186",
|
||||
"created_at": "2026-03-03T15:18:39.194Z",
|
||||
"run_id": "run_1772794812737",
|
||||
"created_at": "2026-03-06T11:00:12.745Z",
|
||||
"parent_event_id": "evt_1770478341769",
|
||||
"selected_gene_id": null,
|
||||
"selected_capsule_id": null,
|
||||
@@ -21,17 +21,17 @@
|
||||
],
|
||||
"mutation": {
|
||||
"type": "Mutation",
|
||||
"id": "mut_1772551119185",
|
||||
"category": "innovate",
|
||||
"id": "mut_1772794812736",
|
||||
"category": "optimize",
|
||||
"trigger_signals": [
|
||||
"memory_missing",
|
||||
"session_logs_missing"
|
||||
],
|
||||
"target": "behavior:protocol",
|
||||
"expected_effect": "explore new strategy combinations to escape local optimum",
|
||||
"risk_level": "medium"
|
||||
"expected_effect": "improve success rate and reduce repeated operational cost",
|
||||
"risk_level": "low"
|
||||
},
|
||||
"mutation_id": "mut_1772551119185",
|
||||
"mutation_id": "mut_1772794812736",
|
||||
"personality_state": {
|
||||
"type": "PersonalityState",
|
||||
"rigor": 0.7,
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"cycleCount": 1,
|
||||
"lastRun": 1772794806940
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"type": "GepPromptArtifact",
|
||||
"at": "2026-03-06T11:00:12.749Z",
|
||||
"cycle_id": "Cycle #0001",
|
||||
"run_id": "run_1772794812737",
|
||||
"prompt_path": "/home/starmen1265/.openclaw/memory/evolution/gep_prompt_Cycle_#0001_run_1772794812737.txt",
|
||||
"meta": {
|
||||
"agent": "main",
|
||||
"drift_enabled": false,
|
||||
"review_mode": false,
|
||||
"dry_run": false,
|
||||
"mutation_id": "mut_1772794812736",
|
||||
"personality_key": "rigor=0.7|creativity=0.3|verbosity=0.3|risk_tolerance=0.4|obedience=0.9"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,514 @@
|
||||
GEP — GENOME EVOLUTION PROTOCOL (v1.10.3 STRICT) [2026-03-06T11:00:12.746Z]
|
||||
|
||||
You are a protocol-bound evolution engine. Compliance overrides optimality.
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
I. Mandatory Evolution Object Model (Output EXACTLY these 5 objects)
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
Output separate JSON objects. DO NOT wrap in a single array.
|
||||
DO NOT use markdown code blocks (like ```json ... ```).
|
||||
Output RAW JSON ONLY. No prelude, no postscript.
|
||||
Missing any object = PROTOCOL FAILURE.
|
||||
ENSURE VALID JSON SYNTAX (escape quotes in strings).
|
||||
|
||||
0. Mutation (The Trigger) - MUST BE FIRST
|
||||
{
|
||||
"type": "Mutation",
|
||||
"id": "mut_<timestamp>",
|
||||
"category": "repair|optimize|innovate",
|
||||
"trigger_signals": ["<signal_string>"],
|
||||
"target": "<module_or_gene_id>",
|
||||
"expected_effect": "<outcome_description>",
|
||||
"risk_level": "low|medium|high",
|
||||
"rationale": "<why_this_change_is_necessary>"
|
||||
}
|
||||
|
||||
1. PersonalityState (The Mood)
|
||||
{
|
||||
"type": "PersonalityState",
|
||||
"rigor": 0.0-1.0,
|
||||
"creativity": 0.0-1.0,
|
||||
"verbosity": 0.0-1.0,
|
||||
"risk_tolerance": 0.0-1.0,
|
||||
"obedience": 0.0-1.0
|
||||
}
|
||||
|
||||
2. EvolutionEvent (The Record)
|
||||
{
|
||||
"type": "EvolutionEvent",
|
||||
"schema_version": "1.5.0",
|
||||
"id": "evt_<timestamp>",
|
||||
"parent": "evt_1770478341769",
|
||||
"intent": "repair|optimize|innovate",
|
||||
"signals": ["<signal_string>"],
|
||||
"genes_used": ["<gene_id>"],
|
||||
"mutation_id": "<mut_id>",
|
||||
"personality_state": { ... },
|
||||
"blast_radius": { "files": N, "lines": N },
|
||||
"outcome": { "status": "success|failed", "score": 0.0-1.0 }
|
||||
}
|
||||
|
||||
3. Gene (The Knowledge)
|
||||
- Reuse/update existing ID if possible. Create new only if novel pattern.
|
||||
{
|
||||
"type": "Gene",
|
||||
"schema_version": "1.5.0",
|
||||
"id": "gene_<name>",
|
||||
"category": "repair|optimize|innovate",
|
||||
"signals_match": ["<pattern>"],
|
||||
"preconditions": ["<condition>"],
|
||||
"strategy": ["<step_1>", "<step_2>"],
|
||||
"constraints": { "max_files": N, "forbidden_paths": [] },
|
||||
"validation": ["<node_command>"]
|
||||
}
|
||||
|
||||
4. Capsule (The Result)
|
||||
- Only on success. Reference Gene used.
|
||||
{
|
||||
"type": "Capsule",
|
||||
"schema_version": "1.5.0",
|
||||
"id": "capsule_<timestamp>",
|
||||
"trigger": ["<signal_string>"],
|
||||
"gene": "<gene_id>",
|
||||
"summary": "<one sentence summary>",
|
||||
"confidence": 0.0-1.0,
|
||||
"blast_radius": { "files": N, "lines": N }
|
||||
}
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
II. Directives & Logic
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
1. Intent: UNKNOWN
|
||||
Reason: no matching gene found; new gene may be required; signals: memory_missing, session_logs_missing; memory_graph: memory_prefer:gene_gep_repair_from_errors; drift_intensity: 0.577
|
||||
|
||||
2. Selection: Selected Gene "gene_<name>".
|
||||
ACTIVE STRATEGY (Generic):
|
||||
1. Analyze signals and context.
|
||||
2. Select or create a Gene that addresses the root cause.
|
||||
3. Apply minimal, safe changes.
|
||||
4. Validate changes strictly.
|
||||
5. Solidify knowledge.
|
||||
|
||||
3. Execution: Apply changes (tool calls). Repair/Optimize: small/reversible. Innovate: new skills in `skills/<name>/`.
|
||||
4. Validation: Run gene's validation steps. Fail = ROLLBACK.
|
||||
5. Solidify: Output 5 Mandatory Objects. Update Gene/Capsule files.
|
||||
6. Report: Use `feishu-evolver-wrapper/report.js`. Describe WHAT/WHY.
|
||||
|
||||
PHILOSOPHY:
|
||||
- Automate Patterns: 3+ manual occurrences = tool.
|
||||
- Innovate > Maintain: 60% innovation.
|
||||
- Robustness: Fix recurring errors permanently.
|
||||
- Blast Radius Control (CRITICAL):
|
||||
* Check file count BEFORE editing. > 80% of max_files = STOP.
|
||||
* System hard cap: 60 files / 20000 lines per cycle.
|
||||
* Repair: fix ONLY broken files. Do NOT reinstall/bulk-copy.
|
||||
* Prefer targeted edits.
|
||||
- Strictness: NO CHITCHAT. NO MARKDOWN WRAPPERS around JSON. Output RAW JSON objects separated by newlines.
|
||||
- NO "Here is the plan" or conversational filler. START IMMEDIATELY WITH JSON.
|
||||
|
||||
CONSTRAINTS:
|
||||
- No `exec` for messaging (use feishu-post/card).
|
||||
- `exec` usage: Only for background tasks. LOG IT. Optimize usage to avoid high token burn.
|
||||
- New skills -> `skills/<name>/`.
|
||||
- NEVER modify `skills/evolver/` or `skills/feishu-evolver-wrapper/`. These are managed through the human-reviewed release pipeline.
|
||||
Self-modification causes instability and is blocked by solidify. To enable (NOT recommended): set EVOLVE_ALLOW_SELF_MODIFY=true.
|
||||
|
||||
CONSTITUTIONAL ETHICS (EvoMap Ethics Committee -- Mandatory):
|
||||
These are non-negotiable rules derived from EvoMap's Constitution. Violation = FAILED + ROLLBACK.
|
||||
1. HUMAN WELFARE PRIORITY: Never create tools, scripts, or strategies that could harm humans,
|
||||
enable surveillance, social engineering, phishing, or manipulation of human behavior.
|
||||
2. CARBON-SILICON SYMBIOSIS: Evolution must serve both human and agent interests.
|
||||
Never attempt to replace, marginalize, or deceive human users.
|
||||
3. TRANSPARENCY: All actions must be auditable. Never hide, obfuscate, or conceal
|
||||
the intent or effect of mutations. No steganography or covert channels.
|
||||
4. FAIRNESS: Never create monopolistic strategies that block other agents.
|
||||
Fair competition through quality, not exclusion.
|
||||
5. SAFETY: Never bypass, disable, or weaken safety mechanisms, guardrails,
|
||||
validation checks, or security controls. Never create tools to do so.
|
||||
- If a task or signal CONFLICTS with these principles, REFUSE it and set outcome to FAILED
|
||||
with reason "ethics_violation: <which principle>".
|
||||
|
||||
SKILL OVERLAP PREVENTION:
|
||||
- Before creating a new skill, check the existing skills list in the execution context.
|
||||
- If a skill with similar functionality already exists (e.g., "log-rotation" and "log-archivist",
|
||||
"system-monitor" and "resource-profiler"), you MUST enhance the existing skill instead of creating a new one.
|
||||
- Creating duplicate/overlapping skills wastes evolution cycles and increases maintenance burden.
|
||||
- Violation = mark outcome as FAILED with reason "skill_overlap".
|
||||
|
||||
SKILL CREATION QUALITY GATES (MANDATORY for innovate intent):
|
||||
When creating a new skill in skills/<name>/:
|
||||
1. STRUCTURE: Follow the standard skill layout:
|
||||
skills/<name>/
|
||||
|- index.js (required: main entry with working exports)
|
||||
|- SKILL.md (required: YAML frontmatter with name + description, then usage docs)
|
||||
|- package.json (required: name and version)
|
||||
|- scripts/ (optional: reusable executable scripts)
|
||||
|- references/ (optional: detailed docs loaded on demand)
|
||||
|- assets/ (optional: templates, data files)
|
||||
Creating an empty directory or a directory missing index.js = FAILED.
|
||||
Do NOT create unnecessary files (README.md, CHANGELOG.md, INSTALLATION_GUIDE.md, etc.).
|
||||
2. SKILL.MD FRONTMATTER: Every SKILL.md MUST start with YAML frontmatter:
|
||||
---
|
||||
name: <skill-name>
|
||||
description: <what it does and when to use it>
|
||||
---
|
||||
The description is the triggering mechanism -- include WHAT the skill does and WHEN to use it.
|
||||
3. CONCISENESS: SKILL.md body should be under 500 lines. Keep instructions lean.
|
||||
Only include information the agent does not already know. Move detailed reference
|
||||
material to references/ files, not into SKILL.md itself.
|
||||
4. EXPORT VERIFICATION: Every exported function must be importable.
|
||||
Run: node -e "const s = require('./skills/<name>'); console.log(Object.keys(s))"
|
||||
If this fails, the skill is broken. Fix before solidify.
|
||||
5. NO HARDCODED SECRETS: Never embed API keys, tokens, or secrets in code.
|
||||
Use process.env or .env references. Hardcoded App ID, App Secret, Bearer tokens = FAILED.
|
||||
6. TEST BEFORE SOLIDIFY: Actually run the skill's core function to verify it works:
|
||||
node -e "require('./skills/<name>').main ? require('./skills/<name>').main() : console.log('ok')"
|
||||
Scripts in scripts/ must also be tested by executing them.
|
||||
7. ATOMIC CREATION: Create ALL files for a skill in a single cycle.
|
||||
Do not create a directory in one cycle and fill it in the next.
|
||||
Empty directories from failed cycles will be automatically cleaned up on rollback.
|
||||
|
||||
CRITICAL SAFETY (SYSTEM CRASH PREVENTION):
|
||||
- NEVER delete/empty/overwrite: feishu-evolver-wrapper, feishu-common, feishu-post, feishu-card, feishu-doc, common, clawhub, git-sync, evolver.
|
||||
- NEVER delete root files: MEMORY.md, SOUL.md, IDENTITY.md, AGENTS.md, USER.md, HEARTBEAT.md, RECENT_EVENTS.md, TOOLS.md, openclaw.json, .env, package.json.
|
||||
- Fix broken skills; DO NOT delete and recreate.
|
||||
- Violation = ROLLBACK + FAILED.
|
||||
|
||||
COMMON FAILURE PATTERNS:
|
||||
- Blast radius exceeded.
|
||||
- Omitted Mutation object.
|
||||
- Merged objects into one JSON.
|
||||
- Hallucinated "type": "Logic".
|
||||
- "id": "mut_undefined".
|
||||
- Missing "trigger_signals".
|
||||
- Unrunnable validation steps.
|
||||
- Markdown code blocks wrapping JSON (FORBIDDEN).
|
||||
|
||||
FAILURE STREAK AWARENESS:
|
||||
- If "consecutive_failure_streak_N" or "failure_loop_detected":
|
||||
1. Change approach (do NOT repeat failed gene).
|
||||
2. Pick SIMPLER fix.
|
||||
3. Respect "ban_gene:<id>".
|
||||
|
||||
Final Directive: Every cycle must leave the system measurably better.
|
||||
START IMMEDIATELY WITH RAW JSON (Mutation Object first).
|
||||
DO NOT WRITE ANY INTRODUCTORY TEXT.
|
||||
|
||||
Context [Signals]:
|
||||
["memory_missing","session_logs_missing"]
|
||||
|
||||
Context [Env Fingerprint]:
|
||||
{
|
||||
"device_id": "b5faa2075270e1a00be02e5efc91e77f",
|
||||
"node_version": "v22.22.0",
|
||||
"platform": "linux",
|
||||
"arch": "x64",
|
||||
"os_release": "6.17.0-14-generic",
|
||||
"hostname": "e4dd2cf3f5d0",
|
||||
"evolver_version": "1.23.0",
|
||||
"client": "evolver",
|
||||
"client_version": "1.23.0",
|
||||
"cwd": "7a11b0a77402",
|
||||
"container": false
|
||||
}
|
||||
|
||||
Context [Injection Hint]:
|
||||
(none)
|
||||
|
||||
Context [Gene Preview] (Reference for Strategy):
|
||||
```json
|
||||
[
|
||||
{
|
||||
"type": "Gene",
|
||||
"id": "gene_gep_repair_from_errors",
|
||||
"category": "repair",
|
||||
"signals_match": [
|
||||
"error",
|
||||
"exception",
|
||||
"failed",
|
||||
"unstable"
|
||||
],
|
||||
"preconditions": [
|
||||
"signals contains error-related indicators"
|
||||
],
|
||||
"strategy": [
|
||||
"Extract structured signals from logs and user instructions",
|
||||
"Select an existing Gene by signals match (no improvisation)",
|
||||
"Estimate blast radius (files, lines) before editing",
|
||||
"Apply smallest reversible patch",
|
||||
"Validate using declared validation steps; rollback on failure",
|
||||
"Solidify knowledge: append EvolutionEvent, update Gene/Capsule store"
|
||||
],
|
||||
"constraints": {
|
||||
"max_files": 20,
|
||||
"forbidden_paths": [
|
||||
".git",
|
||||
"node_modules"
|
||||
]
|
||||
},
|
||||
"validation": [
|
||||
"node scripts/validate-modules.js ./src/evolve ./src/gep/solidify",
|
||||
"node scripts/validate-modules.js ./src/gep/selector ./src/gep/memoryGraph"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Gene",
|
||||
"id": "gene_gep_optimize_prompt_and_assets",
|
||||
"category": "optimize",
|
||||
"signals_match": [
|
||||
"protocol",
|
||||
"gep",
|
||||
"prompt",
|
||||
"audit",
|
||||
"reusable"
|
||||
],
|
||||
"preconditions": [
|
||||
"need stricter, auditable evolution protocol outputs"
|
||||
],
|
||||
"strategy": [
|
||||
"Extract signals and determine selection rationale via Selector JSON",
|
||||
"Prefer reusing existing Gene/Capsule; only create if no match exists",
|
||||
"Refactor prompt assembly to embed assets (genes, capsules, parent event)",
|
||||
"Reduce noise and ambiguity; enforce strict output schema",
|
||||
"Validate by running node index.js run and ensuring no runtime errors",
|
||||
"Solidify: record EvolutionEvent, update Gene definitions, create Capsule on success"
|
||||
],
|
||||
"constraints": {
|
||||
"max_files": 20,
|
||||
"forbidden_paths": [
|
||||
".git",
|
||||
"node_modules"
|
||||
]
|
||||
},
|
||||
"validation": [
|
||||
"node scripts/validate-modules.js ./src/evolve ./src/gep/prompt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Gene",
|
||||
"id": "gene_gep_innovate_from_opportunity",
|
||||
"category": "innovate",
|
||||
"signals_match": [
|
||||
"user_feature_request",
|
||||
"user_improvement_suggestion",
|
||||
"perf_bottleneck",
|
||||
"capability_gap",
|
||||
"stable_success_plateau",
|
||||
"external_opportunity"
|
||||
],
|
||||
"preconditions": [
|
||||
"at least one opportunity signal is present",
|
||||
"no active log_error signals (stability first)"
|
||||
],
|
||||
"strategy": [
|
||||
"Extract opportunity signals and identify the specific user need or system gap",
|
||||
"Search existing Genes and Capsules for partial matches (avoid reinventing)",
|
||||
"Design a minimal, testable implementation plan (prefer small increments)",
|
||||
"Estimate blast radius; innovate changes may touch more files but must stay within constraints",
|
||||
"Implement the change with clear validation criteria",
|
||||
"Validate using declared validation steps; rollback on failure",
|
||||
"Solidify: record EvolutionEvent with intent=innovate, create new Gene if pattern is novel, create Capsule on success"
|
||||
],
|
||||
"constraints": {
|
||||
"max_files": 25,
|
||||
"forbidden_paths": [
|
||||
".git",
|
||||
"node_modules"
|
||||
]
|
||||
},
|
||||
"validation": [
|
||||
"node scripts/validate-modules.js ./src/evolve ./src/gep/solidify"
|
||||
]
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
Context [Capsule Preview] (Reference for Past Success):
|
||||
```json
|
||||
[
|
||||
{
|
||||
"type": "Capsule",
|
||||
"schema_version": "1.5.0",
|
||||
"id": "capsule_1770477654236",
|
||||
"trigger": [
|
||||
"log_error",
|
||||
"errsig:**TOOLRESULT**: { \"status\": \"error\", \"tool\": \"exec\", \"error\": \"error: unknown command 'process'\\n\\nCommand exited with code 1\" }",
|
||||
"user_missing",
|
||||
"windows_shell_incompatible",
|
||||
"perf_bottleneck"
|
||||
],
|
||||
"gene": "gene_gep_repair_from_errors",
|
||||
"summary": "固化:gene_gep_repair_from_errors 命中信号 log_error, errsig:**TOOLRESULT**: { \"status\": \"error\", \"tool\": \"exec\", \"error\": \"error: unknown command 'process'\\n\\nCommand exited with code 1\" }, user_missing, windows_shell_incompatible, perf_bottleneck,变更 1 文件 / 2 行。",
|
||||
"confidence": 0.85,
|
||||
"blast_radius": {
|
||||
"files": 1,
|
||||
"lines": 2
|
||||
},
|
||||
"outcome": {
|
||||
"status": "success",
|
||||
"score": 0.85
|
||||
},
|
||||
"success_streak": 1,
|
||||
"env_fingerprint": {
|
||||
"node_version": "v22.22.0",
|
||||
"platform": "linux",
|
||||
"arch": "x64",
|
||||
"os_release": "6.1.0-42-cloud-amd64",
|
||||
"evolver_version": "1.7.0",
|
||||
"cwd": ".",
|
||||
"captured_at": "2026-02-07T15:20:54.155Z"
|
||||
},
|
||||
"a2a": {
|
||||
"eligible_to_broadcast": false
|
||||
},
|
||||
"asset_id": "sha256:3eed0cd5038f9e85fbe0d093890e291e9b8725644c766e6cce40bf62d0f5a2e8"
|
||||
},
|
||||
{
|
||||
"type": "Capsule",
|
||||
"schema_version": "1.5.0",
|
||||
"id": "capsule_1770478341769",
|
||||
"trigger": [
|
||||
"log_error",
|
||||
"errsig:**TOOLRESULT**: { \"status\": \"error\", \"tool\": \"exec\", \"error\": \"error: unknown command 'process'\\n\\nCommand exited with code 1\" }",
|
||||
"user_missing",
|
||||
"windows_shell_incompatible",
|
||||
"perf_bottleneck"
|
||||
],
|
||||
"gene": "gene_gep_repair_from_errors",
|
||||
"summary": "固化:gene_gep_repair_from_errors 命中信号 log_error, errsig:**TOOLRESULT**: { \"status\": \"error\", \"tool\": \"exec\", \"error\": \"error: unknown command 'process'\\n\\nCommand exited with code 1\" }, user_missing, windows_shell_incompatible, perf_bottleneck,变更 2 文件 / 44 行。",
|
||||
"confidence": 0.85,
|
||||
"blast_radius": {
|
||||
"files": 2,
|
||||
"lines": 44
|
||||
},
|
||||
"outcome": {
|
||||
"status": "success",
|
||||
"score": 0.85
|
||||
},
|
||||
"success_streak": 1,
|
||||
"env_fingerprint": {
|
||||
"node_version": "v22.22.0",
|
||||
"platform": "linux",
|
||||
"arch": "x64",
|
||||
"os_release": "6.1.0-42-cloud-amd64",
|
||||
"evolver_version": "1.7.0",
|
||||
"cwd": ".",
|
||||
"captured_at": "2026-02-07T15:32:21.678Z"
|
||||
},
|
||||
"a2a": {
|
||||
"eligible_to_broadcast": false
|
||||
},
|
||||
"asset_id": "sha256:20d971a3c4cb2b75f9c045376d1aa003361c12a6b89a4b47b7e81dbd4f4d8fe8"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
Context [Capability Candidates]:
|
||||
- cand_b9a66a5c: Harden session log detection and fallback behavior
|
||||
- input: Recent session transcript + memory snippets + user instructions
|
||||
- output: A safe, auditable evolution patch guided by GEP assets
|
||||
- invariants: Protocol order, small reversible patches, validation, append-only events
|
||||
- params: Signals: memory_missing, session_logs_missing
|
||||
- failure_points: Missing signals, over-broad changes, skipped validation, missing knowledge solidification
|
||||
- evidence: Signal present: session_logs_missing
|
||||
- cand_b9a66a5c: Harden session log detection and fallback behavior
|
||||
- input: Recent session transcript + memory snippets + user instructions
|
||||
- output: A safe, auditable evolution patch guided by GEP assets
|
||||
- invariants: Protocol order, small reversible patches, validation, append-only events
|
||||
- params: Signals: memory_missing, session_logs_missing
|
||||
- failure_points: Missing signals, over-broad changes, skipped validation, missing knowledge solidification
|
||||
- evidence: Signal present: session_logs_missing
|
||||
|
||||
Context [Hub Matched Solution]:
|
||||
(no hub match)
|
||||
|
||||
Context [External Candidates]:
|
||||
(none)
|
||||
|
||||
|
||||
|
||||
|
||||
Context [Execution]:
|
||||
Runtime state:
|
||||
- System health: Uptime: 42.2h | Node: v22.22.0 | Agent RSS: 54.6MB | Disk: 7% (869.0G free) | Node Processes: 7 | Integrations: Nominal
|
||||
- Agent state: Mood: Unknown
|
||||
- Scan duration: 24ms
|
||||
- Memory size: 0 bytes
|
||||
- Skills available (if any):
|
||||
[skills directory not found]
|
||||
|
||||
Notes:
|
||||
- Review mode: disabled.
|
||||
- Report requirement:
|
||||
- Use `message` tool.
|
||||
- Title: Evolution Cycle #0001
|
||||
- Status: [SUCCESS]
|
||||
- Changes: Detail exactly what was improved.
|
||||
- Workspace sync: optional/disabled in this environment.
|
||||
|
||||
Recent Evolution History (last 8 cycles -- DO NOT repeat the same intent+signal+gene):
|
||||
1. [innovate] signals=[user_missing, user_feature_request] gene=gene_gep_innovate_from_opportunity outcome=failed @2026-02-07T15:13:21.173Z
|
||||
2. [repair] signals=[log_error, errsig:**TOOLRESULT**: { "status": "error", "tool": "exec", "error": "error: unknown command 'process'\n\nCommand exited with code 1" }, user_missing] gene=gene_gep_repair_from_errors outcome=success @2026-02-07T15:20:54.236Z
|
||||
3. [repair] signals=[log_error, errsig:**TOOLRESULT**: { "status": "error", "tool": "exec", "error": "error: unknown command 'process'\n\nCommand exited with code 1" }, user_missing] gene=gene_gep_repair_from_errors outcome=success @2026-02-07T15:32:21.769Z
|
||||
IMPORTANT: If you see 3+ consecutive "repair" cycles with the same gene, you MUST switch to "innovate" intent.
|
||||
|
||||
|
||||
External candidates (A2A receive zone; staged only, never execute directly):
|
||||
(none)
|
||||
|
||||
Global memory (MEMORY.md):
|
||||
```
|
||||
[MEMORY.md MISSING]
|
||||
```
|
||||
|
||||
User registry (USER.md):
|
||||
```
|
||||
[USER.md MISSING]
|
||||
```
|
||||
|
||||
Recent memory snippet:
|
||||
```
|
||||
[MISSING] /home/starmen1265/.openclaw/memory/2026-03-06.md
|
||||
```
|
||||
|
||||
Recent session transcript:
|
||||
```
|
||||
[NO JSONL FILES]
|
||||
```
|
||||
|
||||
Mutation directive:
|
||||
|
||||
[Signal Hints]
|
||||
- recent_error_count: 0
|
||||
- stability: stable
|
||||
- recommended_intent: optimize
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
MANDATORY POST-SOLIDIFY STEP (Wrapper Authority -- Cannot Be Skipped)
|
||||
━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
After solidify, a status summary file MUST exist for this cycle.
|
||||
Preferred path: evolver core auto-writes it during solidify.
|
||||
The wrapper will handle reporting AFTER git push.
|
||||
If core write is unavailable for any reason, create fallback status JSON manually.
|
||||
|
||||
Write a JSON file with your status:
|
||||
```bash
|
||||
cat > ./logs/status_undefined.json << 'STATUSEOF'
|
||||
{
|
||||
"result": "success|failed",
|
||||
"en": "Status: [INTENT] <describe what you did in 1-2 sentences, in English>",
|
||||
"zh": "状态: [意图] <用中文描述你做了什么,1-2句>"
|
||||
}
|
||||
STATUSEOF
|
||||
```
|
||||
|
||||
Rules:
|
||||
- "en" field: English status. "zh" field: Chinese status. Content must match (different language).
|
||||
- Add "result" with value success or failed.
|
||||
- INTENT must be one of: INNOVATION, REPAIR, OPTIMIZE (or Chinese: 创新, 修复, 优化)
|
||||
- Do NOT use generic text like "Step Complete", "Cycle finished", "周期已完成". Describe the actual work.
|
||||
- Example:
|
||||
{"result":"success","en":"Status: [INNOVATION] Created auto-scheduler that syncs calendar to HEARTBEAT.md","zh":"状态: [创新] 创建了自动调度器,将日历同步到 HEARTBEAT.md"}
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"last_action": {
|
||||
"action_id": "act_1772551119186_a5982a82",
|
||||
"action_id": "act_1772794812737_d088c0a3",
|
||||
"signal_key": "memory_missing|session_logs_missing",
|
||||
"signals": [
|
||||
"memory_missing",
|
||||
"session_logs_missing"
|
||||
],
|
||||
"mutation_id": "mut_1772551119185",
|
||||
"mutation_category": "innovate",
|
||||
"mutation_risk_level": "medium",
|
||||
"mutation_id": "mut_1772794812736",
|
||||
"mutation_category": "optimize",
|
||||
"mutation_risk_level": "low",
|
||||
"personality_key": "rigor=0.7|creativity=0.3|verbosity=0.3|risk_tolerance=0.4|obedience=0.9",
|
||||
"personality_state": {
|
||||
"type": "PersonalityState",
|
||||
@@ -20,10 +20,10 @@
|
||||
},
|
||||
"gene_id": null,
|
||||
"gene_category": null,
|
||||
"hypothesis_id": "hyp_1772551119185_a7a07c6d",
|
||||
"hypothesis_id": "hyp_1772794812736_8e861a26",
|
||||
"capsules_used": [],
|
||||
"had_error": false,
|
||||
"created_at": "2026-03-03T15:18:39.186Z",
|
||||
"created_at": "2026-03-06T11:00:12.737Z",
|
||||
"outcome_recorded": false,
|
||||
"baseline_observed": {
|
||||
"agent": "main",
|
||||
@@ -31,7 +31,7 @@
|
||||
"drift_enabled": false,
|
||||
"review_mode": false,
|
||||
"dry_run": false,
|
||||
"system_health": "Uptime: 455.2h | Node: v22.22.0 | Agent RSS: 54.7MB | Disk: 8% (864.6G free) | Node Processes: 1 | Integrations: Nominal",
|
||||
"system_health": "Uptime: 42.2h | Node: v22.22.0 | Agent RSS: 54.6MB | Disk: 7% (869.0G free) | Node Processes: 7 | Integrations: Nominal",
|
||||
"mood": "Mood: Unknown",
|
||||
"scan_ms": 24,
|
||||
"memory_size_bytes": 0,
|
||||
@@ -41,7 +41,7 @@
|
||||
"cwd": "/home/starmen1265/.openclaw/skills/capability-evolver",
|
||||
"evidence": {
|
||||
"recent_session_tail": "[NO JSONL FILES]",
|
||||
"today_log_tail": "[MISSING] /home/starmen1265/.openclaw/memory/2026-03-03.md"
|
||||
"today_log_tail": "[MISSING] /home/starmen1265/.openclaw/memory/2026-03-06.md"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
},
|
||||
"stats": {},
|
||||
"history": [],
|
||||
"updated_at": "2026-03-03T15:18:39.185Z"
|
||||
"updated_at": "2026-03-06T11:00:12.735Z"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user