Skip to main content
Memory keeps selected information available across sessions without replaying a full transcript. It is different from Session history and project Knowledge:
  • Session history is the canonical conversation.
  • Memory contains durable facts, preferences, open threads, styles, and selected operational learnings.
  • Knowledge contains project or company source material such as documents and repositories.

Configure an agent

Memory is disabled unless the agent explicitly enables the capabilities it needs. The agent-level configuration is portable between self-hosted Polpo and Polpo Cloud.
writeScope: "invocation-user" requires a trusted external user supplied by the host or Channel identity resolver. Polpo never derives that identity from message text or from the model.

Explicit Memory tools

The tool settings expose only the corresponding typed tools: The agent’s global and per-surface tool policies must also allow each tool. Memory settings can narrow tool availability but cannot widen the agent’s authorization ceiling.

Automatic learning

Automatic learning analyzes a successfully completed canonical conversation turn after it is durably persisted. It runs outside the response path and does not depend on the SSE connection remaining open. The initial eligible surfaces are direct chat and Channels. Nested Project Loop agent steps, failed or cancelled turns, incomplete ask-user/client-tool continuations, tasks, and schedules do not independently create Memory. The extractor receives bounded visible conversation content. It does not receive hidden reasoning, Connection secrets, trusted hidden bindings, or unrelated history. Assistant claims alone cannot establish a user fact.
Automatic learning also requires the host rollout to permit it. A saved agent setting does not override a Cloud kill switch, project rollout, authorization policy, or entitlement.

Review suggestions

In Polpo Cloud, open the agent’s Memory page and select Learning. Enter the hosted application’s external user ID to inspect that user’s pending suggestions. Approval and rejection use optimistic revisions so concurrent reviews fail instead of overwriting one another. The CLI offers the same authorized workflow for a linked project:
Use polpo memory candidates get, audit, and apply for inspection, audit history, and a separate apply step. Add --json for automation. The external user ID is sent as trusted request context and is not accepted from candidate content.

Typed Memory API

Project API keys manage Memory through the agent-scoped data plane: For user-scoped operations, send x-polpo-external-user-id from trusted application code. Never let the model or untrusted message content choose this header.

Legacy static Memory

.polpo/memory.md and .polpo/memory/{agentName}.md are the legacy static prompt-memory format. They remain compatible, but they are not a serialization of typed Memory items and do not provide external-user isolation, selective retrieval, provenance, lifecycle, candidate review, or precise forget semantics.