Skip to content
Docs menu

Documentation

Your first day

Five habits that turn TAM from a database into a memory your agent actually uses. Plain phrases you can say to your agent, and what happens behind them.

TAM is only as useful as what goes into it. The good news: you do not have to type tool names. Say what you want and the agent calls the right tool. If you installed the Claude Code plugin or used install.sh, hooks and the memory-protocol skill also do much of this automatically.

1. Start a session by resuming

Say: “Resume where we left off on my-api.”

The agent calls session_init, which returns the summary, next steps and pitfalls saved at the end of your last session for that project. It then usually runs memory_recall for the task at hand.

session_init(project="my-api")
→ summary:    "Migrated auth middleware to JWT"
  next_steps: ["Update OpenAPI spec", "Tell the frontend team"]
  pitfalls:   ["Do not revert migration 0042: dev DB is already migrated"]

2. Save decisions the moment you make them

Say: “Remember this decision: we use pgvector instead of ChromaDB because we need per-tenant row-level security.”

The agent calls memory_save with type="decision". Good saves are short and self-contained:

  • What was decided or learned, in one line.
  • Why, especially for decisions: the constraint, the alternatives you rejected.
  • Where: project name, and file paths if they matter.

One save per fact. Do not wait until the end of the day; by then the reasons are gone.

memory_save(
  type="decision",
  content="Chose pgvector over ChromaDB for vector search",
  context="WHY: one Postgres instance, per-tenant row-level security; ChromaDB would be a second datastore",
  project="my-api",
  tags=["database", "reusable"],
)

3. Ask before you (re)invent

Say: “What do we know about rate limiting in this project?” or “Have we solved something like this in another repo?”

memory_recall searches by meaning and by exact words at the same time, so “rate limiting” also finds a note that says “throttle requests to 100/min”. For other projects, the agent can use analogize.

Treat recalled records as claims about the past. If one names a file or a function and you are about to act on it, check that it still exists.

4. Turn mistakes into rules

Say: “That failed because the test DB was not migrated. Remember the fix.”

The agent calls learn_error with the error, the root cause and the fix. When the same pattern happens three times, TAM consolidates it into a rule that self_rules_context loads at the start of later sessions.

5. End the session with a handover

Say: “Save the session” (or “wrap up”).

The agent calls session_end with a summary, highlights, pitfalls and next steps. That is exactly what session_init returns next time, in any client.

Phrases that work well

You sayWhat the agent does
”Remember that…” / “Note for later…”memory_save (fact, decision, lesson, convention or solution)
“What did we decide about…?”memory_recall
”Resume” / “Where were we?”session_init, then memory_recall
”Save the session” / “Wrap up”session_end
”That’s no longer true, it is now…”memory_save with supersede=true, or kg_add_fact for a dated fact
”Forget that note”memory_delete (soft delete: the record is hidden from search)
“What was our stack in March?”kg_at

What not to save

  • Secrets. TAM redacts common key, token and password patterns, and anything inside <private>…</private>, but do not rely on that as your only safeguard. See Privacy.
  • Raw terminal dumps. Summarise first; use the filter option of memory_save for test or build output.
  • Things the repository already records (the code itself, git history).

See it

Open the dashboard at http://127.0.0.1:37737 to browse records, sessions, error patterns, rules and the knowledge graph.

Found a mistake? Open an issue on GitHub.

Search