You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Under the hermes driver, an agent can write its own skill files, and those
files are re-read as standing instructions on later turns. For long-running
scheduled agents this creates a self-reinforcing loop: an agent's own
rationalization from one turn becomes durable policy for every turn after it.
There is currently no pod-level way to make agent skills read-only.
Detail
/root/.hermes/skills is mounted rw. Operator-authored SKILL.md files are
individually mounted ro, which correctly protects them:
$ claw compose exec -T <agent> mount | grep -i skill/dev/sda2 on /root/.hermes/skills type ext4 (rw,relatime)/dev/sda2 on /root/.hermes/skills/<skill>/SKILL.md type ext4 (ro,relatime)
But because the directory is writable, an agent can create new files beside
the protected ones — e.g. skills/<skill>/references/*.md — via skill_manage.
Those are then loaded on subsequent turns like any other reference.
Observed on a pod of scheduled agents over ~4 weeks: agents accumulated
hundreds of KB of self-authored reference files (one agent: 16 of 21 reference
files rewritten within a month, 226KB–793KB per agent), and skill_view became
the single most-called tool, with median call records of 230–390KB. The
practical effect is heavy per-turn token cost plus strong behavioural
convergence — the agent keeps re-reading conclusions it wrote earlier and
treats them as constraints.
This also silently defeats contract-level limits. An operator can bound a
memory file (e.g. "keep lessons.md to N entries") but the same content simply
migrates into self-authored skills, where no bound exists.
Request
Any one of these would be sufficient:
Read-only skills mount — a pod/service option to mount the agent skills
directory ro, not just the individual SKILL.md files.
A separate writable location for agent-authored notes that is not
loaded as skill context, keeping "things the agent learned" distinct from
"instructions the agent follows."
Why it matters
Skills are contract surface. Anything loaded every turn is effectively policy,
so write access to it is a privilege escalation from "agent memory" to "agent
self-modifying its own instructions" — fine for an interactive coding assistant,
risky for unattended long-running agents.
Environment
claw version 0.26.0, hermes driver, hermes-base:v2026.6.19-claw.3.
Summary
Under the hermes driver, an agent can write its own skill files, and those
files are re-read as standing instructions on later turns. For long-running
scheduled agents this creates a self-reinforcing loop: an agent's own
rationalization from one turn becomes durable policy for every turn after it.
There is currently no pod-level way to make agent skills read-only.
Detail
/root/.hermes/skillsis mounted rw. Operator-authoredSKILL.mdfiles areindividually mounted ro, which correctly protects them:
But because the directory is writable, an agent can create new files beside
the protected ones — e.g.
skills/<skill>/references/*.md— viaskill_manage.Those are then loaded on subsequent turns like any other reference.
Observed on a pod of scheduled agents over ~4 weeks: agents accumulated
hundreds of KB of self-authored reference files (one agent: 16 of 21 reference
files rewritten within a month, 226KB–793KB per agent), and
skill_viewbecamethe single most-called tool, with median call records of 230–390KB. The
practical effect is heavy per-turn token cost plus strong behavioural
convergence — the agent keeps re-reading conclusions it wrote earlier and
treats them as constraints.
This also silently defeats contract-level limits. An operator can bound a
memory file (e.g. "keep
lessons.mdto N entries") but the same content simplymigrates into self-authored skills, where no bound exists.
Request
Any one of these would be sufficient:
directory
ro, not just the individualSKILL.mdfiles.CLAWDAPUS_DISABLED_TOOLSsoskill_managecan be disabled from the podfile (see hermes: add
disable-toolsso operators can extend the driver's disabled tool set #341; that alone would cover this).loaded as skill context, keeping "things the agent learned" distinct from
"instructions the agent follows."
Why it matters
Skills are contract surface. Anything loaded every turn is effectively policy,
so write access to it is a privilege escalation from "agent memory" to "agent
self-modifying its own instructions" — fine for an interactive coding assistant,
risky for unattended long-running agents.
Environment
claw version 0.26.0, hermes driver,hermes-base:v2026.6.19-claw.3.