Docs

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 daita import Agent
 
agent = await Agent.open("atlas")
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 daita import Agent, ApprovalDecision, ApprovalRequest
 
async def approve(request: ApprovalRequest) -> ApprovalDecision:
    print(request.tool_name, request.arguments)
    return ApprovalDecision.APPROVE
 
agent = await Agent.open("atlas", 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.