Daita agents / guide
Store bounded, local guidance that persists across an agent's runs.
Each agent owns two small persistent documents:
| Document | Intended content | Limit |
|---|---|---|
| Memory | Durable operating guidance and reusable context | 2,200 characters / 8,800 UTF-8 bytes |
| User profile | Stable user preferences and working context | 1,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.
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.
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:
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.
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 atlasedit uses $EDITOR. inspect shows bounded global and resource-scoped knowledge state without starting an agent run.
Conversation transcripts are managed separately. Clearing conversations preserves approved memory and user-profile content.