Docs
GuidesExamplesWebsite GitHub
OverviewGetting Started
AgentConversationsConfigurationAuthenticationLLM ProvidersTools
Data SourcesSQLitePostgreSQLLocal WorkspaceCatalogQueryingPostgreSQL UpdatesRemote MCP Reads
ArtifactsDurable JobsScheduled RoutinesInbox and Deliveries
MemorySemanticsSkillsReviewed Learning
Terminal and CLIObservation EventsError HandlingEvaluation
Daita / Docs
OverviewGetting Started
AgentConversationsConfigurationAuthenticationLLM ProvidersTools
Data SourcesSQLitePostgreSQLLocal WorkspaceCatalogQueryingPostgreSQL UpdatesRemote MCP Reads
ArtifactsDurable JobsScheduled RoutinesInbox and Deliveries
MemorySemanticsSkillsReviewed Learning
Terminal and CLIObservation EventsError HandlingEvaluation

Daita agents / guide

Memory and User Profile

Store bounded, local guidance that persists across an agent's runs.

#Two Global Documents

Each agent owns two small persistent documents:

DocumentIntended contentLimit
MemoryDurable operating guidance and reusable context2,200 characters / 8,800 UTF-8 bytes
User profileStable user preferences and working context1,375 characters / 5,500 UTF-8 bytes

Both documents are global to the agent. Resource-specific business definitions belong in Semantics, and repeatable procedures belong in Skills.

Memory is advisory model context. It is not source evidence, authorization, or a replacement for catalog inspection and query results.

#Read and Write from Python

python
from pathlib import Path
 
from daita import Agent, LocalWorkspace
 
workspace = LocalWorkspace(Path("/absolute/path/project"))
agent = await Agent.open("atlas", workspace=workspace)
try:
    await agent.set_memory(
        "Use net revenue unless the user explicitly requests gross revenue."
    )
    await agent.set_user_profile(
        "The user prefers concise answers with a comparison table."
    )
 
    print(await agent.read_memory())
    print(await agent.read_user_profile())
finally:
    await agent.close()

Direct calls are explicit caller actions and do not invoke the run approval handler.

#Changes Proposed During a Run

The model can propose a replacement for either document through the built-in memory_set write capability. Daita executes that change only when the agent has an approval handler and the handler approves the exact request:

python
from pathlib import Path
 
from daita import Agent, ApprovalDecision, ApprovalRequest, LocalWorkspace
 
async def approve(request: ApprovalRequest) -> ApprovalDecision:
    print(request.tool_name, request.arguments)
    return ApprovalDecision.APPROVE
 
agent = await Agent.open(
    "atlas",
    workspace=LocalWorkspace(Path("/absolute/path/project")),
    approval_handler=approve,
)

Approval is per tool call. A denied or missing approval does not modify local state.

#Terminal Commands

bash
daita memory read atlas --target memory
daita memory read atlas --target user
daita memory edit atlas --target memory
daita memory set atlas --target user --file ./user-profile.md
daita memory inspect atlas

edit uses $EDITOR. inspect shows bounded global and resource-scoped knowledge state without starting an agent run.

#Keep Memory Useful

  • Store durable guidance, not temporary conversation details.
  • Do not store secrets or source credentials.
  • Keep source-specific meaning attached to semantic annotations.
  • Treat queried data as authoritative over remembered prose.

Conversation transcripts are managed separately. Clearing conversations preserves approved memory and user-profile content.

PreviousInbox and Deliveries
NextSemantics

On this page

Two Global DocumentsRead and Write from PythonChanges Proposed During a RunTerminal CommandsKeep Memory Useful