A language model has weights (trained) and a window (this run). It does not have your company. When vendors say “memory,” they usually mean one of:

KindWhat it actually isRisk
WindowTokens in this callTruncation, lost constraints
Vendor memoryNotes stored in their productRetention, cross-chat bleed, surprise recall
Your filesGit, docs, tickets, designsYou control it if you designed the pack
Tool outputSearch, browser, DB, testsStale or wrong tools → confident lies

Bye Prompt’s preference: files you own + tools you can audit. Vendor memory is a convenience, not an archive.

Files are the real memory

If it matters next week, it is a file:

  • Specs and context packs
  • Decisions (“we chose X because Y”)
  • Eval checklists
  • Examples of good output

Chat threads are not archives. Export anything you would miss if the product reset your history — which they do.

Name files so a model (and a human) can find them: GOAL.md, MUST-NOT.md, sources.txt beat asdf-final-FINAL2.docx.

Tools are how agents touch the world

Without tools, you have chat. With tools, you have side effects.

Minimum tool hygiene:

  1. Allowlist — browser, repo, calculator, none. Not “whatever the demo enabled.”
  2. Arguments in the trace — what URL, what path.
  3. No production credentials in consumer agents.
  4. Idempotency for anything that spends or creates tickets (see Pay By Prompt for the money version).

If you cannot see the tool call, you cannot evaluate.

Retrieval (RAG) without a religion

Pulling chunks from a large corpus is useful when:

  • The corpus is yours and maintained
  • Queries are specific
  • You still cite what was retrieved

It is theater when the corpus is a junk drawer and you never check citations. A 12-file pack beats a 12-million-token mystery index for most small-team jobs.

What to keep out of memory

  • Secrets and session cookies
  • Customer PII unless the environment is actually approved for it
  • Temporary insults you typed in a debugging rage (yes, that gets retrieved)
  • Outdated policies

Garbage in, confident garbage out. Living packs need an owner who deletes.

Practical default for a small team

  1. One repo or Drive folder per job type, not per chat
  2. Spec + pack versioned
  3. Agent writes to draft/
  4. CI or a human runs tests
  5. Merge is memory (the good kind)

That is enough to leave the prompt box without buying a “second brain” product.