Loading...
Loading...
Choose and combine Eve storage primitives to give agents persistent memory — short-term workspace, medium-term attachments and threads, long-term org docs and filesystem. Use when designing how agents remember, retrieve, and share knowledge.
npx skill4agent add eve-horizon/eve-skillpacks eve-agent-memory# Workspace is at $EVE_REPO_PATH
# Write working state to .eve/ (gitignored by convention)
echo '{"findings": [...]}' > .eve/agent-scratch.json
# Workspace modes control sharing:
# job — fresh checkout per job (default)
# session — shared across jobs in a session
# isolated — no git state, pure scratch
eve job create --workspace-mode session --workspace-key "auth-sprint".eve/coordination-inbox.md# Set a KV value with TTL
eve kv set --org $ORG_ID --agent $AGENT_SLUG --key "pr-123-status" --value '{"phase":"review"}' --namespace workflow --ttl 86400
# Get a KV value
eve kv get --org $ORG_ID --agent $AGENT_SLUG --key "pr-123-status" --namespace workflow
# List keys in a namespace
eve kv list --org $ORG_ID --agent $AGENT_SLUG --namespace workflow
# Batch get multiple keys
eve kv mget --org $ORG_ID --agent $AGENT_SLUG --keys "pr-123-status,pr-456-status" --namespace workflow
# Delete a key
eve kv delete --org $ORG_ID --agent $AGENT_SLUG --key "pr-123-status" --namespace workflow# Store findings
eve job attach $EVE_JOB_ID --name findings.json --content '{"patterns": [...]}'
eve job attach $EVE_JOB_ID --name summary.md --file ./analysis-summary.md
# Retrieve from any job (including parent/child)
eve job attachment $PARENT_JOB_ID findings.json --out ./prior-findings.json
eve job attachments $JOB_ID # list all# Project threads maintain chat context
eve thread messages $THREAD_ID --since 1h
# Coordination threads connect parent/child agents
eve thread post $COORD_THREAD_ID --body '{"kind":"update","body":"Found 3 auth issues"}'
eve thread follow $COORD_THREAD_ID # poll for sibling updatescoord:job:{parent_job_id}eve thread distill $THREAD_ID --org $ORG_ID --agent reviewer --category learnings --key "auth-discussion-findings"eve job create \
--description "Review the approved plan" \
--resource-refs='[{"uri":"org_docs:/pm/features/FEAT-123.md@v3","label":"Plan","mount_path":"pm/plan.md"}]'# Store knowledge
eve docs write --org $ORG_ID --path /agents/learnings/auth-patterns.md --file ./auth-patterns.md
# Retrieve
eve docs read --org $ORG_ID --path /agents/learnings/auth-patterns.md
eve docs list --org $ORG_ID --prefix /agents/learnings/
# Search
eve docs search --org $ORG_ID --query "authentication retry"system.doc.created/updated/deletedlearningsdecisionsrunbookscontextconventions# Store a memory entry
eve memory set --org $ORG_ID --agent reviewer --category learnings --key "auth-retry-patterns" \
--content "Always use exponential backoff..." --confidence 0.9 --tags "auth,reliability" --review-in 30d
# Get a memory entry
eve memory get --org $ORG_ID --agent reviewer --key "auth-retry-patterns" --category learnings
# List entries
eve memory list --org $ORG_ID --agent reviewer --category learnings --limit 20
# Delete an entry
eve memory delete --org $ORG_ID --agent reviewer --category learnings --key "auth-retry-patterns"
# Search across memory (all agents or specific)
eve memory search --org $ORG_ID --query "auth retry patterns" --agent reviewer --limit 10/agents/{slug}/memory/{category}/{key}.md/agents/shared/memory/....org/# Agents access .org/ directly in their workspace (all execution paths)
ls .org/ # browse org files
cat .org/shared/runbook.md # read shared knowledge
echo "new finding" >> .org/agents/reviewer/notes.md # write agent-scoped files
# Developers sync to local machines
eve fs sync init --org $ORG_ID --local ~/Eve/acme --mode two-way
eve fs sync status --org $ORG_ID
eve fs sync logs --org $ORG_ID --follow.org/file.created/updated/deletedeve-skill-distillationeve db sql --env $ENV --sql "SELECT key, value FROM agent_memory WHERE agent_id = 'reviewer' AND expires_at > NOW()"
eve db sql --env $ENV --sql "INSERT INTO agent_memory (agent_id, key, value) VALUES ('reviewer', 'last_review', '...')" --writeeve db rls init --with-groupseve thread list --org $ORG_ID
eve thread post $ORG_THREAD_ID --body '{"kind":"directive","body":"All agents: use new auth pattern"}'eve event emit --type=agent.memory.updated --source=app --payload '{"agent":"reviewer","key":"patterns"}'
eve event list --type agent.memory.*eve search --org $ORG_ID --query "auth retry patterns" --sources memory,docs,threads --limit 10 --agent reviewerJob starts → read inputs → write .eve/scratch.json → process → completeParent creates children with resource-refs →
Children execute, attach findings →
Parent resumes, reads child attachments →
Parent synthesizes into final output# Child stores its findings
eve job attach $EVE_JOB_ID --name findings.json --content "$FINDINGS"
# Parent reads child findings on resume
for child_id in $CHILD_IDS; do
eve job attachment $child_id findings.json --out ./child-${child_id}.json
doneAgent discovers pattern →
Check if existing doc covers it (eve docs search) →
If yes: update with new information (eve docs write)
If no: create new document (eve docs write) →
Emit event for other agents (eve event emit)/agents/{agent-slug}/learnings/ — patterns and discoveries
/agents/{agent-slug}/decisions/ — decision records with rationale
/agents/{agent-slug}/runbooks/ — operational procedures
/agents/shared/ — cross-agent shared knowledgeJob starts →
Read coordination inbox (.eve/coordination-inbox.md) →
Query org docs for relevant prior knowledge (eve docs search) →
Check parent/sibling attachments for recent findings →
Proceed with enriched context# Startup sequence
cat .eve/coordination-inbox.md 2>/dev/null # sibling context
ls .org/ 2>/dev/null # org filesystem (shared files)
eve docs search --org $ORG_ID --query "$JOB_DESCRIPTION_KEYWORDS" # prior knowledge
eve job attachments $PARENT_JOB_ID # parent contexteve search --org $ORG_ID --query "auth retry patterns" --sources memory,docs →
If relevant result exists: read and update it
If no result: create new memory doceve kv set --org $ORG_ID --agent reviewer --namespace workflow --key "pr-123" --value '{"phase":"review","started":"..."}' --ttl 86400eve thread distill $THREAD_ID --org $ORG_ID --agent reviewer --category learnings --key "auth-discussion-findings"| Question | Answer → Primitive |
|---|---|
| Need it only during this job? | Workspace files |
| Need lightweight state with TTL? | Agent KV Store |
| Need to pass data to parent/children? | Job attachments |
| Need rolling conversation context? | Threads |
| Need to distill a conversation into knowledge? | Thread distillation → Agent Memory |
| Need curated, categorized agent knowledge? | Agent Memory Namespaces |
| Need versioned, searchable documents? | Org Document Store |
| Need shared files across agents in the org? | Org Filesystem ( |
| Need file-tree sync with local editing? | Org Filesystem (CLI sync) |
| Need app-scoped binary/object storage? | Object Store (manifest) |
| Need structured queries (SQL)? | Managed database |
| Need to encode a reusable workflow? | Skills |
| Need reactive notifications? | Event spine |
| Need to search across everything? | Unified Search |
# Check agent's effective access
eve access can --resource orgdocs:/agents/shared/ --action read
eve access memberships --org $ORG_IDeve thread distill--review-in--expires-ineve docs stale