Skip to content

hermes: cron advertises memory tool while skip_memory disables it #350

Description

@mostlydev

claw version

claw version 0.26.0 (fb7ae72721f31573c3352b0d64be6c7bf462fb3c)

The current source/default Hermes base (v2026.6.19-claw.3) has the same pinned upstream scheduler behavior.

Driver type

hermes

What happened

Hermes scheduled invocations construct the agent with skip_memory=True so cron prompts do not mutate user representations. That correctly leaves the agent's memory store unset, but the scheduled turn still advertises the memory tool from the normal platform toolset.

When a scheduled model selects that advertised tool, memory_tool.py returns the deterministic runtime error:

Tool memory returned error | Memory is not available. It may be disabled in config or this environment.

The job can still finish successfully, so this is capability-advertisement drift rather than a missing mount, disabled memory configuration, cllama ambient-memory failure, or job failure. Repeated production observations occurred only on scheduled Hermes jobs; interactive Hermes turns should keep their working native memory tool.

Expected: a Hermes invocation should advertise only tools that are usable in that invocation. When skip_memory=True, omit memory from that agent's resolved tool list. Keep native memory enabled for interactive turns.

The fix belongs at the Hermes runner/compatibility boundary. It should not require a global x-claw.hermes.disable-tools: [memory], a prompt workaround, or another memory service. If upstream Hermes accepts the behavior, the Clawdapus compatibility patch can be temporary.

Suggested regression coverage:

  • scheduled agent with skip_memory=True: memory is absent from the resolved tools
  • ordinary interactive agent with memory enabled: memory remains present
  • cron execution and portable memory mounts/config remain otherwise unchanged

Relevant pod YAML snippet

services:
  analyst:
    x-claw:
      invoke:
        - schedule: "*/15 * * * *"
          name: scheduled-check
          message: "Run the scheduled check."
          to: operations

claw doctor output

Not relevant: pod health, generated Hermes config, and portable memory mounts are healthy.

Logs

Tool memory returned error | Memory is not available. It may be disabled in config or this environment.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions