{
  "source_file": "0930",
  "source_platform": "Ghost",
  "author": "Avi Chawla / Daily Dose of Data Science",
  "title_listed": "Why Your Agent Remembers Everything And Understands Nothing 2",
  "keywords": "",
  "domain": "大模型算法",
  "content_type": "深度技术解析",
  "is_paid_flag": "否",
  "url": "https://www.dailydoseofds.com/p/why-your-agent-remembers-everything-and-understands-nothing-2/",
  "publish_date": "2026-08-11",
  "corpus_stage": "",
  "notes": "",
  "id": "93e19e685109",
  "collected_at": "2026-10-02T13:46:14",
  "title": "Why Your Agent Remembers Everything and Understands Nothing",
  "body_markdown": "[ Skip to main content  ](https://www.dailydoseofds.com/p/why-your-agent-remembers-everything-and-understands-nothing-2/#sx-main)\n[ ![Daily Dose of Data Science](https://storage.ghost.io/c/3f/df/3fdf6ed2-17ac-4b12-a693-8078bd13e748/content/images/2025/12/dailyds-logo-transparent-1.png) ](https://www.dailydoseofds.com)\n  * [ Newsletter ](https://dailydoseofds.github.io/ai-engg-book/)\n  * [ Archive ](https://www.dailydoseofds.com/archive/)\n  * Guidebooks \n    * [ MCP Guidebook ](https://www.dailydoseofds.com/what-is-mcp/)\n[ Agents Guidebook ](https://drive.google.com/file/d/1Th8mN_IF7Ttc8bI_OLtUuQ7Mjx3aJ6Hi/view)\n[ AI Engineering Guidebook ](https://drive.google.com/file/d/1_s2UaD7tEPECjgC5YMOa1LIOB9HUWFO-/view)\n[ DS Guidebook ](https://drive.google.com/file/d/1ZunUHwkD2Ut0_LrgDTDmlQRQkfT2lkVf/view)\n[ Courses ](https://www.dailydoseofds.com/)\n[ MLOps/LLMOps Course ](https://www.dailydoseofds.com/mlops-crash-course-part-1/)\n[ Reinforcement Learning Course ](https://www.dailydoseofds.com/rl-course-part-1/)\n[ AI Agents Course ](https://www.dailydoseofds.com/ai-agents-crash-course-part-1-with-implementation/)\n[ MCP Course ](https://www.dailydoseofds.com/model-context-protocol-crash-course-part-1/)\n[ RAG Systems Course ](https://www.dailydoseofds.com/a-crash-course-on-building-rag-systems-part-1-with-implementations/)\n  * Courses \n    * [ MLOps/LLMOps Course ](https://www.dailydoseofds.com/mlops-crash-course-part-1/)\n[ Reinforcement Learning Course ](https://www.dailydoseofds.com/rl-course-part-1/)\n[ AI Agents Course ](https://www.dailydoseofds.com/ai-agents-crash-course-part-1-with-implementation/)\n[ MCP Course ](https://www.dailydoseofds.com/model-context-protocol-crash-course-part-1/)\n[ RAG Systems Course ](https://www.dailydoseofds.com/a-crash-course-on-building-rag-systems-part-1-with-implementations/)\n[ LLM and Fine-tuning ](https://www.dailydoseofds.com/bi-encoders-and-cross-encoders-for-sentence-pair-similarity-scoring-part-1/)\n[ Classical ML and Deep Learning ](https://www.dailydoseofds.com/where-did-the-assumptions-of-linear-regression-originate-from/)\n[ Engineering Best Practices ](https://www.dailydoseofds.com/8-fatal-yet-non-obvious-pitfalls-and-cautionary-measures-in-data-science/)\n  *     * [ Newsletter ](https://dailydoseofds.github.io/ai-engg-book/)\n[ Archive ](https://www.dailydoseofds.com/archive/)\nGuidebooks \n      * [ MCP Guidebook ](https://www.dailydoseofds.com/what-is-mcp/)\n      * [ Agents Guidebook ](https://drive.google.com/file/d/1Th8mN_IF7Ttc8bI_OLtUuQ7Mjx3aJ6Hi/view)\n      * [ AI Engineering Guidebook ](https://drive.google.com/file/d/1_s2UaD7tEPECjgC5YMOa1LIOB9HUWFO-/view)\n      * [ DS Guidebook ](https://drive.google.com/file/d/1ZunUHwkD2Ut0_LrgDTDmlQRQkfT2lkVf/view)\n      * [ Courses ](https://www.dailydoseofds.com/)\n      * [ MLOps/LLMOps Course ](https://www.dailydoseofds.com/mlops-crash-course-part-1/)\n      * [ Reinforcement Learning Course ](https://www.dailydoseofds.com/rl-course-part-1/)\n      * [ AI Agents Course ](https://www.dailydoseofds.com/ai-agents-crash-course-part-1-with-implementation/)\n      * [ MCP Course ](https://www.dailydoseofds.com/model-context-protocol-crash-course-part-1/)\n      * [ RAG Systems Course ](https://www.dailydoseofds.com/a-crash-course-on-building-rag-systems-part-1-with-implementations/)\nCourses \n      * [ MLOps/LLMOps Course ](https://www.dailydoseofds.com/mlops-crash-course-part-1/)\n      * [ Reinforcement Learning Course ](https://www.dailydoseofds.com/rl-course-part-1/)\n      * [ AI Agents Course ](https://www.dailydoseofds.com/ai-agents-crash-course-part-1-with-implementation/)\n      * [ MCP Course ](https://www.dailydoseofds.com/model-context-protocol-crash-course-part-1/)\n      * [ RAG Systems Course ](https://www.dailydoseofds.com/a-crash-course-on-building-rag-systems-part-1-with-implementations/)\n      * [ LLM and Fine-tuning ](https://www.dailydoseofds.com/bi-encoders-and-cross-encoders-for-sentence-pair-similarity-scoring-part-1/)\n      * [ Classical ML and Deep Learning ](https://www.dailydoseofds.com/where-did-the-assumptions-of-linear-regression-originate-from/)\n      * [ Engineering Best Practices ](https://www.dailydoseofds.com/8-fatal-yet-non-obvious-pitfalls-and-cautionary-measures-in-data-science/)\n\n\nSign In  [ Get Started ](https://www.dailydoseofds.com/membership)\n/\n  * [ Newsletter ](https://dailydoseofds.github.io/ai-engg-book/)\n  * [ Archive ](https://www.dailydoseofds.com/archive/)\n  * Guidebooks \n    * [ MCP Guidebook ](https://www.dailydoseofds.com/what-is-mcp/)\n    * [ Agents Guidebook ](https://drive.google.com/file/d/1Th8mN_IF7Ttc8bI_OLtUuQ7Mjx3aJ6Hi/view)\n    * [ AI Engineering Guidebook ](https://drive.google.com/file/d/1_s2UaD7tEPECjgC5YMOa1LIOB9HUWFO-/view)\n    * [ DS Guidebook ](https://drive.google.com/file/d/1ZunUHwkD2Ut0_LrgDTDmlQRQkfT2lkVf/view)\n    * [ Courses ](https://www.dailydoseofds.com/)\n    * [ MLOps/LLMOps Course ](https://www.dailydoseofds.com/mlops-crash-course-part-1/)\n    * [ Reinforcement Learning Course ](https://www.dailydoseofds.com/rl-course-part-1/)\n    * [ AI Agents Course ](https://www.dailydoseofds.com/ai-agents-crash-course-part-1-with-implementation/)\n    * [ MCP Course ](https://www.dailydoseofds.com/model-context-protocol-crash-course-part-1/)\n    * [ RAG Systems Course ](https://www.dailydoseofds.com/a-crash-course-on-building-rag-systems-part-1-with-implementations/)\n  * Courses \n    * [ MLOps/LLMOps Course ](https://www.dailydoseofds.com/mlops-crash-course-part-1/)\n    * [ Reinforcement Learning Course ](https://www.dailydoseofds.com/rl-course-part-1/)\n    * [ AI Agents Course ](https://www.dailydoseofds.com/ai-agents-crash-course-part-1-with-implementation/)\n    * [ MCP Course ](https://www.dailydoseofds.com/model-context-protocol-crash-course-part-1/)\n    * [ RAG Systems Course ](https://www.dailydoseofds.com/a-crash-course-on-building-rag-systems-part-1-with-implementations/)\n    * [ LLM and Fine-tuning ](https://www.dailydoseofds.com/bi-encoders-and-cross-encoders-for-sentence-pair-similarity-scoring-part-1/)\n    * [ Classical ML and Deep Learning ](https://www.dailydoseofds.com/where-did-the-assumptions-of-linear-regression-originate-from/)\n    * [ Engineering Best Practices ](https://www.dailydoseofds.com/8-fatal-yet-non-obvious-pitfalls-and-cautionary-measures-in-data-science/)\n  * Sign In \n\n\nAug 5, 2026  Agents \n#  Why Your Agent Remembers Everything and Understands Nothing \nBuilding a pattern recognition layer for memory in production. \n![Avi Chawla](../images/000.jpg)\nAvi Chawla \n👉\n* * *\nEvery agent memory system today solves the same problem. They store facts and retrieve the right ones at query time.\nThe part that’s missing is pattern recognition.\nConsider a project management assistant that reads status updates from an engineering team. Three people filled out updates in the same week. Each one reports a blocker, and each report is accurate and specific.\nThe agent stores all three and can retrieve any of them on request.\nWhat it can’t tell you is that all three blockers trace back to a single delayed task.\n![](../images/001.png)\nThink of it like this. A new project manager reads three status updates and sees three problems to solve. An experienced one reads the same three and sees one problem with three symptoms.\nNobody taught the experienced PM to connect them. They’ve sat through enough standups to recognize the shape.\nAgent memory today gives you the new PM. It stores every update correctly, retrieves them accurately, but misses the structure connecting them,\n[**Zep**](https://www.getzep.com/?ref=dailydoseofds.com) implements a feature called [**Observations**](https://help.getzep.com/observations?ref=dailydoseofds.com) that addresses this. It automatically detects cross-conversation patterns from the knowledge graph and surfaces them as durable, evidence-backed context the agent can use.\nLet’s look at how it works.\n* * *\n#### How the knowledge graph stores data\nZep builds a knowledge graph from conversations and business data. The structure has three building blocks:\n  * **Entities** are the nouns: people, products, places, tasks, services.\n  * **Facts** are specific claims connecting two entities, stored as labeled edges.\n  * **Episodes** are the raw source material: the actual conversation messages, JSON payloads, or documents that Zep ingested. Every fact traces back to the episode it was extracted from.\n\n\nGraphs can be scoped to a single user or shared across a team.\nA user graph holds one person’s history. A shared graph holds everything about a project, a workspace, or an organization, with data from many people flowing into the same structure.\nHere’s a concrete example of a shared project graph.\nThree engineers file status updates with a PM assistant over one week:\n  * **Alice (Monday):** The API migration is blocked. She’s waiting on the auth service refactor, which the backend team owns.\n  * **Bob (Wednesday):** The payments integration is stalled. He’s also waiting on the auth service refactor from the backend team.\n  * **Clara (Friday):** The checkout flow can’t move forward because the payments integration isn’t ready. That work belongs to Bob.\n\n\nZep processes each update as an episode, extracts the entities and facts automatically, and builds the knowledge graph:\n![](../images/002.png)\nEvery fact is accurate and individually retrievable. What the graph doesn’t contain is the shape those facts form together.\n* * *\n#### Why better retrieval doesn’t solve this\nWhen the agent queries “what’s blocking the team,” it gets back the stored facts:\n  * Alice is blocked on the API migration\n  * The API migration is waiting on the auth service refactor\n  * Bob is blocked on the payments integration\n  * The payments integration is waiting on the auth service refactor\n  * Clara is blocked on the checkout flow\n  * The checkout flow is waiting on the payments integration\n\n\nEvery line is correct, but nothing in the result tells the agent that unblocking one task clears all three people.\n![](../images/003.png)\nYou can tune the reranker, widen the search scope, or return more results.\nNone of it helps, because the insight the agent needs was never stored as a discrete piece of content. It exists in how the facts connect across three separate conversations.\nThe workaround most teams reach for is a rule: flag any task that three or more people mention as a blocker. It just tells you the team is stuck without telling you which task to unblock first, and it only catches blockers that people name directly.\nClara never mentions the auth service. Her update is two hops away from the actual cause.\nAt this scale, a person could connect the dots manually. But at thirty status updates a week, nobody does, and that’s exactly when the chain matters most.\n* * *\n#### What Observations produce\nFor this project graph, Zep generates:\n> **Name:** Auth service refactor blocking multiple workstreams  \n>   \n> **Summary:** The auth service refactor, owned by the backend team, is the root blocker in a dependency chain affecting three workstreams. Alice’s API migration and Bob’s payments integration are both waiting on it directly. Clara’s checkout flow is blocked downstream of the payments integration. Unblocking the auth service refactor clears all three.\nNo individual fact in the graph contains this. It spans three people, four work items, and three separate conversations.\n![](../images/004.png)\nThree properties make observations different from individual facts:\n  * **Cross-entity:** A fact sits on one edge between two entities. An observation synthesizes across an entire cluster, connecting multiple entities and conversations.\n  * **Evidence-backed:** Every claim traces to specific facts and episodes in the graph.\n  * **Read-only:** You can’t manually create, edit, or delete observations. They follow the evidence. The mechanism below explains why.\n\n\n* * *\n#### How Observations are created\nThe mechanism is a two-stage pipeline:\n  * A deterministic algorithm first handles the clustering\n  * An LLM writes the summary afterward. The model never decides what gets grouped.\n\n\n##### Reducing facts to signatures\nZep runs a background process that periodically checks for new data. When new conversations have been ingested and the graph has settled, it kicks off the analysis.\nThe first step reduces every fact to a **signature** : the two entities it connects plus the relationship type. The goal is to find which conversations reference the same relationships between the same entities.\nAfter reduction, each episode (conversation) has a set of signatures:\n  * **Episode 1** (Alice’s update): `(Alice, API Migration)`, `(API Migration, Auth Service)`, `(Auth Service, Backend Team)`\n  * **Episode 2** (Bob’s update): `(Auth Service, Backend Team)`, `(Payments Integration, Auth Service)`, `(Bob, Payments Integration)`\n  * **Episode 3** (Clara’s update): `(Bob, Payments Integration)`, `(Checkout Flow, Payments Integration)`, `(Clara, Checkout Flow)`\n\n![](../images/005.png)\nThe overlaps become visible:\n  * `(Auth Service, Backend Team)` appears in Episode 1 and Episode 2\n  * `(Bob, Payments Integration)` appears in Episode 2 and Episode 3\n  * Episode 1 and Episode 3 share nothing\n\n\nAlice never mentions Bob, Clara, the payments integration, or the checkout flow. Clara never mentions Alice, the auth service, or the backend team.\n##### Building the episode graph\nHere, Zep flips the perspective.\nInstead of looking at entities connected by facts, it builds an **episode graph** where conversations are the nodes and shared signatures are the edges.\n  * Episode 1 links to Episode 2 through `(Auth Service, Backend Team)`\n  * Episode 2 links to Episode 3 through `(Bob, Payments Integration)`\n  * Episode 1 and Episode 3 don’t share a signature\n\n\nBut all three end up in the same **connected component** because Episode 2 bridges them.\nAlice’s update and Clara’s update join the same cluster despite having no entity in common, because Bob’s update touches both sides and acts as the bridge between the two.\n![](../images/006.png)\nWorth noticing that the chain the algorithm follows, and the dependency chain in the project are the same structure. Zep finds the root blocker by following exactly the kind of transitive link it was built to follow.\nThis does not use embeddings, semantic similarity, and no ML model. It’s pure graph topology: which conversations share facts about the same entity pairs, and how those shared pairs chain them into connected groups.\nThe distinction matters because embedding-based clustering groups content that discusses similar topics. All three status updates would cluster together under that approach simply because they’re all about engineering work, along with every other status update that week.\nSignature-based clustering groups episodes that reference the same relationships between the same entities, which is what makes the specific chain detectable.\n##### Summarizing the cluster\nOnce the algorithm identifies the connected component, an LLM writes the summary.\nA single, constrained LLM call receives the cluster’s key entities, the supporting conversations in chronological order, and the relationship types.\nIt then returns a name and summary steered toward durable signals like decisions, constraints, dependencies, and state changes, and restricted to facts the evidence explicitly supports.\n![](../images/007.png)\nEvery structural property of the observation (which entities, which conversations, the time window) is decided by the algorithm. The LLM only turns that structure into readable prose.\nThis is why observations are read-only. They’re structural properties of the graph, described in natural language. When the evidence changes:\n  * New conversations that fit an existing observation cause it to be regenerated with the new evidence\n  * Contradicting evidence causes the old observation to be retired\n  * The graph always reflects the current state of what is known’\n\n![](../images/008.png)\nIf the backend team ships the auth service refactor next week, the observation updates. Alice and Bob unblock, Clara’s dependency shifts, and the pattern reforms around whatever is actually blocking work now.\n* * *\n#### How does this help the agent\nRetrieving observations through the SDK:\n\n```\n# List all observations for a project graph\nobservations = client.graph.observation.get_by_graph_id(graph_id=\"project-atlas”)\n\n# Search observations by relevance\nresults = client.graph.search(\n    graph_id=\"project-atlas”,\n    query=\"blocked workstreams”,\n    scope=\"observations”,\n)\n```\n\nNow consider the PM asking the agent what the team should prioritize this week.\n**Without observations,** the agent retrieves the blocker facts and lists them. Three people are blocked. Two mention the auth service. One mentions the payment integration. The PM gets an accurate summary and still has to work out the ordering.\n**With observations,** the agent’s context includes the dependency chain. It reports that the auth service refactor is the root blocker, that unblocking it clears Alice and Bob directly and Clara downstream, and that the single highest-leverage action this week is getting the backend team the resources to finish it.\n![](../images/009.png)\nSame query, same data. One response describes the situation. The other identifies the action.\n* * *\nThe progression of context in Zep:\n  * **Episodes** store raw conversation data\n  * **Facts** structure it into timestamped claims\n  * **Entity summaries** narrate the history of individual nodes\n  * **Observations** synthesize patterns across the cluster\n\n\nEach layer answers a different type of question. Together, they move agents from recall toward understanding.\n![](../images/010.png)\nAlice, Bob, and Clara each filed an accurate status update. Every fact went into the graph correctly, and every one was retrievable.\nWhat none of them could report, because none of them could see it, was the chain running underneath all three.\nThat’s the gap Observations closes. Not better retrieval of what people said, but structural analysis of what their combined data shows.\n**Resources:**\n  * [**Zep Graphiti GitHub repo →**](https://github.com/getzep/graphiti?ref=dailydoseofds.com)\n  * [**Zep Observations docs →**](https://help.getzep.com/observations?ref=dailydoseofds.com)\n\n\n👉 Over to you: have you built an agent where the memory system returned the right facts but still missed the structure connecting them?\nPublished on Aug 5, 2026 \nComments \nShare \nCopy link [ Share to X ](https://x.com/intent/tweet?url=https%3A%2F%2Fwww.dailydoseofds.com%2Fp%2Fwhy-your-agent-remembers-everything-and-understands-nothing-2%2F&text=Why%20Your%20Agent%20Remembers%20Everything%20and%20Understands%20Nothing) [ Share to Facebook ](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.dailydoseofds.com%2Fp%2Fwhy-your-agent-remembers-everything-and-understands-nothing-2%2F) [ Share to Linkedin ](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.dailydoseofds.com%2Fp%2Fwhy-your-agent-remembers-everything-and-understands-nothing-2%2F)\nCopied \n[ Previous  Why RAG Latency Is a Prefill Problem, Not a Retrieval Problem  ](https://www.dailydoseofds.com/building-rag-systems-course-part-12-with-implementation/) [ Next  5 LLM Quantization Techniques  ](https://www.dailydoseofds.com/p/5-llm-quantization-techniques/)\n[ ![Daily Dose of Data Science](https://storage.ghost.io/c/3f/df/3fdf6ed2-17ac-4b12-a693-8078bd13e748/content/images/2025/12/dailyds-logo-transparent-1.png) ](https://www.dailydoseofds.com)\nA daily column with insights, observations, tutorials and best practices on python and data science. Read by industry professionals at big tech, startups, and engineering students. \n  * Menu \n  * [ Contact ](https://www.dailydoseofds.com/contact/)\n  * [ FAQ ](https://www.dailydoseofds.com/faq/)\n\n\n[Daily Dose of Data Science](https://www.dailydoseofds.com) © 2026 \n[ ](https://x.com/_avichawla \"X \\(Formerly Twitter\\)\")\n",
  "metadata": {
    "title": "Why Your Agent Remembers Everything and Understands Nothing",
    "description": "Building a pattern recognition layer for memory in production.",
    "keywords": null,
    "author": null,
    "og:site_name": "Daily Dose of Data Science",
    "og:type": "article",
    "og:title": "Why Your Agent Remembers Everything and Understands Nothing",
    "og:description": "Building a pattern recognition layer for memory in production.",
    "og:url": "https://www.dailydoseofds.com/p/why-your-agent-remembers-everything-and-understands-nothing-2/",
    "og:image": "https://storage.ghost.io/c/3f/df/3fdf6ed2-17ac-4b12-a693-8078bd13e748/content/images/2026/08/zep_observations.webp",
    "og:image:width": "1100",
    "og:image:height": "955",
    "twitter:card": "summary_large_image",
    "twitter:title": "Why Your Agent Remembers Everything and Understands Nothing",
    "twitter:description": "Building a pattern recognition layer for memory in production.",
    "twitter:url": "https://www.dailydoseofds.com/p/why-your-agent-remembers-everything-and-understands-nothing-2/",
    "twitter:image": "https://storage.ghost.io/c/3f/df/3fdf6ed2-17ac-4b12-a693-8078bd13e748/content/images/2026/08/zep_observations.webp",
    "twitter:label1": "Written by",
    "twitter:data1": "Avi Chawla",
    "twitter:label2": "Filed under",
    "twitter:data2": "Agents, Memory",
    "twitter:site": "@_avichawla",
    "article:published_time": "2026-08-04T18:30:00.000Z",
    "article:modified_time": "2026-08-11T18:31:44.000Z",
    "article:tag": "Memory"
  },
  "paywall": {
    "listed_paid": false,
    "detected": false,
    "marker": "",
    "public_only": false,
    "policy": "付费/会员内容只保留页面公开可见部分，不绕过付费墙"
  },
  "crawl": {
    "success": true,
    "status_code": 200,
    "error": ""
  },
  "code_blocks": [
    {
      "language": "txt",
      "file": "attachments/93e19e685109/code/block_000.txt",
      "chars": 284
    }
  ],
  "images": [
    {
      "src": "https://storage.ghost.io/c/3f/df/3fdf6ed2-17ac-4b12-a693-8078bd13e748/content/images/size/w400/2026/03/avi-google.jpg",
      "alt": "Avi Chawla",
      "local_path": "attachments/93e19e685109/images/000.jpg",
      "bytes": 11344,
      "downloaded": true,
      "status": "ok",
      "url": "https://storage.ghost.io/c/3f/df/3fdf6ed2-17ac-4b12-a693-8078bd13e748/content/images/size/w400/2026/03/avi-google.jpg",
      "reused": true,
      "retried_at": "2026-10-18T17:15:17Z"
    },
    {
      "src": "https://substackcdn.com/image/fetch/$s_!lvD9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0a5993f-93bf-4204-b128-652b69658479_2264x1268.png",
      "alt": "",
      "local_path": "attachments/93e19e685109/images/001.png",
      "bytes": 563257,
      "downloaded": true,
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!lvD9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0a5993f-93bf-4204-b128-652b69658479_2264x1268.png",
      "reused": true,
      "retried_at": "2026-10-18T17:15:17Z"
    },
    {
      "src": "https://substackcdn.com/image/fetch/$s_!N5hu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eda1a35-ba2a-4d3e-bea1-13754592a0a8_2937x1702.png",
      "alt": "",
      "local_path": "attachments/93e19e685109/images/002.png",
      "bytes": 64385,
      "downloaded": true,
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!N5hu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eda1a35-ba2a-4d3e-bea1-13754592a0a8_2937x1702.png",
      "reused": true,
      "retried_at": "2026-10-18T17:15:17Z"
    },
    {
      "src": "https://substackcdn.com/image/fetch/$s_!hd-8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c38093-68e4-437c-a7a6-4a04dbb4ae1d_2660x1462.png",
      "alt": "",
      "local_path": "attachments/93e19e685109/images/003.png",
      "bytes": 534041,
      "downloaded": true,
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!hd-8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c38093-68e4-437c-a7a6-4a04dbb4ae1d_2660x1462.png",
      "reused": true,
      "retried_at": "2026-10-18T17:15:17Z"
    },
    {
      "src": "https://substackcdn.com/image/fetch/$s_!SSAR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4882fd5-85df-4d8f-ad6c-55251df7b241_1896x1024.png",
      "alt": "",
      "local_path": "attachments/93e19e685109/images/004.png",
      "bytes": 381958,
      "downloaded": true,
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!SSAR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4882fd5-85df-4d8f-ad6c-55251df7b241_1896x1024.png",
      "reused": true,
      "retried_at": "2026-10-18T17:15:17Z"
    },
    {
      "src": "https://substackcdn.com/image/fetch/$s_!RBeV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa0299b-0daa-46a8-b1c5-836748132cbc_3030x1105.png",
      "alt": "",
      "local_path": "attachments/93e19e685109/images/005.png",
      "bytes": 76061,
      "downloaded": true,
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!RBeV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa0299b-0daa-46a8-b1c5-836748132cbc_3030x1105.png",
      "reused": true,
      "retried_at": "2026-10-18T17:15:17Z"
    },
    {
      "src": "https://substackcdn.com/image/fetch/$s_!-02_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe428802-3983-45d6-9c56-6dc487638595_2673x1377.png",
      "alt": "",
      "local_path": "attachments/93e19e685109/images/006.png",
      "bytes": 77168,
      "downloaded": true,
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!-02_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe428802-3983-45d6-9c56-6dc487638595_2673x1377.png",
      "reused": true,
      "retried_at": "2026-10-18T17:15:17Z"
    },
    {
      "src": "https://substackcdn.com/image/fetch/$s_!bSwb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fa818bb-9dc7-4ac3-84f8-48b8f6df4c95_2836x1402.png",
      "alt": "",
      "local_path": "attachments/93e19e685109/images/007.png",
      "bytes": 88713,
      "downloaded": true,
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!bSwb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fa818bb-9dc7-4ac3-84f8-48b8f6df4c95_2836x1402.png",
      "reused": true,
      "retried_at": "2026-10-18T17:15:17Z"
    },
    {
      "src": "https://substackcdn.com/image/fetch/$s_!AqE1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006a1759-ef21-419a-8a6c-17119ba06b1d_2428x1198.png",
      "alt": "",
      "local_path": "attachments/93e19e685109/images/008.png",
      "bytes": 467217,
      "downloaded": true,
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!AqE1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006a1759-ef21-419a-8a6c-17119ba06b1d_2428x1198.png",
      "reused": true,
      "retried_at": "2026-10-18T17:15:17Z"
    },
    {
      "src": "https://substackcdn.com/image/fetch/$s_!1Ldi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d51f993-db82-406b-8401-b73cff0caa5d_2461x1410.png",
      "alt": "",
      "local_path": "attachments/93e19e685109/images/009.png",
      "bytes": 539735,
      "downloaded": true,
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!1Ldi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d51f993-db82-406b-8401-b73cff0caa5d_2461x1410.png",
      "reused": true,
      "retried_at": "2026-10-18T17:15:17Z"
    },
    {
      "src": "https://substackcdn.com/image/fetch/$s_!OpSU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fa66cdd-5b7e-4474-91a8-350df47adfcb_2352x1097.png",
      "alt": "",
      "local_path": "attachments/93e19e685109/images/010.png",
      "bytes": 393568,
      "downloaded": true,
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!OpSU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fa66cdd-5b7e-4474-91a8-350df47adfcb_2352x1097.png",
      "reused": true,
      "retried_at": "2026-10-18T17:15:17Z"
    }
  ],
  "audio": [],
  "videos": [],
  "links": [
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/p/why-your-agent-remembers-everything-and-understands-nothing-2/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/archive/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/what-is-mcp/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/mlops-crash-course-part-1/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/rl-course-part-1/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/ai-agents-crash-course-part-1-with-implementation/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/model-context-protocol-crash-course-part-1/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/a-crash-course-on-building-rag-systems-part-1-with-implementations/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/bi-encoders-and-cross-encoders-for-sentence-pair-similarity-scoring-part-1/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/where-did-the-assumptions-of-linear-regression-originate-from/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/8-fatal-yet-non-obvious-pitfalls-and-cautionary-measures-in-data-science/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/membership"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/building-rag-systems-course-part-12-with-implementation/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/p/5-llm-quantization-techniques/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/contact/"
    },
    {
      "type": "internal",
      "href": "https://www.dailydoseofds.com/faq/"
    },
    {
      "type": "external",
      "href": "https://dailydoseofds.github.io/ai-engg-book/"
    },
    {
      "type": "external",
      "href": "https://drive.google.com/file/d/1Th8mN_IF7Ttc8bI_OLtUuQ7Mjx3aJ6Hi/view"
    },
    {
      "type": "external",
      "href": "https://drive.google.com/file/d/1_s2UaD7tEPECjgC5YMOa1LIOB9HUWFO-/view"
    },
    {
      "type": "external",
      "href": "https://drive.google.com/file/d/1ZunUHwkD2Ut0_LrgDTDmlQRQkfT2lkVf/view"
    },
    {
      "type": "external",
      "href": "https://www.getzep.com/"
    },
    {
      "type": "external",
      "href": "https://help.getzep.com/observations"
    },
    {
      "type": "external",
      "href": "https://github.com/getzep/graphiti"
    },
    {
      "type": "external",
      "href": "https://x.com/intent/tweet?text=Why+Your+Agent+Remembers+Everything+and+Understands+Nothing&url=https%3A%2F%2Fwww.dailydoseofds.com%2Fp%2Fwhy-your-agent-remembers-everything-and-understands-nothing-2%2F"
    },
    {
      "type": "external",
      "href": "https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.dailydoseofds.com%2Fp%2Fwhy-your-agent-remembers-everything-and-understands-nothing-2%2F"
    },
    {
      "type": "external",
      "href": "https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.dailydoseofds.com%2Fp%2Fwhy-your-agent-remembers-everything-and-understands-nothing-2%2F"
    },
    {
      "type": "external",
      "href": "https://x.com/_avichawla"
    }
  ],
  "repair_version": 2,
  "repaired_at": "2026-10-20T17:27:00Z",
  "source_url": "https://www.dailydoseofds.com/p/why-your-agent-remembers-everything-and-understands-nothing-2/",
  "delivery_status": "unverified",
  "discovery_status": "short_or_dynamic",
  "missing_reason": "正文过短或动态页面，未确认完整",
  "source_body_markdown": "[ Skip to main content  ](https://www.dailydoseofds.com/p/why-your-agent-remembers-everything-and-understands-nothing-2/#sx-main)\n[ ![Daily Dose of Data Science](https://storage.ghost.io/c/3f/df/3fdf6ed2-17ac-4b12-a693-8078bd13e748/content/images/2025/12/dailyds-logo-transparent-1.png) ](https://www.dailydoseofds.com)\n  * [ Newsletter ](https://dailydoseofds.github.io/ai-engg-book/)\n  * [ Archive ](https://www.dailydoseofds.com/archive/)\n  * Guidebooks \n    * [ MCP Guidebook ](https://www.dailydoseofds.com/what-is-mcp/)\n[ Agents Guidebook ](https://drive.google.com/file/d/1Th8mN_IF7Ttc8bI_OLtUuQ7Mjx3aJ6Hi/view)\n[ AI Engineering Guidebook ](https://drive.google.com/file/d/1_s2UaD7tEPECjgC5YMOa1LIOB9HUWFO-/view)\n[ DS Guidebook ](https://drive.google.com/file/d/1ZunUHwkD2Ut0_LrgDTDmlQRQkfT2lkVf/view)\n[ Courses ](https://www.dailydoseofds.com/)\n[ MLOps/LLMOps Course ](https://www.dailydoseofds.com/mlops-crash-course-part-1/)\n[ Reinforcement Learning Course ](https://www.dailydoseofds.com/rl-course-part-1/)\n[ AI Agents Course ](https://www.dailydoseofds.com/ai-agents-crash-course-part-1-with-implementation/)\n[ MCP Course ](https://www.dailydoseofds.com/model-context-protocol-crash-course-part-1/)\n[ RAG Systems Course ](https://www.dailydoseofds.com/a-crash-course-on-building-rag-systems-part-1-with-implementations/)\n  * Courses \n    * [ MLOps/LLMOps Course ](https://www.dailydoseofds.com/mlops-crash-course-part-1/)\n[ Reinforcement Learning Course ](https://www.dailydoseofds.com/rl-course-part-1/)\n[ AI Agents Course ](https://www.dailydoseofds.com/ai-agents-crash-course-part-1-with-implementation/)\n[ MCP Course ](https://www.dailydoseofds.com/model-context-protocol-crash-course-part-1/)\n[ RAG Systems Course ](https://www.dailydoseofds.com/a-crash-course-on-building-rag-systems-part-1-with-implementations/)\n[ LLM and Fine-tuning ](https://www.dailydoseofds.com/bi-encoders-and-cross-encoders-for-sentence-pair-similarity-scoring-part-1/)\n[ Classical ML and Deep Learning ](https://www.dailydoseofds.com/where-did-the-assumptions-of-linear-regression-originate-from/)\n[ Engineering Best Practices ](https://www.dailydoseofds.com/8-fatal-yet-non-obvious-pitfalls-and-cautionary-measures-in-data-science/)\n  *     * [ Newsletter ](https://dailydoseofds.github.io/ai-engg-book/)\n[ Archive ](https://www.dailydoseofds.com/archive/)\nGuidebooks \n      * [ MCP Guidebook ](https://www.dailydoseofds.com/what-is-mcp/)\n      * [ Agents Guidebook ](https://drive.google.com/file/d/1Th8mN_IF7Ttc8bI_OLtUuQ7Mjx3aJ6Hi/view)\n      * [ AI Engineering Guidebook ](https://drive.google.com/file/d/1_s2UaD7tEPECjgC5YMOa1LIOB9HUWFO-/view)\n      * [ DS Guidebook ](https://drive.google.com/file/d/1ZunUHwkD2Ut0_LrgDTDmlQRQkfT2lkVf/view)\n      * [ Courses ](https://www.dailydoseofds.com/)\n      * [ MLOps/LLMOps Course ](https://www.dailydoseofds.com/mlops-crash-course-part-1/)\n      * [ Reinforcement Learning Course ](https://www.dailydoseofds.com/rl-course-part-1/)\n      * [ AI Agents Course ](https://www.dailydoseofds.com/ai-agents-crash-course-part-1-with-implementation/)\n      * [ MCP Course ](https://www.dailydoseofds.com/model-context-protocol-crash-course-part-1/)\n      * [ RAG Systems Course ](https://www.dailydoseofds.com/a-crash-course-on-building-rag-systems-part-1-with-implementations/)\nCourses \n      * [ MLOps/LLMOps Course ](https://www.dailydoseofds.com/mlops-crash-course-part-1/)\n      * [ Reinforcement Learning Course ](https://www.dailydoseofds.com/rl-course-part-1/)\n      * [ AI Agents Course ](https://www.dailydoseofds.com/ai-agents-crash-course-part-1-with-implementation/)\n      * [ MCP Course ](https://www.dailydoseofds.com/model-context-protocol-crash-course-part-1/)\n      * [ RAG Systems Course ](https://www.dailydoseofds.com/a-crash-course-on-building-rag-systems-part-1-with-implementations/)\n      * [ LLM and Fine-tuning ](https://www.dailydoseofds.com/bi-encoders-and-cross-encoders-for-sentence-pair-similarity-scoring-part-1/)\n      * [ Classical ML and Deep Learning ](https://www.dailydoseofds.com/where-did-the-assumptions-of-linear-regression-originate-from/)\n      * [ Engineering Best Practices ](https://www.dailydoseofds.com/8-fatal-yet-non-obvious-pitfalls-and-cautionary-measures-in-data-science/)\n\n\nSign In  [ Get Started ](https://www.dailydoseofds.com/membership)\n/\n  * [ Newsletter ](https://dailydoseofds.github.io/ai-engg-book/)\n  * [ Archive ](https://www.dailydoseofds.com/archive/)\n  * Guidebooks \n    * [ MCP Guidebook ](https://www.dailydoseofds.com/what-is-mcp/)\n    * [ Agents Guidebook ](https://drive.google.com/file/d/1Th8mN_IF7Ttc8bI_OLtUuQ7Mjx3aJ6Hi/view)\n    * [ AI Engineering Guidebook ](https://drive.google.com/file/d/1_s2UaD7tEPECjgC5YMOa1LIOB9HUWFO-/view)\n    * [ DS Guidebook ](https://drive.google.com/file/d/1ZunUHwkD2Ut0_LrgDTDmlQRQkfT2lkVf/view)\n    * [ Courses ](https://www.dailydoseofds.com/)\n    * [ MLOps/LLMOps Course ](https://www.dailydoseofds.com/mlops-crash-course-part-1/)\n    * [ Reinforcement Learning Course ](https://www.dailydoseofds.com/rl-course-part-1/)\n    * [ AI Agents Course ](https://www.dailydoseofds.com/ai-agents-crash-course-part-1-with-implementation/)\n    * [ MCP Course ](https://www.dailydoseofds.com/model-context-protocol-crash-course-part-1/)\n    * [ RAG Systems Course ](https://www.dailydoseofds.com/a-crash-course-on-building-rag-systems-part-1-with-implementations/)\n  * Courses \n    * [ MLOps/LLMOps Course ](https://www.dailydoseofds.com/mlops-crash-course-part-1/)\n    * [ Reinforcement Learning Course ](https://www.dailydoseofds.com/rl-course-part-1/)\n    * [ AI Agents Course ](https://www.dailydoseofds.com/ai-agents-crash-course-part-1-with-implementation/)\n    * [ MCP Course ](https://www.dailydoseofds.com/model-context-protocol-crash-course-part-1/)\n    * [ RAG Systems Course ](https://www.dailydoseofds.com/a-crash-course-on-building-rag-systems-part-1-with-implementations/)\n    * [ LLM and Fine-tuning ](https://www.dailydoseofds.com/bi-encoders-and-cross-encoders-for-sentence-pair-similarity-scoring-part-1/)\n    * [ Classical ML and Deep Learning ](https://www.dailydoseofds.com/where-did-the-assumptions-of-linear-regression-originate-from/)\n    * [ Engineering Best Practices ](https://www.dailydoseofds.com/8-fatal-yet-non-obvious-pitfalls-and-cautionary-measures-in-data-science/)\n  * Sign In \n\n\nAug 5, 2026  Agents \n#  Why Your Agent Remembers Everything and Understands Nothing \nBuilding a pattern recognition layer for memory in production. \n![Avi Chawla](https://storage.ghost.io/c/3f/df/3fdf6ed2-17ac-4b12-a693-8078bd13e748/content/images/size/w400/2026/03/avi-google.jpg)\nAvi Chawla \n👉\n* * *\nEvery agent memory system today solves the same problem. They store facts and retrieve the right ones at query time.\nThe part that’s missing is pattern recognition.\nConsider a project management assistant that reads status updates from an engineering team. Three people filled out updates in the same week. Each one reports a blocker, and each report is accurate and specific.\nThe agent stores all three and can retrieve any of them on request.\nWhat it can’t tell you is that all three blockers trace back to a single delayed task.\n![](https://substackcdn.com/image/fetch/$s_!lvD9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0a5993f-93bf-4204-b128-652b69658479_2264x1268.png)\nThink of it like this. A new project manager reads three status updates and sees three problems to solve. An experienced one reads the same three and sees one problem with three symptoms.\nNobody taught the experienced PM to connect them. They’ve sat through enough standups to recognize the shape.\nAgent memory today gives you the new PM. It stores every update correctly, retrieves them accurately, but misses the structure connecting them,\n[**Zep**](https://www.getzep.com/?ref=dailydoseofds.com) implements a feature called [**Observations**](https://help.getzep.com/observations?ref=dailydoseofds.com) that addresses this. It automatically detects cross-conversation patterns from the knowledge graph and surfaces them as durable, evidence-backed context the agent can use.\nLet’s look at how it works.\n* * *\n#### How the knowledge graph stores data\nZep builds a knowledge graph from conversations and business data. The structure has three building blocks:\n  * **Entities** are the nouns: people, products, places, tasks, services.\n  * **Facts** are specific claims connecting two entities, stored as labeled edges.\n  * **Episodes** are the raw source material: the actual conversation messages, JSON payloads, or documents that Zep ingested. Every fact traces back to the episode it was extracted from.\n\n\nGraphs can be scoped to a single user or shared across a team.\nA user graph holds one person’s history. A shared graph holds everything about a project, a workspace, or an organization, with data from many people flowing into the same structure.\nHere’s a concrete example of a shared project graph.\nThree engineers file status updates with a PM assistant over one week:\n  * **Alice (Monday):** The API migration is blocked. She’s waiting on the auth service refactor, which the backend team owns.\n  * **Bob (Wednesday):** The payments integration is stalled. He’s also waiting on the auth service refactor from the backend team.\n  * **Clara (Friday):** The checkout flow can’t move forward because the payments integration isn’t ready. That work belongs to Bob.\n\n\nZep processes each update as an episode, extracts the entities and facts automatically, and builds the knowledge graph:\n![](https://substackcdn.com/image/fetch/$s_!N5hu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eda1a35-ba2a-4d3e-bea1-13754592a0a8_2937x1702.png)\nEvery fact is accurate and individually retrievable. What the graph doesn’t contain is the shape those facts form together.\n* * *\n#### Why better retrieval doesn’t solve this\nWhen the agent queries “what’s blocking the team,” it gets back the stored facts:\n  * Alice is blocked on the API migration\n  * The API migration is waiting on the auth service refactor\n  * Bob is blocked on the payments integration\n  * The payments integration is waiting on the auth service refactor\n  * Clara is blocked on the checkout flow\n  * The checkout flow is waiting on the payments integration\n\n\nEvery line is correct, but nothing in the result tells the agent that unblocking one task clears all three people.\n![](https://substackcdn.com/image/fetch/$s_!hd-8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c38093-68e4-437c-a7a6-4a04dbb4ae1d_2660x1462.png)\nYou can tune the reranker, widen the search scope, or return more results.\nNone of it helps, because the insight the agent needs was never stored as a discrete piece of content. It exists in how the facts connect across three separate conversations.\nThe workaround most teams reach for is a rule: flag any task that three or more people mention as a blocker. It just tells you the team is stuck without telling you which task to unblock first, and it only catches blockers that people name directly.\nClara never mentions the auth service. Her update is two hops away from the actual cause.\nAt this scale, a person could connect the dots manually. But at thirty status updates a week, nobody does, and that’s exactly when the chain matters most.\n* * *\n#### What Observations produce\nFor this project graph, Zep generates:\n> **Name:** Auth service refactor blocking multiple workstreams  \n>   \n> **Summary:** The auth service refactor, owned by the backend team, is the root blocker in a dependency chain affecting three workstreams. Alice’s API migration and Bob’s payments integration are both waiting on it directly. Clara’s checkout flow is blocked downstream of the payments integration. Unblocking the auth service refactor clears all three.\nNo individual fact in the graph contains this. It spans three people, four work items, and three separate conversations.\n![](https://substackcdn.com/image/fetch/$s_!SSAR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4882fd5-85df-4d8f-ad6c-55251df7b241_1896x1024.png)\nThree properties make observations different from individual facts:\n  * **Cross-entity:** A fact sits on one edge between two entities. An observation synthesizes across an entire cluster, connecting multiple entities and conversations.\n  * **Evidence-backed:** Every claim traces to specific facts and episodes in the graph.\n  * **Read-only:** You can’t manually create, edit, or delete observations. They follow the evidence. The mechanism below explains why.\n\n\n* * *\n#### How Observations are created\nThe mechanism is a two-stage pipeline:\n  * A deterministic algorithm first handles the clustering\n  * An LLM writes the summary afterward. The model never decides what gets grouped.\n\n\n##### Reducing facts to signatures\nZep runs a background process that periodically checks for new data. When new conversations have been ingested and the graph has settled, it kicks off the analysis.\nThe first step reduces every fact to a **signature** : the two entities it connects plus the relationship type. The goal is to find which conversations reference the same relationships between the same entities.\nAfter reduction, each episode (conversation) has a set of signatures:\n  * **Episode 1** (Alice’s update): `(Alice, API Migration)`, `(API Migration, Auth Service)`, `(Auth Service, Backend Team)`\n  * **Episode 2** (Bob’s update): `(Auth Service, Backend Team)`, `(Payments Integration, Auth Service)`, `(Bob, Payments Integration)`\n  * **Episode 3** (Clara’s update): `(Bob, Payments Integration)`, `(Checkout Flow, Payments Integration)`, `(Clara, Checkout Flow)`\n\n![](https://substackcdn.com/image/fetch/$s_!RBeV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa0299b-0daa-46a8-b1c5-836748132cbc_3030x1105.png)\nThe overlaps become visible:\n  * `(Auth Service, Backend Team)` appears in Episode 1 and Episode 2\n  * `(Bob, Payments Integration)` appears in Episode 2 and Episode 3\n  * Episode 1 and Episode 3 share nothing\n\n\nAlice never mentions Bob, Clara, the payments integration, or the checkout flow. Clara never mentions Alice, the auth service, or the backend team.\n##### Building the episode graph\nHere, Zep flips the perspective.\nInstead of looking at entities connected by facts, it builds an **episode graph** where conversations are the nodes and shared signatures are the edges.\n  * Episode 1 links to Episode 2 through `(Auth Service, Backend Team)`\n  * Episode 2 links to Episode 3 through `(Bob, Payments Integration)`\n  * Episode 1 and Episode 3 don’t share a signature\n\n\nBut all three end up in the same **connected component** because Episode 2 bridges them.\nAlice’s update and Clara’s update join the same cluster despite having no entity in common, because Bob’s update touches both sides and acts as the bridge between the two.\n![](https://substackcdn.com/image/fetch/$s_!-02_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe428802-3983-45d6-9c56-6dc487638595_2673x1377.png)\nWorth noticing that the chain the algorithm follows, and the dependency chain in the project are the same structure. Zep finds the root blocker by following exactly the kind of transitive link it was built to follow.\nThis does not use embeddings, semantic similarity, and no ML model. It’s pure graph topology: which conversations share facts about the same entity pairs, and how those shared pairs chain them into connected groups.\nThe distinction matters because embedding-based clustering groups content that discusses similar topics. All three status updates would cluster together under that approach simply because they’re all about engineering work, along with every other status update that week.\nSignature-based clustering groups episodes that reference the same relationships between the same entities, which is what makes the specific chain detectable.\n##### Summarizing the cluster\nOnce the algorithm identifies the connected component, an LLM writes the summary.\nA single, constrained LLM call receives the cluster’s key entities, the supporting conversations in chronological order, and the relationship types.\nIt then returns a name and summary steered toward durable signals like decisions, constraints, dependencies, and state changes, and restricted to facts the evidence explicitly supports.\n![](https://substackcdn.com/image/fetch/$s_!bSwb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fa818bb-9dc7-4ac3-84f8-48b8f6df4c95_2836x1402.png)\nEvery structural property of the observation (which entities, which conversations, the time window) is decided by the algorithm. The LLM only turns that structure into readable prose.\nThis is why observations are read-only. They’re structural properties of the graph, described in natural language. When the evidence changes:\n  * New conversations that fit an existing observation cause it to be regenerated with the new evidence\n  * Contradicting evidence causes the old observation to be retired\n  * The graph always reflects the current state of what is known’\n\n![](https://substackcdn.com/image/fetch/$s_!AqE1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F006a1759-ef21-419a-8a6c-17119ba06b1d_2428x1198.png)\nIf the backend team ships the auth service refactor next week, the observation updates. Alice and Bob unblock, Clara’s dependency shifts, and the pattern reforms around whatever is actually blocking work now.\n* * *\n#### How does this help the agent\nRetrieving observations through the SDK:\n\n```\n# List all observations for a project graph\nobservations = client.graph.observation.get_by_graph_id(graph_id=\"project-atlas”)\n\n# Search observations by relevance\nresults = client.graph.search(\n    graph_id=\"project-atlas”,\n    query=\"blocked workstreams”,\n    scope=\"observations”,\n)\n```\n\nNow consider the PM asking the agent what the team should prioritize this week.\n**Without observations,** the agent retrieves the blocker facts and lists them. Three people are blocked. Two mention the auth service. One mentions the payment integration. The PM gets an accurate summary and still has to work out the ordering.\n**With observations,** the agent’s context includes the dependency chain. It reports that the auth service refactor is the root blocker, that unblocking it clears Alice and Bob directly and Clara downstream, and that the single highest-leverage action this week is getting the backend team the resources to finish it.\n![](https://substackcdn.com/image/fetch/$s_!1Ldi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d51f993-db82-406b-8401-b73cff0caa5d_2461x1410.png)\nSame query, same data. One response describes the situation. The other identifies the action.\n* * *\nThe progression of context in Zep:\n  * **Episodes** store raw conversation data\n  * **Facts** structure it into timestamped claims\n  * **Entity summaries** narrate the history of individual nodes\n  * **Observations** synthesize patterns across the cluster\n\n\nEach layer answers a different type of question. Together, they move agents from recall toward understanding.\n![](https://substackcdn.com/image/fetch/$s_!OpSU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fa66cdd-5b7e-4474-91a8-350df47adfcb_2352x1097.png)\nAlice, Bob, and Clara each filed an accurate status update. Every fact went into the graph correctly, and every one was retrievable.\nWhat none of them could report, because none of them could see it, was the chain running underneath all three.\nThat’s the gap Observations closes. Not better retrieval of what people said, but structural analysis of what their combined data shows.\n**Resources:**\n  * [**Zep Graphiti GitHub repo →**](https://github.com/getzep/graphiti?ref=dailydoseofds.com)\n  * [**Zep Observations docs →**](https://help.getzep.com/observations?ref=dailydoseofds.com)\n\n\n👉 Over to you: have you built an agent where the memory system returned the right facts but still missed the structure connecting them?\nPublished on Aug 5, 2026 \nComments \nShare \nCopy link [ Share to X ](https://x.com/intent/tweet?url=https%3A%2F%2Fwww.dailydoseofds.com%2Fp%2Fwhy-your-agent-remembers-everything-and-understands-nothing-2%2F&text=Why%20Your%20Agent%20Remembers%20Everything%20and%20Understands%20Nothing) [ Share to Facebook ](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.dailydoseofds.com%2Fp%2Fwhy-your-agent-remembers-everything-and-understands-nothing-2%2F) [ Share to Linkedin ](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.dailydoseofds.com%2Fp%2Fwhy-your-agent-remembers-everything-and-understands-nothing-2%2F)\nCopied \n[ Previous  Why RAG Latency Is a Prefill Problem, Not a Retrieval Problem  ](https://www.dailydoseofds.com/building-rag-systems-course-part-12-with-implementation/) [ Next  5 LLM Quantization Techniques  ](https://www.dailydoseofds.com/p/5-llm-quantization-techniques/)\n[ ![Daily Dose of Data Science](https://storage.ghost.io/c/3f/df/3fdf6ed2-17ac-4b12-a693-8078bd13e748/content/images/2025/12/dailyds-logo-transparent-1.png) ](https://www.dailydoseofds.com)\nA daily column with insights, observations, tutorials and best practices on python and data science. Read by industry professionals at big tech, startups, and engineering students. \n  * Menu \n  * [ Contact ](https://www.dailydoseofds.com/contact/)\n  * [ FAQ ](https://www.dailydoseofds.com/faq/)\n\n\n[Daily Dose of Data Science](https://www.dailydoseofds.com) © 2026 \n[ ](https://x.com/_avichawla \"X \\(Formerly Twitter\\)\")\n",
  "body_base_path": "attachments/93e19e685109/pages/",
  "body_markdown_path": "attachments/93e19e685109/pages/archived-body.md",
  "local_html": "attachments/93e19e685109/pages/archived-body.html",
  "body_source": "prior_capture"
}