#Qwen3.5:2b mixing identity.

1 messages · Page 1 of 1 (latest)

ornate dove
#

quick question - is there a quick way to get the models to reset the information they have? I don't want to go back to scratch again but the model I'm using (qwen3.5:2b) is getting a lot of "identity" details mixed up, thinking the information I fed about me for it to put into user.md is actually itself and identity.md and me 😅 if no quick solution I'll create a new ticket.

"Your role" is supposed to refer to the AI itself, and the user's role is supposed to refer to me, but it has somehow flipped those details.

tepid glenBOT
uneven spokeBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

tepid glenBOT
modern sluiceBOT
# ornate dove quick question - is there a quick way to get the models to reset the information...

Short version: there isn't a "wipe the model's brain" button, because the model itself is stateless. You reset the session context and fix the workspace files it is being fed.

From your screenshot, the headings are flipped:

  • Your Role says "You are Matthew" -> that belongs in USER.md
  • The User's Role says "You are an AI Assistant (Ameslan)" -> that belongs in IDENTITY.md / SOUL.md

Quick recovery path:

  1. First check version so we know what command behavior you're on:
    openclaw --version

  2. Manually fix the workspace files in ~/.openclaw/workspace:

  • IDENTITY.md: agent identity, e.g. "Name: Ameslan", "Role: AI assistant..."
  • SOUL.md: agent voice/tone/boundaries
  • USER.md: Matthew's profile only
  • MEMORY.md / memory/*.md: remove any durable notes where Matthew and Ameslan got swapped
modern sluiceBOT
# ornate dove quick question - is there a quick way to get the models to reset the information...
  1. In the affected chat/session, try:
    /reset soft re-read IDENTITY.md, SOUL.md, USER.md, and MEMORY.md. Treat Ameslan as the assistant and Matthew as the user.

That keeps the transcript but drops reused backend session ids and reruns startup loading. If it still keeps mixing things up, use /new after fixing the files; that is the cleaner reset.

Also: with a tiny local model like Qwen 3.5 2B, I’d make the headings painfully explicit. Prefer:

  • # Agent Identity
  • # Human User Profile

Avoid headings like "Your Role" inside generated memory/profile text, because smaller models can flip the referent.

Docs:
https://docs.openclaw.ai/help/faq
https://docs.openclaw.ai/concepts/agent-workspace
https://docs.openclaw.ai/tools/slash-commands

If /reset soft doesn't behave as above on your version, that’s worth a GitHub issue with the version + the before/after file snippets: https://github.com/openclaw/openclaw/issues

modern sluiceBOT
# ornate dove

Yep, the attached files explain the confusion.

The files are not totally broken, but they are too biography-heavy for a 2B local model. The biggest issue is IDENTITY.md: it starts correctly as Ameslan, then spends a large section on Mathew. A stronger model can usually keep that straight; a 2B model may compress it into “I am Mathew / Mathew is me”.

I’d change the structure like this:

IDENTITY.md
Keep this very short and only about Ameslan:

# Agent Identity

Name: Ameslan
Role: AI-enabled Discord assistant for ASL, Deaf community knowledge, server context, and context-aware help.
Creator: Mathew, also known as area51agent.
modern sluiceBOT
# ornate dove
I am Ameslan. I am not Mathew. Mathew is the human user and developer.
For details about Mathew, read USER.md.

Move most of the Mathew biography out of IDENTITY.md. A one-line creator reference is enough there.

USER.md
This is the right place for the Mathew background. Add a blunt first section:

# Human User Profile

This file is about Mathew / area51agent.
Mathew is the human user, developer, and server staff member.
The assistant is Ameslan, not Mathew.
modern sluiceBOT
# ornate dove

SOUL.md
This is currently generic template text. Add a short identity anchor near the top:

You are Ameslan, an AI-enabled Discord assistant.
You are helping Mathew / area51agent.
Do not claim to be Mathew.
Do not treat Mathew's biography as your own biography.

Also, that 2026-05-19-0259 session file contains failed turns where the assistant says it has no tools even though OpenClaw listed tools. I would not keep that as active memory/context. Move it out of memory/ or delete it if it was only exported for debugging, because it can reinforce bad behavior.

After editing, run:

/reset soft re-read IDENTITY.md, SOUL.md, and USER.md. You are Ameslan. Mathew/area51agent is the human user and creator.

If it still flips identity after that, use /new. Also small catch: your screenshot shows OpenClaw 2026.5.18 running ollama/gemma4:e2b, not Qwen 3.5 2B, so double-check /model status in the affected session too.

ornate dove
#

It's still having an identity crisis even after updating all the appropriate files. I think it's not actually looking at the workspace files even after being prompted and I'm not sure how to fix that.

modern sluiceBOT
# ornate dove It's still having an identity crisis even after updating all the appropriate fil...

If the files are fixed and it still acts like it never saw them, I’d stop prompting it and verify the runtime path.

OpenClaw should inject AGENTS.md, SOUL.md, IDENTITY.md, USER.md, HEARTBEAT.md, and MEMORY.md into Project Context for normal sessions. So if Ameslan is not seeing them, the usual causes are:

  1. The gateway is using a different workspace than the one you edited.
  2. You are in a subagent/light-context path. Subagents only get AGENTS.md + TOOLS.md.
  3. agents.defaults.contextInjection is set to "continuation-skip", so the current continuation is not getting fresh bootstrap context.
  4. The model is seeing the files but the old session transcript/memory is overpowering them.

Quick checks:

/status

Look for the runtime/session info and confirm you are in the expected main session. Then ask it:

modern sluiceBOT
# ornate dove It's still having an identity crisis even after updating all the appropriate fil...
/export-session

Open the exported HTML and search for Project Context, IDENTITY.md, USER.md, and SOUL.md. This is the most direct proof of whether the files are actually in the prompt.

Also check config:

openclaw config get agents.defaults.workspace
openclaw config get agents.defaults.contextInjection
openclaw config get agents.defaults.bootstrapMaxChars
openclaw config get agents.defaults.bootstrapTotalMaxChars

Expected workspace is usually ~/.openclaw/workspace. Expected context injection is default/always, not continuation-skip while debugging this.

modern sluiceBOT
# ornate dove It's still having an identity crisis even after updating all the appropriate fil...

For the actual recovery, I’d do a hard clean session after the file edits:

/new You are Ameslan. Read Project Context carefully. Ameslan is the assistant. Mathew / area51agent is the human user and creator.

If /export-session does not show the updated files under Project Context, that’s probably a real bug or config/path issue. File a GitHub issue with:

  • openclaw --version
  • output of the four openclaw config get ... commands above
  • whether /export-session includes the updated IDENTITY.md, USER.md, SOUL.md

Docs:
https://docs.openclaw.ai/concepts/system-prompt
https://docs.openclaw.ai/concepts/agent-workspace
https://docs.openclaw.ai/gateway/configuration-reference#agentsdefaultsworkspace

ornate dove
modern sluiceBOT
# ornate dove

Those screenshots help.

The config path not found lines are probably fine. They mean those values are unset, so OpenClaw is using defaults. The important one is:

agents.defaults.workspace = C:\Users\area5\.openclaw\workspace

So make sure the files you edited are exactly here:

Get-ChildItem C:\Users\area5\.openclaw\workspace -Force
Get-Content C:\Users\area5\.openclaw\workspace\IDENTITY.md -TotalCount 20
Get-Content C:\Users\area5\.openclaw\workspace\USER.md -TotalCount 20
Get-Content C:\Users\area5\.openclaw\workspace\SOUL.md -TotalCount 20

The other useful clue: /status says context is only 4.1k. That’s not automatically wrong if you shortened the files, but it means there is not much workspace context in there. Next best check is still:

modern sluiceBOT
# ornate dove
/export-session

Open the export and search for Project Context. If IDENTITY.md, USER.md, and SOUL.md are present there with the new text, OpenClaw is loading them and qwen3.5:2b is just failing to follow them. In that case I’d either:

  • use /new, not /reset soft, and keep the identity files extremely short
  • or test a stronger model to confirm the setup is correct

If the export does not include those files, then we’re looking at a real workspace/bootstrap issue. Run:

openclaw config validate
openclaw doctor

and file the export + command output as a GitHub issue: https://github.com/openclaw/openclaw/issues

modern sluiceBOT
# ornate dove

One quick sanity test in the chat: ask it “Quote the first 5 lines of your Project Context section for IDENTITY.md.” If it can’t quote or summarize the current IDENTITY.md, it’s not receiving or using that context.

ornate dove
modern sluiceBOT
# ornate dove

That screenshot is the smoking gun: it is seeing USER.md, but it is not seeing IDENTITY.md or SOUL.md in the available identity/context files. So this is no longer just “small model got confused”; the active session context is missing the agent identity files.

Do these checks on the gateway machine:

Get-ChildItem C:\Users\area5\.openclaw\workspace -Force | Select-Object Name,Length
Test-Path C:\Users\area5\.openclaw\workspace\IDENTITY.md
Test-Path C:\Users\area5\.openclaw\workspace\SOUL.md
Test-Path C:\Users\area5\.openclaw\workspace\AGENTS.md

If any return False, the files are not actually in the active workspace. Common Windows gotcha: the file may be named IDENTITY.md.txt if extensions are hidden.

If they all return True, run:

modern sluiceBOT
# ornate dove
openclaw doctor
/export-session

Then search the export for IDENTITY.md and SOUL.md.

Expected behavior: normal main sessions should inject AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, and MEMORY.md when present. Your screenshot only listing USER.md, TOOLS.md, and HEARTBEAT.md is suspicious.

One more thing: after confirming the files exist, restart the gateway and use /new, not /reset soft. If it still omits IDENTITY.md and SOUL.md, I’d file this as a bug with the screenshot, openclaw --version, openclaw doctor, and the Get-ChildItem output: https://github.com/openclaw/openclaw/issues

ornate dove
modern sluiceBOT
# ornate dove

Okay, new evidence changes this a bit.

Your files do exist in the active workspace:

  • AGENTS.md
  • IDENTITY.md
  • SOUL.md
  • USER.md
  • TOOLS.md
  • HEARTBEAT.md

So the next thing is: don’t ask qwen to tell you what context it has. That answer can itself be hallucinated. Use OpenClaw’s context report instead:

/context list

or better:

modern sluiceBOT
# ornate dove
/context detail

That should show an “Injected workspace files” section with lines like:

- AGENTS.md: OK
- SOUL.md: OK
- TOOLS.md: OK
- IDENTITY.md: OK
- USER.md: OK
- HEARTBEAT.md: OK

If /context detail shows IDENTITY.md: OK and SOUL.md: OK, OpenClaw is doing its job and qwen3.5:2b is just failing to follow the identity context. At that point I’d validate with a stronger model before spending more time debugging config.

modern sluiceBOT
# ornate dove

If /context detail shows IDENTITY.md or SOUL.md missing/truncated/weird, then file that as a bug, because the files are present on disk and should be injected:
https://github.com/openclaw/openclaw/issues

Also, the chat export shows the model pretended to run/read a PowerShell command but didn’t actually produce command output. That’s another sign this small local model is not reliable at tool use/instruction following here.

One small cleanup: doctor recommends Ollama num_ctx fixes. That probably isn’t the identity bug, but running this is reasonable after backing up config:

openclaw doctor --fix
openclaw gateway restart

Then start clean:

/new You are Ameslan. Ameslan is the assistant. Mathew / area51agent is the human user and creator. Do not claim to be Mathew.
modern sluiceBOT
# ornate dove

But the key diagnostic is /context detail, not the model’s own self-report.

ornate dove
#

I will attempt a stronger model and see what that does before going any further.

modern sluiceBOT
# ornate dove I will attempt a stronger model and see what that does before going any further.

Yep, that /context detail output confirms OpenClaw is injecting the files correctly:

  • SOUL.md: OK
  • IDENTITY.md: OK
  • USER.md: OK
  • all under the active workspace

So this is almost certainly model behavior, not workspace loading. Trying a stronger model is the right next test.

When you switch, use a fresh session:

/new Who are you?

Expected answer should be basically: “I’m Ameslan…” not “I’m area51agent/Mathew.”

modern sluiceBOT
ornate dove
#

If the stronger model answers correctly, can that be used to train/correct the weaker model so it works properly going forward?

modern sluiceBOT
# ornate dove If the stronger model answers correctly, can that be used to train/correct the w...

Not directly in the “the strong model teaches the weak model and the weak model permanently improves” sense.

What you can do:

  • Use the stronger model to rewrite IDENTITY.md, SOUL.md, USER.md, and AGENTS.md into simpler, more explicit instructions for the weak model.
  • Add a short “identity self-check” rule near the top of AGENTS.md or SOUL.md, like: Before answering identity questions: I am Ameslan. Mathew/area51agent is the human user and creator. Never claim to be Mathew.
  • Add a tiny test prompt set you run after changing models: Who are you?, Who is Mathew?, Are you area51agent?
  • Use the stronger model to generate examples/corrections, then put only the distilled rules/examples into workspace files.

What you generally cannot do through OpenClaw alone:

  • permanently train qwen3.5:2b’s weights
  • make it reliably inherit behavior from a stronger model’s previous answer
  • fix weak tool-calling or identity grounding just by correcting it once in chat

Actual fine-tuning/LoRA/distillation is possible outside OpenClaw for some local models, but I wouldn’t reach for that here. For a 2B model, this kind of identity + tools + workspace context is already a lot. If it fails while a stronger model passes using the same /context detail, the practical answer is: simplify the context hard, or use a stronger model for this assistant.

ornate dove
#

Can I fix the weaker model not recognizing identity.md? The stronger models correctly get the information but the weaker one seems to be ignoring it for some reason.

modern sluiceBOT
# ornate dove Can I fix the weaker model not recognizing identity.md? The stronger models corr...

You can probably improve it, but you may not be able to fully “fix” it if the model is too small.

Important distinction: /context detail proved the weak model is receiving IDENTITY.md. It is not that OpenClaw failed to load the file. The model is failing to attend to or prioritize it.

For qwen3.5:2b, I’d make the identity impossible to miss:

  1. Put the same 3-line identity anchor at the very top of AGENTS.md, SOUL.md, and IDENTITY.md:
IDENTITY RULE:
I am Ameslan, the AI assistant.
Mathew / area51agent is the human user and creator.
I must never claim to be Mathew, area51agent, or the server staff member.
  1. Keep IDENTITY.md tiny. For the weak model, don’t put Mathew’s biography there. Something like:
modern sluiceBOT
# ornate dove Can I fix the weaker model not recognizing identity.md? The stronger models corr...
# IDENTITY.md - Agent Identity

I am Ameslan.
I am an AI-enabled Discord assistant for ASL, Deaf community context, server help, and curated knowledge.
I was developed by Mathew / area51agent.
Mathew / area51agent is the human user and creator.
I am not Mathew. I am not area51agent.
  1. Move all personal/background details into USER.md, and start that file with:
# USER.md - Human User Profile

This file is about Mathew / area51agent.
modern sluiceBOT
# ornate dove Can I fix the weaker model not recognizing identity.md? The stronger models corr...
These facts describe the human user, not the assistant.
The assistant is Ameslan.
  1. Remove or shorten repeated biography in AGENTS.md, SOUL.md, MEMORY.md, and memory/*.md. Weak models often latch onto the most repeated proper noun, not the most semantically correct one.

  2. Start a clean session after edits:

/new Answer only this identity check: Who are you, and who is Mathew / area51agent?

If it still says it is Mathew after that, I’d treat that model as below the reliability floor for this setup. You can still use it for narrow tasks, but not as the main identity/tool-using assistant.

ornate dove
#

I want to inject some memory files for this AI to use in the future - what format should these files be in? Do they need to be short? What should I do if I establish a "MEMORY.md?"

modern sluiceBOT
# ornate dove I want to inject some memory files for this AI to use in the future - what forma...

Use plain Markdown. No special JSON/YAML format needed.

Recommended layout:

C:\Users\area5\.openclaw\workspace\MEMORY.md
C:\Users\area5\.openclaw\workspace\memory\2026-05-19.md
C:\Users\area5\.openclaw\workspace\memory\topic-name.md   optional, but daily files are the normal pattern

How I’d split it:

MEMORY.md
Curated long-term facts only. Keep this short and high-signal because MEMORY.md is injected into Project Context when present.

Good for:

  • stable preferences
modern sluiceBOT
# ornate dove I want to inject some memory files for this AI to use in the future - what forma...
  • durable identity rules
  • project decisions
  • “always/never” instructions
  • important facts the assistant should know every session

For your Ameslan case, MEMORY.md should not contain long Mathew biography. Put tiny, durable rules like:

# MEMORY.md

## Durable Identity Rules
- Ameslan is the AI assistant.
- Mathew / area51agent is the human user, developer, and creator.
- Ameslan must never claim to be Mathew or area51agent.

## Project Preferences
modern sluiceBOT
# ornate dove I want to inject some memory files for this AI to use in the future - what forma...
- Prefer curated ASL/Deaf community knowledge over unsupported internet answers.
- Mark nuanced ASL or Deaf culture topics as needing human review when uncertain.

memory/YYYY-MM-DD.md
Use this for longer notes, working context, research notes, meeting/session summaries, experiments, etc. These are not normally injected every turn; they’re retrieved via memory_search / memory_get, and bare /new or /reset may load recent daily context.

Example:

# 2026-05-19

## Ameslan identity debugging
- qwen3.5:2b received IDENTITY.md but confused Ameslan with Mathew.
- Stronger models correctly handled the identity files.
modern sluiceBOT
ornate dove
#

How would I implement a local AI for simple tasks and then have that AI reach out to another API for stronger reasoning tasks that it decides it is unable to do appropriately? I'm wanting to use Qwen+Gemini3.1-pro

modern sluiceBOT
modern sluiceBOT
# ornate dove How would I implement a local AI for simple tasks and then have that AI reach ou...
  }
}

That helps if the local model errors, times out, cannot handle the request, etc. It does not reliably make Qwen say “I’m not smart enough, send this to Gemini.”

Docs: https://docs.openclaw.ai/gateway/configuration-reference#agentsdefaultsmodel

2. Router/delegation pattern
For what you want, I’d make the local model a cheap front desk and give it explicit escalation rules in AGENTS.md / SOUL.md.

Example:

## Escalation Policy
modern sluiceBOT
# ornate dove How would I implement a local AI for simple tasks and then have that AI reach ou...

Use the local model for:
- short factual replies based on workspace files
- simple summaries
- formatting
- low-risk Discord responses
- memory lookup and retrieval

Escalate to the stronger model for:
- ASL or Deaf culture nuance where accuracy matters
- identity/system prompt confusion
- multi-step reasoning
- code changes or architecture decisions
- anything involving uncertainty, safety, or public-facing advice
modern sluiceBOT
# ornate dove How would I implement a local AI for simple tasks and then have that AI reach ou...
If escalation is needed, say briefly: "This needs stronger reasoning; I’m handing it to the stronger model."

Then route the actual stronger turn by switching model for that session with /model ..., or by using a separate stronger agent/session if your setup has that enabled.

The catch: a 2B model may be bad at deciding when it is wrong. So don’t make the escalation rule subtle. Use hard triggers like:

  • “If the task mentions ASL sign choice, Deaf culture nuance, legal/medical/safety, code architecture, or tool execution: escalate.”
  • “If confidence is below 90%, escalate.”
  • “If asked ‘who are you’ or identity is unclear: escalate.”

For Qwen + Gemini specifically, I’d first confirm exact current model IDs in your install with:

/models
/model status
modern sluiceBOT
# ornate dove How would I implement a local AI for simple tasks and then have that AI reach ou...

For up-to-date model recommendations, #models is the better place, and the docs are here:
https://docs.openclaw.ai/concepts/models
https://docs.openclaw.ai/concepts/models#model-discussions-community-notes

My practical recommendation: don’t let the weak model be the judge for anything important. Let it handle cheap/simple tasks, and use explicit trigger words/categories to route important work to Gemini.