Skip to main content

Command Palette

Search for a command to run...

What an AI Assistant Should Actually Remember

Memory, skills, and the difference between personal context and repeatable workflows

Updated
10 min read
What an AI Assistant Should Actually Remember
A

I am computer science undergrad student ,who loves to learn and share things

One of the easiest mistakes to make when building an AI assistant is assuming that “more memory” automatically means “better assistant.”

It sounds obvious at first: if the assistant remembers everything, it should become more useful over time. It should know your preferences, your projects, your writing style, your tools, your schedule, and all the tiny details that usually get lost between conversations.

But in practice, an assistant that remembers everything becomes noisy.

It starts carrying around stale assumptions. It overfits to one-off conversations. It treats temporary preferences like permanent truth. It may remember the exact wrong thing with too much confidence.

The real question is not: how do we make the assistant remember more?

The better question is: what should an assistant actually remember?

And just as importantly: when should something become memory, when should it become a skill, and when should it simply be forgotten?

Memory is not a transcript

A useful assistant should not treat memory as a giant chat log.

A transcript is what happened. Memory is what remains useful later.

Those are different things.

If I tell an assistant, “I’m debugging a Next.js issue right now,” that may be useful for the current session. But it probably does not need to become long-term memory.

If I tell it, “When I write technical notes, I prefer concept-first explanations with concrete examples,” that is durable. It should remember that.

If I say, “Use this folder for my Obsidian notes,” that is also durable. Forgetting it causes repeated friction.

The assistant should not store every message. It should extract stable facts, preferences, workflows, and decisions that reduce future back-and-forth.

Good memory feels invisible. You notice it because the assistant stops asking the same question twice.

Bad memory feels creepy or annoying. You notice it because the assistant brings up irrelevant details or acts like yesterday’s temporary context is now your identity.

The three buckets: context, memory, and skills

I think assistant knowledge should be split into three buckets.

1. Temporary context

This is the working set for the current task.

Examples:

  • the bug we are debugging right now

  • the article draft currently open

  • the command output from five minutes ago

  • the user’s latest instruction in this thread

  • a design choice that only matters for this feature branch

Temporary context should be easy to use and easy to discard. Not everything needs ceremony. Most things belong here.

2. Long-term memory

This is durable information that will probably be useful across many future sessions.

Examples:

  • the user’s preferred name and timezone

  • canonical folders, repos, and tools

  • writing style preferences

  • recurring project goals

  • important constraints like “do not send emails without asking”

  • personal workflows that are stable but not complex enough to become a skill

Memory should answer the question: will this help the assistant behave better next week?

If the answer is no, it probably does not belong there.

3. Skills

Skills are different from memory.

Memory says: remember this fact or preference.

A skill says: when this kind of task appears, follow this repeatable procedure.

That distinction matters.

For example, “Abhi prefers detailed beginner-friendly notes” is memory.

But “when Abhi asks to create a tutorial note, save it to the canonical Obsidian folder, use this structure, include examples, and run a Nextcloud scan afterward” is a skill.

The skill is not just remembering a preference. It is packaging a workflow.

When repeatable work becomes a skill

Some agent systems make this workflow explicit. In OpenClaw, for example, a skill is a small instruction package the agent can load when a certain kind of task appears. Hermes-style systems use a similar idea: repeated work should not live only in the model’s memory or in scattered chat history. It should become a reusable workflow.

The idea is simple: if an agent repeatedly performs the same kind of task, capture the procedure as a skill. The next time that task appears, the agent does not have to rediscover the process from scratch.

That is extremely useful.

But it also creates a temptation: turning everything into a skill.

I do not think that is the right move.

If every preference, tiny habit, and one-off instruction becomes a skill, the system becomes heavy. The assistant spends more time deciding which skill applies than actually helping. Skills start overlapping. Some become stale. Others encode workflows that were only useful once.

A skill should exist when there is a repeatable pattern with enough structure to justify it.

Good candidates for skills:

  • writing a Hashnode-ready blog draft

  • generating a tailored resume from a job description

  • creating a tutorial-style Obsidian note

  • triaging GitHub issues

  • running a health check on a server

  • using a specific browser automation flow

  • preparing a release checklist

Bad candidates for skills:

  • “I like concise replies”

  • “Use this nickname for me”

  • “This project is important this week”

  • “Remember that I prefer Python examples”

  • “For this one article, use a slightly more opinionated tone”

Those belong in memory or temporary context.

A good rule of thumb:

If it is a stable preference, store it in memory. If it is a repeatable procedure, make it a skill. If it only matters right now, keep it in context.

OpenClaw’s approach: tell the agent what to store or create

In OpenClaw, this distinction becomes practical.

You can tell the agent to remember things. You can also tell it to create or update skills for repeatable workflows.

That gives the user more control over the assistant’s evolution.

Instead of hoping the model magically guesses what matters, the system can support explicit instructions like:

Remember that I prefer technical notes with detailed examples.

or:

Create a skill for writing my blog posts so future drafts follow this structure.

or:

Update the resume tailoring skill with this new rule.

This is important because users should not have to re-explain stable preferences forever, but they also should not have every random message fossilized into permanent memory.

The assistant should be proactive, but not presumptuous.

A strong agent should sometimes say:

This looks like a repeatable workflow. Want me to turn it into a skill?

Or:

This seems like a durable preference. I’ll remember it for next time.

That small distinction makes the assistant feel much more trustworthy.

What should actually go into memory?

Here is my personal filter.

An assistant should remember things that are:

Durable

They remain true beyond the current session.

“Use my Nextcloud Obsidian vault for notes” is durable. “I am currently comparing two blog titles” is not.

Actionable

They change how the assistant behaves.

“User likes practical examples” is actionable. “User once mentioned React in passing” is probably not.

User-approved or clearly implied

Some things should only be stored when the user asks. Personal details, sensitive context, and preferences that could be wrong should not be silently collected.

The assistant can infer lightweight working context, but durable memory should be handled carefully.

Small enough to stay useful

Memory should be compressed.

Do not store the whole conversation. Store the lesson.

Instead of:

On Tuesday, the user asked me to write a note about web workers, then corrected the examples, then said they like this style...

Store:

User prefers technical notes that are concept-first, sectioned, and include detailed examples in the style of the web-workers note.

That is useful.

What should become a skill?

A workflow should become a skill when it has triggers, steps, and quality checks.

For example, “write a blog post” is not just a preference. It has a shape:

  • detect the topic

  • create a strong title and slug

  • include frontmatter

  • write in the user’s style

  • save to the right folder

  • run any required indexing step

  • respond with the saved path

That deserves a skill.

The same applies to job applications, note generation, browser automation, server health checks, inbox triage, and other repeatable workflows.

The key is that a skill should reduce future cognitive load. It should make the agent more reliable, not more bureaucratic.

If a skill does not improve reliability, it is probably just documentation wearing a costume.

My take: memory should be boring, skills should be opinionated

This is the part I care about most.

Memory should be boring.

It should store stable facts, preferences, constraints, and pointers. It should not be dramatic. It should not try to model the user’s soul from three messages. It should not turn every interaction into permanent identity.

Skills, on the other hand, should be opinionated.

A good skill should encode a clear way of doing a task. It should have defaults. It should know the destination folder. It should know the expected format. It should know what “done” means.

Memory helps the assistant know you.

Skills help the assistant do things for you.

Those are related, but they are not the same.

The danger of too much automatic memory

A lot of AI products talk about memory like it is magic. But automatic memory has real failure modes.

It can store stale information. It can create privacy problems. It can make the assistant overconfident. It can also make users feel watched instead of helped.

There is a subtle difference between:

“Nice, it remembered how I like my notes structured.”

and:

“Why did it bring up that random thing I said two months ago?”

The first feels useful. The second feels invasive.

This is why I prefer memory systems where the assistant can write things down, but the user can also explicitly say what should be remembered, forgotten, or promoted into a skill.

The assistant should not be a hoarder. It should be a careful librarian.

A practical framework

When deciding what to do with new information, the agent can ask three questions.

First:

Will this matter after the current task?

If no, keep it in temporary context.

Second:

Is this a stable fact, preference, or constraint?

If yes, store it in memory.

Third:

Is this a repeatable workflow with steps and quality checks?

If yes, create or update a skill.

That is the whole system.

Context is for now.

Memory is for later.

Skills are for doing it better next time.

Closing thoughts

The best AI assistant is not the one that remembers the most.

It is the one that remembers the right things, forgets the noise, and turns repeated work into reliable workflows.

That is the difference between a chatbot with a long transcript and an actual assistant that compounds over time.

For OpenClaw, I think the sweet spot is clear: let the user tell the agent what to remember, let the agent suggest when something should become a skill, and keep the boundary between memory and skills sharp.

Not every detail deserves permanence.

Not every workflow deserves a skill.

But when the assistant gets the distinction right, it starts to feel less like software you operate and more like a teammate who actually learns how to work with you.