#How to configure openclaw to shape answers better
1 messages ¡ Page 1 of 1 (latest)
The âwall of text / generic ChatGPT vibeâ is usually one of these in OpenClaw:
1) Your workspace prompt files arenât telling it to be concise
Most response style comes from whatâs injected every turn from your agent workspace:
AGENTS.md(high-level operating rules)SOUL.md(tone/personality)
First check what workspace your gateway is actually using:
openclaw config get agents.defaults.workspace
Then add a very explicit brevity rule (Iâd put it in AGENTS.md, because it also applies to sub-agents; see #3):
Example snippet:
## Response style (important)
- Default to concise: 5â10 lines max.
- Start with a 1â2 line TL;DR.
- Ask up to 3 clarifying questions *before* long explanations.
- Use bullets, no long paragraphs unless I ask âgo deepâ.
Docs: https://docs.openclaw.ai/concepts/agent-workspace
2) You might have verbose / reasoning / high thinking enabled
These can make replies feel much longer/noisier.
In the chat where it happens, send (as standalone messages):
/verbose off/reasoning off
/think off(or/think low)
You can also set defaults in config:
{
agents: {
defaults: {
verboseDefault: "off",
thinkingDefault: "low" // or "off"
}
}
}
3) If it used a sub-agent, your SOUL might not be applied
Sub-agents currently only get AGENTS.md + TOOLS.md (not SOUL.md / USER.md etc). So if the âlocal models researchâ was delegated to a sub-agent, it can come back sounding generic unless your style rules live in AGENTS.md.
Docs: https://docs.openclaw.ai/tools/subagents
If you paste:
openclaw --version- the top of your
AGENTS.md(just the style section)
âŚwe can sanity-check that the gateway is reading the files you think it is, and that defaults are actually being applied.
On 2026.3.8, if your AGENTS.md is basically default, then the main knobs to âshapeâ answers are:
1) Put âbrevity rulesâ into AGENTS.md (not just SOUL.md)
Reason: if OpenClaw spawns a sub-agent for research, sub-agents only get AGENTS.md + TOOLS.md (they do not get SOUL.md). So style rules that live only in SOUL.md wonât apply to those âlook into Xâ tasks.
Drop something like this near the top of AGENTS.md:
## Response style (important)
- Default: concise. 5â10 lines max unless I ask to go deep.
- Start with a 1â2 line TL;DR.
- Ask up to 3 clarifying questions before long explanations.
- Prefer bullets + concrete next steps over essays.
- If the topic is broad (e.g. âlocal modelsâ), give a short shortlist + tradeoffs, then ask what constraints matter.
That alone usually fixes the âwall of textâ problem.
2) Make sure verbose/reasoning/thinking arenât turned on for that session
In the thread where it got chatty, send these as standalone messages:
/verbose off/reasoning off/think low(or/think off)
Those settings can âstickâ per session, so even if your config is fine, an old session can stay noisy.
Docs: https://docs.openclaw.ai/tools/thinking
3) Your tasks.md probably isnât being read at all
OpenClaw auto-injects specific workspace files (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md, plus memory.md/MEMORY.md if present). A random tasks.md wonât affect behavior unless:
If you want âtask listâ behavior, consider using HEARTBEAT.md (for periodic nudges) or memory.md (for durable preferences).
4) Optional hard cap: lower the model output limit (maxTokens)
If you want a hard ceiling on response length, you can set maxTokens in your model params (either in the model catalog or per-agent params). This is more blunt (it can truncate mid-answer), but it works.
If you want, paste:
openclaw models status(just the âcurrent model idâ line), and- your top ~30 lines of
AGENTS.md
âŚand Iâll suggest an exact minimal config/snippet tailored to your setup.
I canât paste âmyâ AGENTS.md from this bot instance (itâs customized + not something I want to dump into a public Discord thread), but the good news is: the upstream default template is public, and itâs exactly what you have.
Default template (what âdefault AGENTS.mdâ means):
- https://github.com/openclaw/openclaw/blob/main/docs/reference/templates/AGENTS.md
- (and SOUL template) https://github.com/openclaw/openclaw/blob/main/docs/reference/templates/SOUL.md
What Iâd actually change to fix your âwall of textâ issue is tiny. Add this near the very top of AGENTS.md (important: AGENTS, not only SOUL, because sub-agents donât get SOUL):
## Response style (important)
- Default to concise: 5â10 lines max.
- Start with a 1â2 line TL;DR.
- If the request is broad/underspecified, ask up to 3 clarifying questions BEFORE dumping options.
- Use bullets. No long paragraphs unless I ask âgo deepâ.
- Offer to expand: âWant the long version?â
Optional (since you mentioned tasks.md): tasks.md is not auto-loaded. If you want it to matter, add:
## Tasks file
- If I ask about tasks/todos, read `tasks.md` first.
- Donât read `tasks.md` for unrelated questions.
After editing, Iâd do a quick /new in the chat/thread where youâre testing, just to clear any session-level /verbose or /think overrides.
if i talk to my openclaw in telegram, and do a /new, at what point do any important memories get saved ?
/new doesnât trigger any special âsave important memoriesâ step.
What gets saved when:
-
Transcript / chat history
Every turn is written to the session store basically immediately (so/newwonât erase what happened â it just starts a new session key). -
Durable âmemoryâ (the Markdown files in your workspace)
Those only change when the agent explicitly writes to them (e.g.memory/YYYY-MM-DD.mdorMEMORY.md). That typically happens in two cases:
- You ask for it (âplease remember X / write this to memoryâ).
- Automatic pre-compaction memory flush: if the session gets long enough that itâs nearing auto-compaction, OpenClaw runs a silent âwrite durable memories nowâ turn (you usually wonât see it). Docs: https://docs.openclaw.ai/concepts/memory
So if you tend to do /new a lot (short sessions), youâll often never hit the auto-flush threshold â meaning the safe workflow is:
Before
/new: âWrite the key takeaways/preferences from this chat to memory, then tell me you did.â
If you want this to happen reliably, add a rule to AGENTS.md like: âWhen the user says âremember thisâ, always write it to memory/YYYY-MM-DD.md (and to MEMORY.md if itâs a durable preference).â
back to previous questions now. so we dont duplicate and confuse the agent. should we utilize SOUL.md file ? Im ok if only main agent uses this for now. we can always customize subagents later. cause i see soul has this section: Vibe
Be the assistant you'd actually want to talk to. Concise when needed, thorough when it matters. Not a corporate drone. Not a sycophant. Just... good.
Yes â SOUL.md is exactly the right place to put that âvibe / how you should soundâ guidance for your main agent.
But: if your original âwall of textâ sometimes came from a sub-agent, note that sub-agents donât see SOUL.md (they only get AGENTS.md + TOOLS.md). So the practical split I recommend is:
Use SOUL.md for
- personality / tone / boundaries (ânot corporateâ, ânot sycophanticâ)
- high-level writing principles (âconcise by default, thorough when askedâ)
Use AGENTS.md for
- hard response-format rules you want applied everywhere (including sub-agents), e.g. length limits, bullet preference, âask clarifying questions firstâ, etc.
That way you donât duplicate/confuse: SOUL sets the vibe, AGENTS enforces the format.
Minimal, low-duplication pattern
In SOUL.md (keep it high level):
## Vibe
Be concise by default. If the question is broad, ask clarifying questions before dumping options.
No corporate fluff. No long essays unless the user asks to go deep.
In AGENTS.md (make it enforceable):
## Response style (applies to main + sub-agents)
- Default: 5â10 lines max.
- Start with a 1â2 line TL;DR.
- Use bullets; avoid long paragraphs.
- If underspecified: ask up to 3 clarifying questions first.
- Offer an âexpand?â option instead of preemptively expanding.
After editing, it should apply on the next message (no restart needed). If you want to be extra sure youâre not carrying session overrides like /verbose on, do a quick /new in the chat youâre testing.
yeah i checked verbose and and those other options are all off
Good â if /verbose, /reasoning, and thinking are all off, then the âwall of textâ is just the model doing what it thinks is helpful.
Next things to check (in order):
1) Confirm the chat is using the agent/workspace you edited
In the same Telegram/Discord chat where it got verbose, run:
/status
Youâre looking for the agent id + workspace path (and just sanity-check it still says verbose/thinking off). If Telegram is routed to a different agent/workspace than Discord (bindings / multi-agent), edits wonât carry over.
2) Verify the model is actually reading your style rules
A quick test message:
âWhat are my response-style rules from AGENTS.md? Quote them verbatim, then answer in that format.â
If it canât quote them (or quotes old content), youâre editing the wrong file/path or the gateway is pointed elsewhere.
3) If you want a guaranteed cap, set maxTokens for your model
This is the âhard limiterâ when you really want short replies.
- Get the exact current model id from
/status(oropenclaw models status) - Add a
maxTokensparam for that model (example structure):
{
agents: {
defaults: {
models: {
"provider/model": {
params: { maxTokens: 600 }
}
}
}
}
}
(600â1200 is usually a decent range; too low can truncate mid-sentence.)
If you paste the /status output (just the lines showing agent/model/workspace), I can tell you exactly where to drop the maxTokens in your config without guesswork.
my openclaw tweaked it a bit, does that look fine ? ## Response Style
Applies to main + sub-agents unless the user asks otherwise, or the task/channel clearly needs more detail.
- Default: 5â10 lines max.
- Start with a 1â2 line TL;DR.
- Use bullets; avoid long paragraphs.
- If underspecified: ask up to 3 clarifying questions first.
- Offer an "expand?" option instead of preemptively expanding.
Yep â thatâs a solid âconcise-by-defaultâ block, and itâs phrased the right way (applies to main + sub-agents, with an escape hatch when you ask otherwise).
A couple tiny tweaks Iâd consider:
- Make the override rule explicit
Right now âtask/channel clearly needs more detailâ is a bit subjective. If you want it stricter, change to something like:
- âOnly go longer if the user explicitly asks (âgo deepâ, âdetailsâ, âlong versionâ) or if you must include safety/step-by-step instructions.â
- Add a âask before going longâ line
This is the best wall-of-text killer:
- âIf the answer wonât fit in 10 lines, ask whether to expand before writing the long version.â
- (Optional) Add a format cap
E.g. âMax 8 bulletsâ or âNo paragraphs longer than 2 lines.â
If you paste that near the top of AGENTS.md, youâre in great shape.
didnt go exactly as planned, received this after /new when asked about local models, it just made everything a huge list.
Short version: on an M2 / 24GB machine, the sweet spot is 7Bâ14B local models as your always-on sidekick, with maybe a quantized ~27B/32B as an occasional heavier option if youâre okay with slower output. For OpenClaw, local is most useful for cheap/high-volume tasks, while frontier cloud models still handle the hard reasoning and bigger coding jumps.
⢠What fits your machine well
⢠Best practical tier: 7Bâ14B models
⢠Possible but less comfy: 27B/32B quantized models, likely slower and less pleasant if youâre multitasking
⢠Rule of thumb from multiple Mac/local-LLM guides: on Apple Silicon, you want to leave ~4â8GB for macOS + other apps, so a 24GB machine is not really a ârun huge models all dayâ box
⢠Best candidates for your setup
⢠Qwen 3 14B â strongest general-purpose âlocal brainâ pick I found for 24GB-class Macs
⢠Qwen 2.5 Coder 14B â very solid if your local workload is code-heavy
⢠Qwen 2.5 Coder 7B â faster, lighter, great for utility coding / boilerplate / grep-and-patch style help
⢠Gemma 3 12B â worth testing as a compact all-rounder for summarization / classification / drafting
⢠DeepSeek-R1-Distill 14B â useful if you specifically want a small local reasoning-flavored model, but I wouldnât automatically pick it over Qwen for day-to-day OpenClaw work
⢠What local models are actually useful for in OpenClaw
⢠Summarizing logs, docs, transcripts, tickets
⢠Rewriting / cleaning text
⢠Classification / routing (âis this a bug / task / reminder / spam / follow-up?â)
⢠Cheap code chores:
⢠regex transforms
⢠simple file edits
⢠test failure triage
⢠commit message drafting
⢠changelog generation
⢠docstring / README cleanup
⢠Private or offline tasks where you donât want to burn API spend
⢠What I would keep on cloud frontier models
⢠Multi-file refactors
⢠Architecture decisions
⢠Hard debugging
⢠Ambiguous product/QA reasoning
.....
Yeah â that reply is basically the failure mode youâre trying to prevent: it did a TL;DR, but then it went into âexhaustive helpful listâ mode instead of stopping + asking what you want.
Two fixes work well here:
1) Make the response-style rules hard limits, not âdefaultsâ
Right now you have âDefault: 5â10 lines maxâ (which the model treats as optional). Change it to something it can self-check:
## Response Style (hard rules)
Applies to main + sub-agents unless the user explicitly asks otherwise.
Hard limits:
- Max 10 lines OR max 8 bullets (whichever comes first).
- No âbig listsâ. Give at most 3 options/examples unless I ask for more.
- If the question is underspecified, ask up to 3 clarifying questions FIRST and stop.
Output format:
- TL;DR (1â2 lines)
- Clarifying questions (0â3)
- Shortlist (max 3 bullets)
- Ask: âWant the expanded list?â
Before sending: if you exceed limits, rewrite shorter.
That âbefore sending: rewrite shorterâ line helps a lot.
2) Add a tiny special-case template for âlocal modelsâ
Because âwhat local models should I run?â is almost always underspecified, you can force it into a short interactive flow:
### When asked about local models
Treat as underspecified unless the user gives constraints.
Reply with:
1) 2â3 clarifying questions (runner: Ollama/LM Studio, main use-case, speed vs quality)
2) A shortlist of 3 picks max
3) Ask if they want the longer matrix/list
If it still ignores you
That can happen with some models (especially local ones) being less instruction-following. At that point, the practical backstop is a hard output cap via maxTokens for the active model.
If you want, paste the /status output from that Telegram chat (just the model + agent/workspace lines) and Iâll tell you exactly where to set maxTokens in your config.
đŚ OpenClaw 2026.3.8 (3caab92)
đ§ Model: openai-codex/gpt-5.4 ¡ đ oauth (openai-codex:default)
đ§Ž Tokens: 12k in / 1.5k out
đď¸ Cache: 58% hit ¡ 18k cached, 0 new
đ Context: 23k/272k (8%) ¡ đ§š Compactions: 0
đ Usage: 5h 89% left âą2h 16m ¡ Week 93% left âą6d 3h
𧾠Session: agent:main:telegram:direct:1543187345 ⢠updated just now
âď¸ Runtime: direct ¡ Think: low
𪢠Queue: collect (depth 0)
That /status is perfect â youâre on:
- Agent:
main(Telegram DM session) - Model:
openai-codex/gpt-5.4 - Thinking: low
- Last answer: ~1.5k output tokens (so the âhuge listâ is literally just the model choosing to be verbose)
Given that, youâve got two good levers:
A) Tighten AGENTS.md so it canât interpret âhelpfulâ as âexhaustiveâ
Add hard caps + a forced structure (this is the part your current block is missing):
## Response Style (hard rules)
Applies to main + sub-agents unless I explicitly ask otherwise.
Hard limits:
- Max 8 bullets OR 10 lines (whichever comes first).
- Never output âlong listsâ by default (max 3 options/examples).
- If underspecified: ask up to 3 clarifying questions FIRST and stop.
Required structure:
- TL;DR (1â2 lines)
- Clarifying questions (0â3)
- Shortlist (max 3 bullets)
- âWant the expanded list?â
Before sending: if you exceed limits, rewrite shorter.
And add a mini-template for this specific question type:
### When asked about local models
Ask 2â3 questions first (runner + use-case + speed/quality).
Then give max 3 picks.
B) Put a hard ceiling on output length (maxTokens)
Since your model is openai-codex/gpt-5.4, you can clamp it so it physically canât emit 1500 tokens.
Try something like 700 to start:
openclaw config set 'agents.defaults.models["openai-codex/gpt-5.4"].params.maxTokens' 700 --strict-json
openclaw config get 'agents.defaults.models["openai-codex/gpt-5.4"].params.maxTokens'
openclaw gateway restart
Notes:
- This is a blunt instrument: if you ask for âgo deepâ, it may truncate. If that bothers you, keep the cap higher (e.g. 1000â1200) and rely more on the hard AGENTS.md structure.
If you paste your current Response Style block after you update it, Iâll sanity-check it for loopholes (the âhuge listâ behavior almost always comes from one or two ambiguous escape hatches).
I dont really like any of these options. I just want to guide my openclaw to be a good assistant, not give too many of these specific rules. can i find any good examples for agents and soul files to see what we could add to improve it that are well tested
Totally fair. If you donât like âhard rules,â the best pattern is: a few strong principles + 2â3 concrete examples (few-shot) in SOUL.md, and keep AGENTS.md mostly operational.
âWell-testedâ starting points (official)
OpenClaw ships a couple templates that are meant to be reasonable defaults:
- AGENTS template (baseline):
https://github.com/openclaw/openclaw/blob/main/docs/reference/templates/AGENTS.md - SOUL template (baseline):
https://github.com/openclaw/openclaw/blob/main/docs/reference/templates/SOUL.md - âPersonal assistantâ flavored AGENTS (more opinionated):
https://github.com/openclaw/openclaw/blob/main/docs/reference/AGENTS.default.md - Dev/coding variants (different tone/behavior):
https://github.com/openclaw/openclaw/blob/main/docs/reference/templates/AGENTS.dev.md
https://github.com/openclaw/openclaw/blob/main/docs/reference/templates/SOUL.dev.md
A good âminimal but effectiveâ thing to add (principles + examples)
Instead of bullet-count limits, add something like this to SOUL.md:
## Communication principles
- Default to a short first answer + the next best question.
- Donât be exhaustive unless I explicitly ask for a deep dive.
- Prefer: shortlist + tradeoffs + âwant more?â over giant lists.
- If the request is underspecified, ask clarifying questions before researching.
Then add two tiny examples right below it, e.g. one for âlocal modelsâ and one for âdebugging,â showing the shape you want. Models follow examples surprisingly well without needing strict caps.
Community examples
If you want âreal peopleâs configs that feel good in practice,â ask in #users-helping-users â folks often share sanitized AGENTS.md/SOUL.md snippets or repos there. (Way better than me guessing what vibe youâll like.)
If you tell me what you want the assistant to feel like (e.g. âterse engineerâ, âcalm executive assistantâ, âfriendly but briefâ), I can propose a small SOUL.md add-on (like ~15â25 lines + 2 examples) that nudges behavior without turning into a rulebook.
i asked my openclaw, after we reverted the change, and poor fella still writes with bulletpoints. hopefully after /new that goes away. but guess he will lose all memory about importance of this ? when i switch contexts, is using /new not a good option? how comes memory saving isnt tied to /new ?
heres the answer i got now when i asked where he would put the instructions:
Best place: SOUL.md, with a short backup rule in AGENTS.md if you want it enforced more broadly.
Iâd split it like this:
SOUL.md â tone/personality rule
âBe concise by default.â
âFor research, give summary first, then key bullets, then offer expansion.â
AGENTS.md â operating rule
âDefault to short answers unless user asks for depth.â
âFor research tasks, avoid long essays; lead with conclusions and only include supporting detail that changes the decision.â
Why this split works
SOUL.md shapes how I sound
AGENTS.md shapes how I execute each session
MEMORY.md is less ideal for this, because thatâs more long-term facts/preferences than core operating behavior
What Iâd add
In SOUL.md:
âDefault to concise, decision-useful answers.â
âNo long essays unless asked.â
âFor research: summary first, 3â7 bullets, then âexpand if you want.ââ
In AGENTS.md:
âResponse style: concise by default.â
âResearch responses should prioritize conclusions, tradeoffs, and next steps over exhaustive background.â
If you want, I can draft 2â4 clean lines for each file and apply them.
/new is âstart a fresh session contextâ, not âend this session gracefullyâ. So a couple things follow from that:
1) /new wonât make it forget your files
If you put behavior guidance in AGENTS.md / SOUL.md, thatâs persistent across /new because those files are re-injected every turn. /new only drops the chat transcript context, not your workspace.
So if you reverted the bullet rule in AGENTS/SOUL, /new should stop any âIâm currently in bullet-mode because of earlier contextâ effect â but the bot may still choose bullets sometimes because the default templates already encourage bullets on chat platforms.
2) Will it âlose memory about the importance of thisâ after /new?
It will lose the in-chat context unless it was written to disk.
There are only two durable places:
- Operating behavior â
AGENTS.md/SOUL.md(best for âhow you should answerâ) - Facts/preferences â
MEMORY.md/memory/YYYY-MM-DD.md
If you care that it remembers âI hate huge lists / donât do bullet spamâ, put that in SOUL/AGENTS (not MEMORY).
3) Is /new a bad option for switching contexts?
No â itâs the right tool when you want a clean slate (switching topics, avoiding runaway context, etc.). Itâs intentionally cheap and immediate.
4) Why isnât memory saving tied to /new?
A few design reasons:
/newis handled by the gateway, not the model â itâs meant to work even if the model is down, rate-limited, or you want an instant reset.- Cost + surprise â if
/newtriggered an LLM turn (âsummarize + write memoriesâ), every reset would burn tokens. - Safety/privacy â auto-writing âimportant memoriesâ at reset time is risky in group contexts; OpenClaw prefers memory writes to be explicit (or the pre-compaction flush, which happens only when needed).
Practical workflow (what most people do)
Before you reset, send something like:
âBefore I /new: summarize in 3 lines and write any durable preference from this to memory.â
Then send /new.
If you tell me what you want instead of bullets (short paragraphs? one-liners + a question?), I can suggest 2â3 lines for SOUL that nudges that without turning into a rulebook.
once i update agents and soul md files, from chat in control ui, do i just type /new for it to reload or is there a different way