- 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: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.