eve-agent-memory
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseEve Agent Memory
Eve Agent 内存
Agents on Eve Horizon have no built-in "memory" primitive, but the platform provides storage systems at every timescale. This skill teaches how to compose them into coherent memory for agents that learn, remember, and share.
Eve Horizon上的Agent没有内置的「内存」原语,但平台提供了适用于所有时间尺度的存储系统。本技能将讲解如何将这些存储系统组合成连贯的内存,让Agent能够学习、记忆和共享知识。
The Memory Problem
内存问题
Every agent starts cold. Without deliberate memory design, agents:
- Re-discover the same facts on every job.
- Lose context when jobs end.
- Cannot share learned knowledge with sibling agents.
- Accumulate stale information with no expiry.
Solve this by mapping what to remember to where to store it, using the right primitive for each timescale.
每个Agent初始状态都是空白的。如果没有刻意的内存设计,Agent会:
- 在每次任务中重复发现相同的事实。
- 任务结束后丢失上下文。
- 无法与其他同类Agent共享学到的知识。
- 积累没有过期机制的陈旧信息。
通过将「需要记忆的内容」映射到「存储位置」,为每个时间尺度选择合适的原语,就能解决这些问题。
Storage Primitives by Timescale
按时间尺度划分的存储原语
Short-Term (within a job)
短期(单任务内)
Workspace files — the git repo checkout available during job execution.
bash
undefined工作区文件——任务执行期间可用的Git仓库检出目录。
bash
undefinedWorkspace is at $EVE_REPO_PATH
工作区路径为 $EVE_REPO_PATH
Write working state to .eve/ (gitignored by convention)
将工作状态写入 .eve/(按约定被Git忽略)
echo '{"findings": [...]}' > .eve/agent-scratch.json
echo '{"findings": [...]}' > .eve/agent-scratch.json
Workspace modes control sharing:
工作区模式控制共享方式:
job — fresh checkout per job (default)
job — 每个任务全新检出(默认)
session — shared across jobs in a session
session — 会话内的任务共享
isolated — no git state, pure scratch
isolated — 无Git状态,纯临时空间
eve job create --workspace-mode session --workspace-key "auth-sprint"
Use for: scratch notes, intermediate results, coordination inbox files. Ephemeral by design — workspace state does not survive the job unless committed to git or saved elsewhere.
**Coordination inbox** — `.eve/coordination-inbox.md` is auto-generated from coordination thread messages at job start. Read it for sibling status without API calls.
**Agent KV Store** — lightweight operational state with optional TTL. Use for: feature flags, rate counters, agent state machines, deduplication keys. Namespace-partitioned.
```basheve job create --workspace-mode session --workspace-key "auth-sprint"
适用场景:临时笔记、中间结果、协作收件箱文件。设计为临时存储——工作区状态除非提交到Git或保存到其他位置,否则不会在任务结束后保留。
**协作收件箱**——`.eve/coordination-inbox.md`会在任务启动时自动从协作线程消息生成。无需调用API即可读取同类Agent的状态。
**Agent KV Store**——轻量级可设置TTL的运行状态存储。适用场景:功能开关、速率计数器、Agent状态机、去重键。按命名空间分区。
```bashSet a KV value with TTL
设置带TTL的KV值
eve kv set --org $ORG_ID --agent $AGENT_SLUG --key "pr-123-status" --value '{"phase":"review"}' --namespace workflow --ttl 86400
eve kv set --org $ORG_ID --agent $AGENT_SLUG --key "pr-123-status" --value '{"phase":"review"}' --namespace workflow --ttl 86400
Get a KV value
获取KV值
eve kv get --org $ORG_ID --agent $AGENT_SLUG --key "pr-123-status" --namespace workflow
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
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
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
undefinedeve kv delete --org $ORG_ID --agent $AGENT_SLUG --key "pr-123-status" --namespace workflow
undefinedMedium-Term (across jobs within a project)
中期(项目内跨任务)
Job attachments — named key-value pairs attached to any job. Survive after job completion.
bash
undefined任务附件——附加到任意任务的命名键值对。任务完成后仍会保留。
bash
undefinedStore 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
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
Use for: job outputs, decision records, analysis results. Attached to a specific job, so retrievable by job ID. Good for passing structured data between parent and child jobs.
**Threads** — message sequences with continuity across sessions.
```basheve job attachment $PARENT_JOB_ID findings.json --out ./prior-findings.json
eve job attachments $JOB_ID # 列出所有附件
适用场景:任务输出、决策记录、分析结果。附加到特定任务,可通过任务ID检索。适合在父任务和子任务之间传递结构化数据。
**线程**——跨会话保持连续性的消息序列。
```bashProject threads maintain chat context
项目线程保留聊天上下文
eve thread messages $THREAD_ID --since 1h
eve thread messages $THREAD_ID --since 1h
Coordination threads connect parent/child agents
协作线程连接父/子Agent
eve thread post $COORD_THREAD_ID --body '{"kind":"update","body":"Found 3 auth issues"}'
eve thread follow $COORD_THREAD_ID # poll for sibling updates
Use for: inter-agent communication, rolling context, coordination. Thread summaries provide compressed history. Coordination threads (`coord:job:{parent_job_id}`) are auto-created for team dispatches.
**Thread Distillation** — convert thread conversations into memory docs or org docs. Use for: preserving valuable discussion outcomes as searchable knowledge.
```bash
eve thread distill $THREAD_ID --org $ORG_ID --agent reviewer --category learnings --key "auth-discussion-findings"Resource refs — versioned pointers to org documents, mounted into job workspaces.
bash
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"}]'Use for: pinning specific document versions as job inputs. The referenced document is hydrated into the workspace at the specified mount path. Events track hydration success/failure.
eve thread post $COORD_THREAD_ID --body '{"kind":"update","body":"Found 3 auth issues"}'
eve thread follow $COORD_THREAD_ID # 轮询同类Agent的更新
适用场景:Agent间通信、滚动上下文、协作协调。线程摘要提供压缩的历史记录。协作线程(`coord:job:{parent_job_id}`)会为团队调度自动创建。
**线程提炼**——将线程对话转换为内存文档或组织文档。适用场景:将有价值的讨论结果保存为可搜索的知识。
```bash
eve thread distill $THREAD_ID --org $ORG_ID --agent reviewer --category learnings --key "auth-discussion-findings"资源引用——指向组织文档的版本化指针,挂载到任务工作区。
bash
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"}]'适用场景:将特定版本的文档固定为任务输入。引用的文档会被加载到工作区指定的挂载路径。事件会跟踪加载的成功/失败状态。
Long-Term (across projects, persistent)
长期(跨项目、持久化)
Org Document Store — versioned documents scoped to the organization.
bash
undefined组织文档存储——组织级别的版本化文档。
bash
undefinedStore knowledge
存储知识
eve docs write --org $ORG_ID --path /agents/learnings/auth-patterns.md --file ./auth-patterns.md
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/
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"
Use for: curated knowledge, decision logs, learned patterns. Versioned (every update creates a new version). Emits `system.doc.created/updated/deleted` events on the event spine. Best for knowledge that is reviewed, refined, and shared.
**Agent Memory Namespaces** — curated knowledge stored as org docs with agent-scoped path conventions. Categories: `learnings`, `decisions`, `runbooks`, `context`, `conventions`. Supports confidence scores, tags, review dates, and expiration. Use for: accumulated expertise, decision logs, operational runbooks.
```basheve docs search --org $ORG_ID --query "authentication retry"
适用场景:精选知识、决策日志、已学习的模式。支持版本控制(每次更新都会创建新版本)。在事件总线触发`system.doc.created/updated/deleted`事件。最适合经过审核、优化和共享的知识。
**Agent内存命名空间**——按照Agent作用域路径约定存储为组织文档的精选知识。分类包括:`learnings`、`decisions`、`runbooks`、`context`、`conventions`。支持置信度评分、标签、审核日期和过期时间。适用场景:积累的专业知识、决策日志、操作手册。
```bashStore 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
--content "Always use exponential backoff..." --confidence 0.9 --tags "auth,reliability" --review-in 30d
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
--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
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
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"
eve memory delete --org $ORG_ID --agent reviewer --category learnings --key "auth-retry-patterns"
Search across memory (all agents or specific)
跨内存搜索(所有Agent或特定Agent)
eve memory search --org $ORG_ID --query "auth retry patterns" --agent reviewer --limit 10
Namespace convention: `/agents/{slug}/memory/{category}/{key}.md` or `/agents/shared/memory/...`
**Org Filesystem** — shared per-org file storage mounted at `.org/` in agent workspaces and synced to local machines.
```basheve memory search --org $ORG_ID --query "auth retry patterns" --agent reviewer --limit 10
命名空间约定:`/agents/{slug}/memory/{category}/{key}.md` 或 `/agents/shared/memory/...`
**组织文件系统**——组织级共享文件存储,挂载到Agent工作区的`.org/`目录,并同步到本地机器。
```bashAgents access .org/ directly in their workspace (all execution paths)
Agent可直接在工作区访问.org/(所有执行路径)
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
ls .org/ # 浏览组织文件
cat .org/shared/runbook.md # 读取共享知识
echo "new finding" >> .org/agents/reviewer/notes.md # 写入Agent作用域文件
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
Use for: large knowledge bases, design assets, documentation trees. Agents see `.org/` in their workspace regardless of execution path (agent-runtime or worker). Markdown-first defaults. Event-driven notifications (`file.created/updated/deleted`). Best for knowledge that lives as a file tree and benefits from both agent and human editing.
**Skills and Skillpacks** — distilled patterns packaged for reuse.
Use for: encoding recurring workflows and hard-won knowledge as reusable instructions. When an agent discovers a pattern worth preserving, distill it into a skill (see `eve-skill-distillation`). Skills are the highest-fidelity form of long-term memory — they don't just store information, they teach how to use it.
**Managed databases** — environment-scoped Postgres instances with agent-accessible SQL.
```bash
eve 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', '...')" --writeUse for: structured queries, relationship data, anything that benefits from SQL. Requires schema setup via migrations. Use for access-controlled agent memory tables.
eve db rls init --with-groupseve 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
适用场景:大型知识库、设计资产、文档树。无论执行路径是Agent运行时还是工作节点,Agent都能在工作区看到`.org/`目录。默认优先支持Markdown。事件驱动通知(`file.created/updated/deleted`)。最适合以文件树形式存在、同时需要Agent和人工编辑的知识。
**技能与技能包**——打包为可重用形式的提炼模式。
适用场景:将重复工作流和来之不易的知识编码为可重用的指令。当Agent发现值得保留的模式时,将其提炼为技能(参考`eve-skill-distillation`)。技能是长期内存的最高保真形式——它们不仅存储信息,还教授如何使用信息。
**托管数据库**——环境级Postgres实例,Agent可通过SQL访问。
```bash
eve 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', '...')" --write适用场景:结构化查询、关系型数据、任何适合用SQL处理的内容。需要通过迁移设置表结构。使用实现访问控制的Agent内存表。
eve db rls init --with-groupsShared (coordination across agents)
共享(Agent间协作)
Org threads — org-scoped message sequences for cross-project coordination.
bash
eve thread list --org $ORG_ID
eve thread post $ORG_THREAD_ID --body '{"kind":"directive","body":"All agents: use new auth pattern"}'Event spine — pub/sub event bus for reactive workflows.
bash
eve event emit --type=agent.memory.updated --source=app --payload '{"agent":"reviewer","key":"patterns"}'
eve event list --type agent.memory.*Use for: broadcasting knowledge updates, triggering reactive workflows when memory changes.
Unified Search — single query across memory, docs, threads, attachments, events. Use for: finding relevant prior knowledge before starting work.
bash
eve search --org $ORG_ID --query "auth retry patterns" --sources memory,docs,threads --limit 10 --agent reviewer组织线程——组织级消息序列,用于跨项目协作。
bash
eve thread list --org $ORG_ID
eve thread post $ORG_THREAD_ID --body '{"kind":"directive","body":"All agents: use new auth pattern"}'事件总线——用于响应式工作流的发布/订阅事件总线。
bash
eve event emit --type=agent.memory.updated --source=app --payload '{"agent":"reviewer","key":"patterns"}'
eve event list --type agent.memory.*适用场景:广播知识更新、内存变化时触发响应式工作流。
统一搜索——跨内存、文档、线程、附件、事件的单一查询入口。适用场景:开始工作前查找相关的历史知识。
bash
eve search --org $ORG_ID --query "auth retry patterns" --sources memory,docs,threads --limit 10 --agent reviewerMemory Patterns
内存模式
Pattern 1: Job-Scoped Scratch
模式1:任务级临时存储
The simplest pattern. Write working state to workspace files during execution. Nothing survives the job.
Job starts → read inputs → write .eve/scratch.json → process → completeWhen to use: single-job tasks with no memory requirement.
最简单的模式。执行期间将工作状态写入工作区文件。任务结束后无任何内容保留。
任务启动 → 读取输入 → 写入.eve/scratch.json → 处理 → 完成适用场景:无内存需求的单任务工作。
Pattern 2: Parent-Child Knowledge Passing
模式2:父-子任务知识传递
Pass knowledge between orchestrator and workers using attachments and threads.
Parent creates children with resource-refs →
Children execute, attach findings →
Parent resumes, reads child attachments →
Parent synthesizes into final outputbash
undefined使用附件和线程在编排器和工作节点之间传递知识。
父任务创建带资源引用的子任务 →
子任务执行,附加发现结果 →
父任务恢复,读取子任务附件 →
父任务合成为最终输出bash
undefinedChild stores its findings
子任务存储发现结果
eve job attach $EVE_JOB_ID --name findings.json --content "$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
done
When to use: orchestrated work where children discover information the parent needs.for child_id in $CHILD_IDS; do
eve job attachment $child_id findings.json --out ./child-${child_id}.json
done
适用场景:编排式工作,子任务发现的信息需要被父任务使用。Pattern 3: Org Knowledge Base
模式3:组织知识库
Build persistent, searchable knowledge that survives across projects and time.
Agent 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)Namespace convention for agent-maintained docs:
/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 knowledgeWhen to use: knowledge that accumulates over time and should be available to any agent in the org.
构建跨项目、跨时间的持久化可搜索知识库。
Agent发现模式 →
检查现有文档是否覆盖该模式(eve docs search) →
如果存在:用新信息更新文档(eve docs write)
如果不存在:创建新文档(eve docs write) →
向其他Agent发送事件通知(eve event emit)Agent维护文档的命名空间约定:
/agents/{agent-slug}/learnings/ — 模式与发现结果
/agents/{agent-slug}/decisions/ — 带理由的决策记录
/agents/{agent-slug}/runbooks/ — 操作流程
/agents/shared/ — Agent间共享知识适用场景:随时间积累、需要提供给组织内所有Agent使用的知识。
Pattern 4: Memory-Augmented Job Start
模式4:内存增强型任务启动
Combine primitives to give an agent relevant context at the start of every job.
Job 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 contextbash
undefined组合多种原语,让Agent在每次任务启动时获得相关上下文。
任务启动 →
读取协作收件箱(.eve/coordination-inbox.md) →
查询组织文档获取相关历史知识(eve docs search) →
检查父/同类任务附件获取最新发现 →
基于增强后的上下文继续执行bash
undefinedStartup 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 context
When to use: any agent that benefits from remembering what happened before.cat .eve/coordination-inbox.md 2>/dev/null # 同类Agent上下文
ls .org/ 2>/dev/null # 组织文件系统(共享文件)
eve docs search --org $ORG_ID --query "$JOB_DESCRIPTION_KEYWORDS" # 历史知识
eve job attachments $PARENT_JOB_ID # 父任务上下文
适用场景:任何需要记住之前发生过什么的Agent。Pattern 5: Search-Before-Write
模式5:写前搜索
Search existing knowledge before creating new docs.
eve 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 docWhen to use: any agent that creates knowledge documents. Prevents duplication.
创建新文档前先搜索现有知识。
eve search --org $ORG_ID --query "auth retry patterns" --sources memory,docs →
如果存在相关结果:读取并更新
如果无结果:创建新内存文档适用场景:任何创建知识文档的Agent。避免重复内容。
Pattern 6: KV State Machine
模式6:KV状态机
Use KV store to track multi-step agent workflows.
eve kv set --org $ORG_ID --agent reviewer --namespace workflow --key "pr-123" --value '{"phase":"review","started":"..."}' --ttl 86400When to use: tracking step-by-step progress in multi-phase jobs where state must survive brief interruptions but not forever.
使用KV存储跟踪多步骤Agent工作流。
eve kv set --org $ORG_ID --agent reviewer --namespace workflow --key "pr-123" --value '{"phase":"review","started":"..."}' --ttl 86400适用场景:跟踪多阶段任务的分步进度,状态需要在短暂中断后保留但无需永久存储。
Pattern 7: Thread-to-Knowledge Pipeline
模式7:线程转知识流水线
Distill valuable thread conversations into searchable memory.
eve thread distill $THREAD_ID --org $ORG_ID --agent reviewer --category learnings --key "auth-discussion-findings"When to use: after a thread produces knowledge worth preserving beyond the conversation.
将有价值的线程对话提炼为可搜索的内存。
eve thread distill $THREAD_ID --org $ORG_ID --agent reviewer --category learnings --key "auth-discussion-findings"适用场景:线程产生了值得在对话之外保留的知识之后。
Choosing the Right Primitive
选择合适的原语
| 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 |
| 问题 | 答案 → 原语 |
|---|---|
| 仅在本次任务中需要? | 工作区文件 |
| 需要带TTL的轻量级状态? | Agent KV Store |
| 需要向父/子任务传递数据? | 任务附件 |
| 需要滚动对话上下文? | 线程 |
| 需要将对话提炼为知识? | 线程提炼 → Agent内存 |
| 需要分类整理的Agent精选知识? | Agent内存命名空间 |
| 需要版本化可搜索文档? | 组织文档存储 |
| 需要组织内Agent共享文件? | 组织文件系统( |
| 需要文件树同步与本地编辑? | 组织文件系统(CLI同步) |
| 需要应用级二进制/对象存储? | 对象存储(清单) |
| 需要结构化查询(SQL)? | 托管数据库 |
| 需要编码可重用工作流? | 技能 |
| 需要响应式通知? | 事件总线 |
| 需要跨所有内容搜索? | 统一搜索 |
Access Control
访问控制
Storage primitives respect Eve's access model:
- Secrets: scoped resolution (project → user → org → system). Never store memory in secrets.
- Org docs: org membership required. Use access groups for fine-grained control.
- Database: use RLS with group-aware policies for multi-agent isolation.
- Threads: project-scoped or org-scoped. Job tokens grant access to coordination threads.
- Filesystem: org-level permissions, with optional path ACLs via access groups.
bash
undefined存储原语遵循Eve的访问模型:
- 密钥:作用域解析(项目→用户→组织→系统)。绝不要在密钥中存储内存。
- 组织文档:需要组织成员身份。使用访问组实现细粒度控制。
- 数据库:使用带组感知策略的RLS实现多Agent隔离。
- 线程:项目作用域或组织作用域。任务令牌授予协作线程的访问权限。
- 文件系统:组织级权限,可通过访问组设置可选的路径ACL。
bash
undefinedCheck agent's effective access
检查Agent的有效访问权限
eve access can --resource orgdocs:/agents/shared/ --action read
eve access memberships --org $ORG_ID
undefinedeve access can --resource orgdocs:/agents/shared/ --action read
eve access memberships --org $ORG_ID
undefinedAnti-Patterns
反模式
- Storing everything in workspace files — dies with the job. Use attachments or org docs for anything worth keeping.
- Giant thread messages as memory — threads are for communication, not storage. Post summaries, store details in docs.
- No expiry strategy — memory without lifecycle becomes noise. Date your documents, prune periodically.
- Duplicating knowledge across primitives — pick one source of truth per piece of knowledge. Reference it from other places, don't copy it.
- Skipping search before writing — always check if the knowledge already exists before creating a new document. Update beats create.
- 所有内容都存储在工作区文件中——会随任务结束而丢失。任何值得保留的内容都应使用附件或组织文档存储。
- 用巨型线程消息作为内存——线程用于通信,而非存储。发布摘要,将详细内容存储在文档中。
- 无过期策略——没有生命周期的内存会变成噪音。为文档添加日期,定期清理。
- 在多个原语中重复存储知识——每条知识选择一个单一数据源。从其他地方引用,不要复制。
- 写前不搜索——创建新文档前始终检查知识是否已存在。更新优于创建。
Current Gaps and Workarounds
当前局限与解决方法
Some memory patterns require manual assembly today:
- No automatic context carryover at job start — build startup sequences manually (see Pattern 4). The platform does not auto-hydrate prior knowledge on job launch.
- No automatic thread-to-knowledge distillation — manual exists, but no cron or trigger-based automation yet.
eve thread distill - No document lifecycle automation — set review dates and expiration via and
--review-inflags. Use--expires-into find overdue documents. Automated cleanup is not yet available.eve docs stale
目前一些内存模式需要手动组合:
- 任务启动时无自动上下文传递——手动构建启动序列(参考模式4)。平台目前不会在任务启动时自动加载历史知识。
- 无自动线程转知识提炼——已有手动命令,但尚无定时或触发式自动化。
eve thread distill - 无文档生命周期自动化——通过和
--review-in标志设置审核日期和过期时间。使用--expires-in查找逾期文档。自动清理功能尚未可用。eve docs stale