Session search

Your agent can look up past conversations on its own, using the same trace records you can already inspect.

An agent’s working memory of a conversation only lasts while that conversation is running: once the session ends or the app restarts, it is gone. What survives is the trace of every turn, a durable record kept in SQLite whether or not the session that made it is still alive.

The session_search tool lets an agent search and read that history on its own, so you never have to paste old context back in. It is always-safe (no permission prompt, the same posture as read_file), and it only sees the calling agent’s own project: one project’s conversations are never searchable from another.

Within that project, how far one call can actually see depends on the agent’s session_search_scope. The default, "self", means every action reaches only the calling conversation’s own history. That is the safe setting for an agent that talks to several different end customers: one customer asking to “search my past conversations” must never be able to read another customer’s. Widen it to "project" (a checkbox on the agent’s edit page, or manage_agent’s session_search_project_wide flag) only for an agent with a single operator or team on the other end, an internal tool where there is nobody else’s conversation in the same project to leak.

What it can do

You: Didn't we already sort out that invoice issue with Acme a few weeks back?

Agent: [session_search search: "Acme invoice"]
Yes - on July 3rd I found their May invoice had the wrong tax rate applied and
corrected it. Want me to check whether the same thing happened again this month?

This is search, not memory: an agent still only acts on what it reads back into the current conversation. Nothing found this way is silently assumed; it comes back as text the agent reads and can quote, the same as any other tool result.