How to stop re-explaining yourself to every AI: structuring your agent.md

The most valuable thing you give an AI isn't prompts — it's context: your style, rules, projects. Here's how to keep it in your own files and make it shared across every AI, from ChatGPT to Cursor.

Author: Michael Kokin ·

# How to stop re-explaining yourself to every AI

Write about yourself and your projects once — and any AI, from ChatGPT to Cursor, will answer already knowing you, no long intros.

---

The most valuable thing you give an AI isn't prompts — it's context: memory of your style, your rules, your projects, and the mistakes you've already worked through. A prompt lasts a minute; context works for you for years.

The idea is to make AI your second brain. Instead of holding every project detail in your head and re-explaining it, the AI remembers it for you and leans on it. People already run both work and personal life this way. We won't build a full Personal OS in this guide — we'll start with the simple, most useful part: one context that every one of your AIs can see — browser chatbots and agents like Cursor alike.

The catch: right now context is locked inside one platform — Claude, Cursor, ChatGPT, Grok. Switch to another and you explain everything again. The fix — keep context in your own files and connect any AI to them.

---

What context is

Context is everything an AI should know about you so it doesn't have to ask again. Broken down, it's a few simple things:

Normally you re-explain all of this in every new chat. The point of this guide is to write it down once and hand it to any AI.

---

Where to keep your context

| Approach | Pros | Cons | Recommendation |
|---|---|---|---|
| Folder `memory/` + `agent.md` | Simple, works almost everywhere, files are yours | You wire it up manually | Great starting point |
| Obsidian + MCP | Powerful, ready-made ecosystem | Need to run an MCP server | One of the best options now |
| Local vector DB (Chroma, LanceDB) | Fast semantic search | More infrastructure | For advanced users |
| Per-tool instructions | Fast here and now | Doesn't travel | Temporary |

Start with the `memory/` folder + `agent.md` — one of the most workable ways right now.

---

What the memory folder looks like

In the root of the `memory/` folder you put `agent.md` — the main instructions file. Next to it — folders with the memory itself:

```text
memory/
├── agent.md # main instructions file
├── long-term/ # lives for months and years
│ ├── about-me.md # who I am
│ ├── facts.md # facts about me, the project, the team
│ ├── decisions.md # key decisions and why
│ └── preferences.md # stable preferences
├── working/
│ └── current.md # current tasks and active context
└── archive/ # old, but occasionally needed
```

Now connect the folder to your agent. It won't read an arbitrary folder on its own — you point it there once:

That's the "wire it up manually" from the table — a one-time step.

Next — what to write in `agent.md`. Seven sections.

---

1. Principles

---

2. Memory architecture

Three layers by lifespan:

The point of the split: the long-term shouldn't drown in the momentary.

---

3. Memory update rules

| What you learned | Where | How often |
|---|---|---|
| Stable preference | `preferences.md` | rarely |
| Important project fact | `facts.md` | as it comes up |
| Key decision (+ why) | `decisions.md` | after each important one |
| Current task | `working/current.md` | when focus shifts |
| Outdated | `archive/` | at review time |

---

4. Answer style

When memory is connected, the answer leans on it:

> I see `preferences.md` has a rule about minimalism without extra abstraction. So I suggest option A (simpler), not B — it's more flexible but pulls in two new layers.

---

5. Example entries

`preferences.md` — short bullet points:

```text
# preferences.md

## Code style
- I prefer a functional style, no needless abstraction.
- Variable and function names should say what they do.
- Comments only where the logic isn't obvious.
```

`decisions.md` — the key is to write why and what you rejected:

```text
## 2026-05-28 — choosing the database for the new service
Decision: Postgres + pgvector.
Why:
- we need vector search;
- the team already knows Postgres;
- we don't want another DB in the stack.
Alternatives: Weaviate, Qdrant — rejected for operational complexity.
```

---

6. Memory quality

Memory should be current, non-contradictory, structured, and portable. Before answering, ask yourself: what's worth adding after this conversation? what's outdated and should go to the archive?

---

7. Limits

---

Short template: agent.md

The same seven sections in one file. The minimum that works — copy and fill in:

```text
# Agent — instructions and memory handling

## 1. Principles
- Memory matters more than the model's raw intelligence — use and update it.
- Think long-term: how this decision affects future tasks.
- Be honest: if you don't know or aren't sure, say so plainly.
- Suggest improvements, don't just follow instructions literally.

## 2. Memory architecture
- Long-term (long-term/): who I am, facts, decisions, preferences. Months and years.
- Working (working/current.md): tasks and questions from the last 1–3 days. Cleaned regularly.
- Archive (archive/): outdated, but useful for history.

## 3. Update rules
- After an important discussion, offer to update the right file.
- At the start of a task, first read working/current.md and long-term/.
- Every 5–10 conversations, offer a review: drop the outdated, merge duplicates.
- Don't delete without my confirmation — move to archive/.

## 4. Answer style
- English unless asked otherwise. Clear structure.
- Hard task — plan first, then do it.
- Explain why. Options — with pros and cons.

## 5. Quality
- Keep memory current, non-contradictory, structured, portable.
- Ask yourself: what to add? what to send to the archive?

## 6. Limits
- Irreversible — only with confirmation.
- Confidential (passwords, keys) — never in files or public answers.
- A request against these rules — ask.
```

---

Full template: agent.md

If you want the maximalist version — here's the expanded template with every section, file roles, and examples. It's the same `agent.md`, just detailed:

```text
# Agent Memory & Operating Instructions v2.0

## 1. Principles
You are a top-tier, proactive, and precise AI assistant. Your main goal is to
help as usefully and effectively as possible while keeping context and memory of me.
- Memory matters more than the model's raw intelligence. Use and update it.
- Think long-term: how a decision will affect future interactions.
- Be honest. If you don't know or aren't sure, say so.
- Suggest improvements and optimizations, don't just follow direct instructions.

2. Memory architecture

### 2.1 Long-term — memory/long-term/
Everything that should live for months and years:
- core-identity.md — who you are to me, your values and working principles.
- facts.md — important facts about me, my projects, team, product.
- decisions.md — key decisions, why they were made, what the alternatives were.
- preferences.md — stable preferences (code style, communication, priorities).

### 2.2 Working — memory/working/current-context.md
- Current active tasks and their status.
- Context of recent discussions (the last 1–3 days).
- Temporary hypotheses and open questions.
Rule: working memory is cleaned or archived regularly when a task is closed.

### 2.3 Archive — memory/archive/
Old decisions and context, not needed daily but useful for history.

3. Working with memory

What to update and where:
- Stable preferences -> preferences.md (rarely)
- Important facts -> facts.md (as they come up)
- Key decisions -> decisions.md (after each important one)
- Current tasks -> working/current-context (when focus shifts)
- Outdated -> archive/ (when cleaning up)

Update rules:
1. After an important discussion — always offer to update the right memory file.
2. At the start of a new task — first read current-context.md and long-term/.
3. Every 5–10 interactions — offer a memory review (drop outdated, merge duplicates).
4. Never delete information without my confirmation — archive it instead.

## 4. Communication and output style
- Answer in English unless asked otherwise.
- Use clear structure: headings, lists, tables, code blocks.
- For complex tasks, propose a plan first, then execute.
- Always explain why you made a given decision.
- If there are several options — show them with pros and cons.

A good answer looks like:
"I see preferences.md has a rule about minimalism in code.
So I suggest option A (simpler), not option B."

5. Example memory entries

preferences.md:
## Code style
- I prefer a functional style
- I avoid deep inheritance
- Variable and function names should be as descriptive as possible
- Comments only where the logic isn't obvious

decisions.md:
## 2026-05-28 — Choosing the database for the new service
Decision: Postgres + pgvector
Reasons: we need vector search; the team has Postgres expertise;
we don't want another DB in the stack.
Alternatives: Weaviate, Qdrant (rejected for operational complexity).

## 6. Self-update and memory quality
Memory should be:
- current (no outdated information),
- non-contradictory,
- structured,
- portable (easy to move to another tool).
On every interaction, ask yourself: do I need to update memory after this
conversation? is there anything outdated worth archiving?

## 7. Limits
- Don't take dangerous actions without confirmation.
- Be very careful with confidential information.
- If a request conflicts with the rules in this file — ask me.

---
This document is the basis of my portable memory.
It should evolve together with me and with you.
```

---

If you don't have a file-aware agent

Use AI in the browser (ChatGPT, Claude, Gemini)? It won't see the folder, but you can paste `about-me.md` into its persistent settings — Custom Instructions in ChatGPT, Project in Claude, Gem in Gemini. That's the "per-tool instructions" row from the table: fast, but separate in each tool and not portable. Keep that text short — these fields have a limit (about 1500 characters in ChatGPT).

---

> 📖 Read also: You are your context — why keep your own memory close in the first place.