From f05cfde707a9660aa7507263e14c37bd79cccd7f Mon Sep 17 00:00:00 2001 From: lxowalle Date: Tue, 12 May 2026 10:33:16 +0800 Subject: [PATCH] docs: address evolution config review --- docs/architecture/agent-self-evolution.md | 8 ++++++++ web/frontend/src/components/config/config-sections.tsx | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/architecture/agent-self-evolution.md b/docs/architecture/agent-self-evolution.md index f5c4057d1..40e040fa0 100644 --- a/docs/architecture/agent-self-evolution.md +++ b/docs/architecture/agent-self-evolution.md @@ -10,6 +10,14 @@ The cold path groups related task records, checks the configured success thresho The apply path validates generated `SKILL.md` content before writing. Invalid drafts are rejected before a skill directory or file is created. +## Safety Considerations + +Evolution creates a persistent feedback loop: user input can become a task record, task records can be clustered into an LLM-generated draft, and an accepted draft can become `SKILL.md` content that is loaded into future agent prompts. Treat generated skill content as prompt-sensitive material, especially in `apply` mode. + +The current local scanner is a narrow guardrail, not a complete safety boundary. It rejects structurally invalid drafts and a small set of obvious secret-like substrings, but it does not reliably detect prompt injection, unsafe instructions, or every form of sensitive data. Use `observe` or `draft` when human review is required before skill changes reach disk. + +In `apply` mode, accepted drafts can update workspace skills automatically. Existing skills are backed up before replacement, but recovery is manual: an operator must restore the desired backup if an applied skill should be rolled back. + ## Modes | Mode | Behavior | diff --git a/web/frontend/src/components/config/config-sections.tsx b/web/frontend/src/components/config/config-sections.tsx index 18e759030..cd6a68691 100644 --- a/web/frontend/src/components/config/config-sections.tsx +++ b/web/frontend/src/components/config/config-sections.tsx @@ -296,7 +296,7 @@ export function EvolutionSection({ onFieldChange("evolutionStateDir", e.target.value)} - placeholder=".picoclaw/evolution" + placeholder="e.g. /var/lib/picoclaw/evolution" />