mirror of
https://github.com/zenlm/zen-blog.git
synced 2026-11-03 14:11:45 +00:00
44 lines
18 KiB
Plaintext
44 lines
18 KiB
Plaintext
1:"$Sreact.fragment"
|
||
2:I[10086,["/_next/static/chunks/59d0ad1b64f8544e.js","/_next/static/chunks/8de849ca74fc071f.js","/_next/static/chunks/e62b91212ee7f8ff.js","/_next/static/chunks/f19fe44237e54646.js","/_next/static/chunks/cb0a883bafeb6805.js"],""]
|
||
26:I[51504,["/_next/static/chunks/59d0ad1b64f8544e.js","/_next/static/chunks/8de849ca74fc071f.js","/_next/static/chunks/e62b91212ee7f8ff.js","/_next/static/chunks/f19fe44237e54646.js","/_next/static/chunks/cb0a883bafeb6805.js"],"CodeBlock"]
|
||
27:I[51504,["/_next/static/chunks/59d0ad1b64f8544e.js","/_next/static/chunks/8de849ca74fc071f.js","/_next/static/chunks/e62b91212ee7f8ff.js","/_next/static/chunks/f19fe44237e54646.js","/_next/static/chunks/cb0a883bafeb6805.js"],"Pre"]
|
||
28:I[89923,["/_next/static/chunks/4d80e004cf4896dd.js","/_next/static/chunks/350ee4303b732916.js"],"OutletBoundary"]
|
||
29:"$Sreact.suspense"
|
||
0:{"buildId":"i-dnJM_MIpJSOCQWNJVMq","rsc":["$","$1","c",{"children":[["$","main",null,{"className":"mx-auto w-full max-w-2xl px-4 py-16","children":[["$","$L2",null,{"href":"/blog","className":"inline-flex items-center gap-1.5 text-sm text-fd-muted-foreground hover:text-fd-foreground mb-10 transition-colors","children":"← Back to Blog"}],["$","div",null,{"className":"mb-8","children":[["$","time",null,{"className":"text-xs font-mono text-fd-muted-foreground uppercase tracking-wider","children":"February 13, 2022"}],["$","h1",null,{"className":"text-3xl font-bold mt-2 mb-3","children":"Experience Ledgers: Persistent Memory for AI Agents"}],["$","p",null,{"className":"text-fd-muted-foreground text-lg mb-4","children":"Introducing experience ledgers, a framework for giving AI agents persistent, verifiable memory."}],["$","div",null,{"className":"flex items-center gap-3 pt-4 border-t border-fd-border","children":[["$","span",null,{"className":"text-sm text-fd-muted-foreground","children":["By ","Zach Kelling"]}],["$","div",null,{"className":"flex gap-1.5 ml-auto","children":[["$","span","Research",{"className":"text-[10px] font-mono uppercase tracking-wider bg-fd-muted text-fd-muted-foreground px-1.5 py-0.5 rounded","children":"Research"}],["$","span","Agents",{"className":"text-[10px] font-mono uppercase tracking-wider bg-fd-muted text-fd-muted-foreground px-1.5 py-0.5 rounded","children":"Agents"}]]}]]}]]}],["$","div",null,{"className":"prose dark:prose-invert max-w-none","children":[["$","p",null,{"children":"AI agents today suffer from amnesia. Each conversation starts fresh. Each session forgets the last. This isn’t just an inconvenience; it’s a fundamental limitation on what agents can become."}],"\n",["$","p",null,{"children":"Today we introduce experience ledgers, a framework for persistent, verifiable agent memory."}],"\n",["$","h2",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"the-memory-problem","children":[["$","a",null,{"data-card":"","href":"#the-memory-problem","className":"peer","children":"The Memory Problem"}],["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}],"\n",["$","p",null,{"children":"Current language models operate in bounded context windows. Information from past interactions must be explicitly retrieved or summarized. This creates several challenges:"}],"\n",["$","ol",null,{"children":["\n",["$","li",null,{"children":[["$","strong",null,{"children":"Context limits"}]," : Models can only attend to finite token sequences"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Retrieval failures"}]," : Important context gets lost or incorrectly recalled"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"No learning"}]," : Agents don’t improve from experience within deployment"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Trust gap"}]," : Users can’t verify what the agent “remembers”"]}],"\n"]}],"\n",["$","h2",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"experience-ledgers","children":[["$","a",null,{"data-card":"","href":"#experience-ledgers","className":"peer","children":"Experience Ledgers"}],["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],"$L3","$undefined"]}]]}],"\n","$L4","\n","$L5","\n","$L6","\n","$L7","\n","$L8","\n","$L9","\n","$La","\n","$Lb","\n","$Lc","\n","$Ld","\n","$Le","\n","$Lf","\n","$L10","\n","$L11","\n","$L12","\n","$L13","\n","$L14","\n","$L15","\n","$L16","\n","$L17","\n","$L18","\n","$L19","\n","$L1a","\n","$L1b","\n","$L1c","\n","$L1d","\n","$L1e","\n","$L1f","\n","$L20"]}]]}],["$L21","$L22","$L23","$L24"],"$L25"]}],"loading":null,"isPartial":false}
|
||
3:["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}]
|
||
4:["$","p",null,{"children":"An experience ledger is an append-only log of agent experiences with cryptographic attestation. Think of it as a blockchain for agent memory, but optimized for AI workloads."}]
|
||
5:["$","h3",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"core-properties","children":[["$","a",null,{"data-card":"","href":"#core-properties","className":"peer","children":"Core Properties"}],["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
|
||
6:["$","p",null,{"children":[["$","strong",null,{"children":"Append-only"}]," : Experiences are added but never modified or deleted. This creates an immutable record of agent history."]}]
|
||
7:["$","p",null,{"children":[["$","strong",null,{"children":"Content-addressed"}]," : Each experience has a unique hash based on its content. References are stable and verifiable."]}]
|
||
8:["$","p",null,{"children":[["$","strong",null,{"children":"Selective disclosure"}]," : Agents can prove they have certain experiences without revealing all memories. Zero-knowledge proofs enable privacy-preserving verification."]}]
|
||
9:["$","p",null,{"children":[["$","strong",null,{"children":"Hierarchical summarization"}]," : Raw experiences are continuously summarized at multiple abstraction levels. Agents can navigate from high-level patterns to specific instances."]}]
|
||
a:["$","h3",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"architecture","children":[["$","a",null,{"data-card":"","href":"#architecture","className":"peer","children":"Architecture"}],["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
|
||
b:["$","$L26",null,{"className":"shiki shiki-themes github-light github-dark","style":{"--shiki-light":"#24292e","--shiki-dark":"#e1e4e8","--shiki-light-bg":"#fff","--shiki-dark-bg":"#24292e"},"tabIndex":"0","icon":"<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>","children":["$","$L27",null,{"children":["$","code",null,{"children":[["$","span",null,{"className":"line","children":["$","span",null,{}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" Raw Experience -> Embedding -> Index -> Summary Layer -> Abstract Layer"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" | | | | |"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" v v v v v"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" [Ledger] [Vector DB] [Search] [Compression] [Reasoning]"}]}],"\n",["$","span",null,{"className":"line","children":["$","span",null,{"children":" "}]}]]}]}]}]
|
||
c:["$","p",null,{"children":"Each layer serves a different purpose:"}]
|
||
d:["$","ul",null,{"children":["\n",["$","li",null,{"children":[["$","strong",null,{"children":"Raw layer"}]," : Complete transcripts, full fidelity"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Embedding layer"}]," : Semantic similarity search"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Index layer"}]," : Structured retrieval by metadata"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Summary layer"}]," : Compressed representations"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Abstract layer"}]," : High-level patterns and beliefs"]}],"\n"]}]
|
||
e:["$","h2",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"implementation","children":[["$","a",null,{"data-card":"","href":"#implementation","className":"peer","children":"Implementation"}],["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
|
||
f:["$","p",null,{"children":"We’ve built a reference implementation using:"}]
|
||
10:["$","ul",null,{"children":["\n",["$","li",null,{"children":[["$","strong",null,{"children":"Storage"}]," : Content-addressed blocks on IPFS"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Attestation"}]," : Ed25519 signatures for each entry"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Indexing"}]," : HNSW vectors with metadata filtering"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Summarization"}]," : Hierarchical abstractive compression"]}],"\n"]}]
|
||
11:["$","p",null,{"children":"The system maintains consistency between layers. When raw experiences update, summaries regenerate. When summaries change, abstractions refresh."}]
|
||
12:["$","h2",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"use-cases","children":[["$","a",null,{"data-card":"","href":"#use-cases","className":"peer","children":"Use Cases"}],["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
|
||
13:["$","h3",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"personalized-assistants","children":[["$","a",null,{"data-card":"","href":"#personalized-assistants","className":"peer","children":"Personalized Assistants"}],["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
|
||
14:["$","p",null,{"children":"An agent with an experience ledger remembers user preferences, past conversations, and accumulated context. The user can audit this memory and request modifications."}]
|
||
15:["$","h3",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"collaborative-research","children":[["$","a",null,{"data-card":"","href":"#collaborative-research","className":"peer","children":"Collaborative Research"}],["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
|
||
16:["$","p",null,{"children":"Multiple agents working on a problem can share experience ledgers. Discoveries propagate. Dead ends are remembered. The collective makes progress."}]
|
||
17:["$","h3",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"verifiable-ai","children":[["$","a",null,{"data-card":"","href":"#verifiable-ai","className":"peer","children":"Verifiable AI"}],["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
|
||
18:["$","p",null,{"children":"When an agent claims expertise or references past interactions, the ledger provides proof. Trust becomes verifiable rather than assumed."}]
|
||
19:["$","h2",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"privacy-considerations","children":[["$","a",null,{"data-card":"","href":"#privacy-considerations","className":"peer","children":"Privacy Considerations"}],["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
|
||
1a:["$","p",null,{"children":"Persistent memory raises legitimate privacy concerns. Our design addresses these through:"}]
|
||
1b:["$","ul",null,{"children":["\n",["$","li",null,{"children":[["$","strong",null,{"children":"User control"}]," : Users own their ledger data"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Selective sync"}]," : Choose what experiences to persist"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Cryptographic deletion"}]," : Encrypted entries can be made unreadable"]}],"\n",["$","li",null,{"children":[["$","strong",null,{"children":"Audit logs"}]," : All access is recorded"]}],"\n"]}]
|
||
1c:["$","h2",null,{"className":"flex scroll-m-28 flex-row items-center gap-2","id":"whats-next","children":[["$","a",null,{"data-card":"","href":"#whats-next","className":"peer","children":"What’s Next"}],["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100","aria-hidden":true,"children":[["$","path","1cjeqo",{"d":"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["$","path","19qd67",{"d":"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}],"$undefined"]}]]}]
|
||
1d:["$","p",null,{"children":"We’re releasing the experience ledger specification and reference implementation under Apache 2.0. Initial integration with Zen models comes next quarter."}]
|
||
1e:["$","p",null,{"children":"Memory transforms what agents can do. It’s time to give them the ability to remember."}]
|
||
1f:["$","hr",null,{}]
|
||
20:["$","p",null,{"children":["$","em",null,{"children":"Zach Kelling is a co-founder of Zoo Labs Foundation."}]}]
|
||
21:["$","script","script-0",{"src":"/_next/static/chunks/8de849ca74fc071f.js","async":true}]
|
||
22:["$","script","script-1",{"src":"/_next/static/chunks/e62b91212ee7f8ff.js","async":true}]
|
||
23:["$","script","script-2",{"src":"/_next/static/chunks/f19fe44237e54646.js","async":true}]
|
||
24:["$","script","script-3",{"src":"/_next/static/chunks/cb0a883bafeb6805.js","async":true}]
|
||
25:["$","$L28",null,{"children":["$","$29",null,{"name":"Next.MetadataOutlet","children":"$@2a"}]}]
|
||
2a:null
|