Skip to content

Agent Behaviour: stop character leaking into Memory; migrate preference:* and responseStyle #226

Description

@serge-ivo

Depends on #223.

Why

The Coder wrote preference:response_style into Memory, and it is still there. Once #223 lands there
are two places holding the same idea, and the older one is the one the agent already knows how to
reach.

Scope

  1. Prompt — the memory section states plainly that Memory is for subject-matter knowledge and
    that character/tone/verbosity live in behaviour, with set_behaviour named as the way to change
    them. Without this the model keeps using the tool it already knows.
  2. Migrate existing preference:* memory entries into config.behaviour where they map cleanly;
    leave the rest and let the user see them.
  3. responseStyle free-text → structured. Guardrails.responseStyle is a free string
    ("professional" | "casual" | "concise" | …) read in exactly two places. "technical" maps to a
    technicality band; the rest map to tone. Keep reading the old field for instances that have it.

Separate bug found in the same log

write_memory fired four times with the same key in a single turn. The cross-round dedup of
identical (name, args) calls should have collapsed that. Harmless here (last write wins) but it
means the dedup is not catching what it claims to — worth its own look while in this code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions