Letta vs Cognee
Cognee wins · 17–19 (19 drawn)
Agenticness — how well agents can access and operate the productAgenticness
How well agents can access and operate the product
Agent access
ai-native userPoint an agent at llms.txt or agent-oriented docs
weight 2 · round drawnA direct probe confirms Letta publishes an llms.txt file at docs.letta.com/llms.txt returning HTTP 200 with agent-oriented summary content, and Letta's extensive docs site is clearly structured for programmatic/agent consumption (agent-sdk, CLI, MCP docs). Missing for 10: no evidence of llms.txt content depth/comprehensiveness or independent confirmation that agents successfully consume it in practice.
- [probe] “PROBE llms.txt: HTTP 200 at https://docs.letta.com/llms.txt # Letta > Letta agents learn from experience and improve with use. The Letta ag…”
- [claimed-docs] “create an agent once, then resume it from anywhere”
A live llms.txt file is confirmed via direct probe (HTTP 200) at docs.cognee.ai/llms.txt, and the docs site provides extensive agent-oriented markdown documentation (core-concepts, CLI, MCP, API reference pages all served as .md), which an agent could be pointed at directly. missing for 10: no evidence of a dedicated agents.txt/llms-full.txt variant or explicit guidance/examples showing an agent being pointed at llms.txt in practice.
- [probe] “PROBE llms.txt: HTTP 200 at https://docs.cognee.ai/llms.txt # Cognee Documentation > Cognee turns documents, code, and application data int…”
- [claimed-docs] “Give Cognee text, files, or URLs. It ingests, chunks, extracts entities, and builds the knowledge graph for you in one call.”
- [claimed-docs] “lets you run Cognee from the terminal so you can remember data, enrich memory, and ask questions without opening a Python file”
- [claimed-docs] “Cognee MCP brings persistent AI memory to your workflow through the Model Context Protocol.”
ai-native userRun the product headlessly / in CI for automation
weight 2 · round to LettaLetta explicitly documents a headless CLI mode built for non-interactive use in scripts, CI/CD pipelines, and UNIX tool composition, plus an --ephemeral one-shot flag for stateless CI runs, backed by a self-hostable App Server and SDK for programmatic/automated invocation. Missing for 10: independent hands-on CI usage report or example CI config demonstrating it in practice.
- [claimed-docs] “Headless mode allows you to run Letta Code non-interactively, making it easy to integrate into scripts, CI/CD pipelines, or compose with oth…”
- [claimed-docs] “Headless mode allows you to run Letta Code non-interactively, making it easy to integrate into scripts, CI/CD pipelines, or compose with oth…”
- [claimed-docs] “Use --ephemeral to run a one-shot task without creating, resuming, or persisting an agent, memory blocks, or MemFS”
- [claimed-docs] “Headless mode allows you to run Letta Code non-interactively, making it easy to integrate into scripts, CI/CD pipelines”
- [claimed-docs] “The Letta App Server lets you deploy the Letta agent harness as a service.”
- [claimed-docs] “Use `backend: "cloud"` to host agents in Letta Cloud and run tools in managed cloud environments.”
Cognee offers a Python API, a CLI (cognee-cli), and a Docker container that can all be scripted/automated headlessly without a UI, and 'cognee-cli demo' explicitly works with no network access, suggesting CI-friendliness. However there is no explicit CI/CD example, no documented non-interactive flags for auth/config in pipelines, and no independent report of someone running it in CI. missing for 10: explicit CI/CD pipeline example or GitHub Actions integration, documented non-interactive/headless auth flow, independent hands-on confirmation of CI usage.
- [claimed-docs] “lets you run Cognee from the terminal so you can remember data, enrich memory, and ask questions without opening a Python file”
- [claimed-docs] “The cognee-cli command lets you run Cognee from the terminal so you can remember data, enrich memory, and ask questions without opening a Py…”
- [claimed-docs] “The `cognee-cli` command lets you run Cognee from the terminal so you can remember data, enrich memory, and ask questions without opening a …”
- [claimed-docs] “Quick start with Docker (single command): docker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
- [claimed-docs] “`cognee-cli demo` gives you a working example with **no API key and no embedding provider**, on a machine with no network access”
- [claimed-docs] “Run Cognee locally using Docker for development, testing, and custom deployments.”
- [probe] “official CLI documented at https://docs.cognee.ai/cognee-cli/overview”
ai-native userPlug MCP servers into this product so it can use their tools
weight 3 · round to LettaLetta's Agent SDK documents MCP client support: MCP tools are discovered from servers supplied via `mcpServers` and proxied by the SDK host to the MCP server, with support for stdio, Streamable HTTP, and legacy SSE transports. This directly confirms the story of plugging in MCP servers so the agent can use their tools, corroborated by community discussion of Letta building MCP-client support. Missing for 10: no independent hands-on report confirming real-world MCP tool usage end-to-end, and no detail on configuration UX/limitations.
- [claimed-docs] “The SDK supports local stdio processes, Streamable HTTP, and legacy SSE”
- [claimed-docs] “MCP tools are discovered from servers supplied through `mcpServers` and proxied by the SDK host to the MCP server.”
- [community] “Charles from Letta on MCP: 'We're working on it... making Letta agents an MCP client, so that you can easily connect to MCP servers as tools…”
Cogneenone0/10Evidence only shows Cognee shipping its own MCP server so external AI tools (Claude, Cursor, Cline) can call Cognee's memory tools — the reverse direction of the story. There is no evidence that Cognee itself acts as an MCP client that can plug in and use external MCP servers' tools.
- [claimed-docs] “Connect Cognee to MCP-compatible AI tools like Claude, Cursor, and Cline.”
- [claimed-docs] “Cognee MCP brings persistent AI memory to your workflow through the Model Context Protocol.”
- [claimed-docs] “You access them through MCP-compatible AI assistants like Cursor, Claude Desktop, Continue, Cline, and Codex.”
- [probe] “official MCP server documented at https://docs.cognee.ai/cognee-mcp/mcp-overview”
ai-native userUse an official CLI
weight 2 · round drawnLetta ships an official CLI ("Letta Code") with rich documentation covering interactive slash commands, headless/non-interactive scripting mode for CI/CD, local/self-hosted mode, and cloud sync — confirmed by first-party docs and a probe hitting the CLI docs page directly. Community evidence (HN threads with Letta employees) corroborates real usage of CLI features like --yolo mode and /init, indicating it's a genuine, actively used tool. Missing for 10: independent hands-on reviews specifically benchmarking the CLI's reliability/UX beyond employee-provided community threads, and no direct evidence of install/version metrics or broad third-party adoption data.
- [claimed-docs] “Headless mode allows you to run Letta Code non-interactively, making it easy to integrate into scripts, CI/CD pipelines, or compose with oth…”
- [claimed-docs] “Headless mode allows you to run Letta Code non-interactively, making it easy to integrate into scripts, CI/CD pipelines, or compose with oth…”
- [claimed-docs] “This default local mode stores agent state on your machine and does not require a Letta login.”
- [claimed-docs] “Control Letta Code's behavior during an interactive session with slash commands.”
- [claimed-docs] “Run /login to back up your agents to the cloud and make them available through chat.letta.com, the desktop app, remote machines, and messagi…”
- [probe] “official CLI documented at https://docs.letta.com/platform/cli”
- [community] “Letta Code described by Letta's Charles as 'memory-first': agents build learned context over time via tools like /init and /remember; a /cle…”
- [community] “User asks if Letta Code supports a 'yolo'/dangerous-skip-permissions mode like Claude Code; Letta's Charles confirms: 'Letta Code also has a…”
- [community] “Letta employee describes Letta Code: 'a fundamentally different approach to coding agents with a focus on continual learning and statefulnes…”
Cognee ships an official `cognee-cli` documented in first-party docs, supporting core memory operations (remember, enrich, ask questions) from the terminal without opening Python, plus cloud push, report generation, and an offline demo mode. This is a genuine, well-documented CLI tailored to its agentic/memory workflows. Missing for 10: independent/hands-on community verification of the CLI's reliability beyond vendor docs.
- [claimed-docs] “lets you run Cognee from the terminal so you can remember data, enrich memory, and ask questions without opening a Python file”
- [claimed-docs] “The cognee-cli command lets you run Cognee from the terminal so you can remember data, enrich memory, and ask questions without opening a Py…”
- [claimed-docs] “The `cognee-cli` command lets you run Cognee from the terminal so you can remember data, enrich memory, and ask questions without opening a …”
- [claimed-docs] “`cognee-cli push` uploads a local dataset's knowledge graph to Cognee Cloud”
- [claimed-docs] “`cognee-cli report` writes a Graph Insight Report describing what a dataset's graph contains”
- [claimed-docs] “`cognee-cli demo` gives you a working example with **no API key and no embedding provider**, on a machine with no network access”
- [probe] “official CLI documented at https://docs.cognee.ai/cognee-cli/overview”
ai-native userDrive the product through a documented public API
weight 3 · round to LettaLetta ships a fully documented Agent SDK (TypeScript, with browser/mobile variants) covering agent creation, sessions, streaming, permissions, MCP tool proxying, and an OpenAI-compatible App Server API, all backed by extensive first-party docs and a public GitHub SDK repo. This clearly satisfies driving the product programmatically as an AI-native user via a documented public API. missing for 10: a discoverable formal OpenAPI/swagger spec (probe found only 404s), and independent/hands-on developer corroboration of the SDK's public API stability.
- [claimed-docs] “Create a stateful agent with `client.createAgent()`. It returns the agent's ID as a string, which you use to open sessions and manage the ag…”
- [claimed-docs] “The stream yields typed events for the whole turn — reasoning, assistant text, tool calls, tool results”
- [claimed-docs] “a **`canUseTool` callback** that approves, denies, or edits individual tool calls — interactively, if your application involves a human.”
- [claimed-docs] “`resumeSession(id)` accepts either kind of ID: pass an `agent-xxx` ID to resume the agent's default conversation, or a `conv-xxx` ID to resu…”
- [claimed-docs] “The stream yields typed events for the whole turn — reasoning, assistant text, tool calls, tool results — and terminates after the turn's `r…”
- [claimed-docs] “The SDK supports local stdio processes, Streamable HTTP, and legacy SSE”
- [claimed-docs] “MCP tools are discovered from servers supplied through `mcpServers` and proxied by the SDK host to the MCP server.”
- [claimed-docs] “Send a message with `session.send()` and read the response with `session.stream()`. The stream yields typed events for the whole turn”
- [claimed-docs] “use the App Server’s OpenAI-compatible API with clients such as Open WebUI, or the ACP adapter with ACP clients such as Zed”
- [github] “the Letta Agent SDK for building agents into TypeScript applications”
- [probe] “PROBE openapi: all candidate paths 404 (https://docs.letta.com/openapi.json, https://docs.letta.com/swagger.json, https://docs.letta.com/api…”
Cognee documents a public API surface across multiple layers: the Python SDK (.remember, .recall, .improve, .forget, python-api.md), a REST-style API reachable via the documented Docker container exposing port 8000 with an 'api-reference' section, and a CLI wrapping the same operations — all clearly documented for programmatic/agentic use. However the openapi probe found no machine-readable OpenAPI/swagger spec at expected paths, suggesting the 'documented public API' is prose/markdown rather than a formal spec, and there is no independent hands-on corroboration of API usage. Missing for 10: a discoverable OpenAPI/swagger schema, independent developer corroboration of API stability/usage.
- [claimed-docs] “The `.remember` operation is the main ingestion entry point in Cognee v1.0. It stores information in memory with a single API call.”
- [claimed-docs] “when you do not specify a search type, `recall()` classifies the query and picks the best retrieval strategy automatically”
- [claimed-docs] “The `.forget` operation is the unified deletion command in Cognee v1.0.”
- [claimed-docs] “Store data as permanent graph memory or fast session memory in one call.”
- [claimed-docs] “Run Cognee container\ndocker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
- [claimed-docs] “Run Cognee locally using Docker for development, testing, and custom deployments.”
- [probe] “PROBE openapi: all candidate paths 404 (https://docs.cognee.ai/openapi.json, https://docs.cognee.ai/swagger.json, https://docs.cognee.ai/api…”
ai-native userIssue scoped/least-privilege API credentials for an agent
weight 2 · round to LettaLetta offers some related scoped-access mechanisms — Secrets that let an agent use API keys/tokens without ever seeing the raw values, GitHub integration where agents can only access repositories explicitly granted, and tool/action permission modes (unrestricted/acceptEdits/standard, canUseTool callback) — but there's no documented mechanism for issuing a distinct, scoped/least-privilege API credential specifically for an agent's own access to the Letta API or external services. missing for 10: explicit per-agent API key/credential issuance with configurable scopes, documentation of least-privilege credential lifecycle (rotation/revocation), and independent confirmation of scoped-credential behavior in practice.
- [claimed-docs] “Secrets let your agent use sensitive values like API keys and tokens in shell commands without ever seeing the actual values.”
- [claimed-docs] “Once connected, agents in your Letta org running on cloud computers will be able to clone, read, and push to the repositories you grant acce…”
- [claimed-docs] “Press `Shift+Tab` in interactive mode to cycle through `unrestricted`, `acceptEdits`, and `standard`.”
- [claimed-docs] “a **`canUseTool` callback** that approves, denies, or edits individual tool calls — interactively, if your application involves a human.”
- [claimed-docs] “You can share agents across your team (and set permissions for access) to create custom agents for your organization”
Cogneenone0/10Evidence shows dataset-scoped permissions for multi-user isolation, but there is no mention of scoped/least-privilege API credentials or API keys that an ai-native user could issue to an agent with restricted permissions. missing for 10: API key/credential issuance mechanism, scoping/least-privilege token model, documentation of credential lifecycle management.
- [claimed-docs] “This system provides data isolation and access control through dataset-scoped permissions and per-dataset storage, enabling multiple users o…”
- [claimed-docs] “provides data isolation and access control through dataset-scoped permissions and per-dataset storage, enabling multiple users or organizati…”
ai-native userBuild against official SDKs
weight 2 · round to LettaLetta ships an official Agent SDK (letta-ai/letta on GitHub, TypeScript) with extensive first-party documentation covering agent creation, sessions, streaming, MCP tool integration, permissions/canUseTool callbacks, cloud/self-host deployment options, and demo apps for browser, Expo/React Native, and desktop clients - a substantial, well-documented SDK surface for AI-native builders. Missing for 10: independent hands-on developer reviews/benchmarks of the SDK itself, and evidence of official SDKs beyond TypeScript (e.g., Python).
- [github] “the Letta Agent SDK for building agents into TypeScript applications”
- [claimed-docs] “Create a stateful agent with `client.createAgent()`. It returns the agent's ID as a string, which you use to open sessions and manage the ag…”
- [claimed-docs] “The stream yields typed events for the whole turn — reasoning, assistant text, tool calls, tool results”
- [claimed-docs] “a **`canUseTool` callback** that approves, denies, or edits individual tool calls — interactively, if your application involves a human.”
- [claimed-docs] “Browser, Expo, and React Native applications must import the SDK from `@letta-ai/letta-agent-sdk/client`”
- [claimed-docs] “Use `backend: "cloud"` to host agents in Letta Cloud and run tools in managed cloud environments.”
- [claimed-docs] “`resumeSession(id)` accepts either kind of ID: pass an `agent-xxx` ID to resume the agent's default conversation, or a `conv-xxx` ID to resu…”
- [claimed-docs] “The SDK supports local stdio processes, Streamable HTTP, and legacy SSE”
- [claimed-docs] “MCP tools are discovered from servers supplied through `mcpServers` and proxied by the SDK host to the MCP server.”
- [claimed-docs] “Send a message with `session.send()` and read the response with `session.stream()`. The stream yields typed events for the whole turn”
- [claimed-docs] “a complete Expo and React Native client for persistent Letta agents”
Cognee documents a Python SDK with clear operations (.remember, .recall, .improve, .forget) and a CLI, giving AI-native users official building blocks, but the API reference lacks a discoverable OpenAPI/swagger spec (all probed endpoints 404) and there's no independent/hands-on corroboration of SDK usage beyond first-party docs. missing for 10: verifiable OpenAPI/REST SDK spec, independent developer corroboration of SDK reliability, multi-language SDK support beyond Python/CLI.
- [claimed-docs] “The `.remember` operation is the main ingestion entry point in Cognee v1.0. It stores information in memory with a single API call.”
- [claimed-docs] “when you do not specify a search type, `recall()` classifies the query and picks the best retrieval strategy automatically”
- [claimed-docs] “The `.improve` operation enriches an existing Cognee graph after data has already been ingested.”
- [claimed-docs] “The `.forget` operation is the unified deletion command in Cognee v1.0.”
- [claimed-docs] “The cognee-cli command lets you run Cognee from the terminal so you can remember data, enrich memory, and ask questions without opening a Py…”
- [claimed-docs] “Store data as permanent graph memory or fast session memory in one call.”
- [probe] “PROBE openapi: all candidate paths 404 (https://docs.cognee.ai/openapi.json, https://docs.cognee.ai/swagger.json, https://docs.cognee.ai/api…”
- [probe] “official CLI documented at https://docs.cognee.ai/cognee-cli/overview”
ai-native userSubscribe to events via webhooks
weight 2 · round drawnLettanone0/10The evidence pack covers agent SDK streaming, subagents, mods, scheduled tasks, and Slack/GitHub integrations, but there is no mention of a webhook subscription mechanism for events (e.g., agent state changes, task completion) that external systems could subscribe to. Streaming responses (letta-docs-43, letta-docs-60) are pull-based within an active session, not webhook push notifications.
Cogneenone0/10No evidence anywhere in the pack mentions webhooks, event subscriptions, or push notifications; Cognee's integrations (Slack, GitHub, Linear) are described as data sources to ingest, not as an event/webhook subscription mechanism for users. This is a fair axis for an agentic memory/integration platform, so absence of evidence yields none.
Agentic features
ai-native userGet AI-generated insights and suggestions from my data inside the product
weight 2 · round drawnLetta's 'dreaming' feature uses background subagents to review conversation history and consolidate learned lessons into memory without interrupting the user, and /doctor audits memory placement/duplication — both are forms of AI-generated insight derived from the agent's own interaction data. However, these are framed as internal memory-maintenance mechanisms rather than explicit user-facing 'suggestions' or dashboards surfacing insights about the user's data, and there is no independent/hands-on evidence of the quality of these generated insights. Missing for 10: user-facing insight/suggestion UI or reports, independent verification that dreaming produces useful proactive suggestions, and examples of insights derived from arbitrary connected data sources (not just conversation history).
- [claimed-docs] “Dreaming uses background subagents to review recent conversations, consolidate useful lessons, and update memory without interrupting your a…”
- [claimed-docs] “trigger controls when dreaming runs: after a number of steps, on context compaction, or never.”
- [claimed-docs] “If the memory hierarchy has drifted or grown too large, run /doctor to audit placement, duplication, and system-prompt token usage.”
- [claimed-docs] “You can also teach it explicitly with /remember: > /remember always use pnpm in this repo”
- [community] “Letta Code described by Letta's Charles as 'memory-first': agents build learned context over time via tools like /init and /remember; a /cle…”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the [MemFS Search mod]”
Cognee's docs show AI-driven enrichment and insight generation: `.improve()` enriches the knowledge graph with new AI-extracted entities/relations, `cognee-cli report` generates a 'Graph Insight Report' describing what a dataset contains, and `recall()` auto-classifies queries to surface relevant information. These support 'AI-generated insights' but the story's 'suggestions' aspect (e.g., proactive recommendations) isn't directly evidenced, and there's no independent/hands-on validation of insight quality. missing for 10: explicit suggestion/recommendation feature, third-party validation of insight usefulness.
- [claimed-docs] “`cognee-cli report` writes a Graph Insight Report describing what a dataset's graph contains”
- [claimed-docs] “The `.improve` operation enriches an existing Cognee graph after data has already been ingested.”
- [claimed-docs] “The .improve operation enriches an existing Cognee graph after data has already been ingested.”
- [claimed-docs] “Use `improve()` after Remember when you want to enrich an existing graph further. Use it at the end of a chat or agent session to bridge sho…”
- [claimed-docs] “when you do not specify a search type, `recall()` classifies the query and picks the best retrieval strategy automatically”
- [claimed-docs] “The `.recall` operation is the main retrieval entry point in Cognee v1.0. It searches memory using the best available source for the request…”
ai-native userSet up automations that run autonomously in the background
weight 2 · round to LettaLetta explicitly supports autonomous background automation: scheduled/recurring prompts via 'Scheduled tasks' (letta-docs-69), always-on cloud agents that keep running when your laptop is closed (letta-docs-55, letta-docs-68), Slack integration where mentioned agents respond using their own cloud computer (letta-docs-73, letta-docs-83), and background 'dreaming' subagents that consolidate memory without interrupting active work (letta-docs-27, letta-docs-3). Community posts corroborate the always-on, memory-first agent design (letta-comm-12, letta-comm-5). Missing for 10: independent hands-on verification that scheduled/background automations run reliably in practice, and more detail on failure handling/monitoring of unattended runs.
- [claimed-docs] “Scheduled tasks allow you to automate prompts to your agent on a recurring schedule or at a specific time in the future.”
- [claimed-docs] “Agents can still be messaged even if your laptop is closed, since they have their own computer to run on.”
- [claimed-docs] “Agents can still be messaged even if your laptop is closed, since they have their own computer to run on. Combining agents with Slack and sc…”
- [claimed-docs] “Agents connected to Slack are always-on: mention them in a channel or thread and they'll respond, using their cloud computer to do real work…”
- [claimed-docs] “Agents connected to Slack are always-on: mention them in a channel or thread and they'll respond”
- [claimed-docs] “Dreaming uses background subagents to review recent conversations, consolidate useful lessons, and update memory without interrupting your a…”
- [claimed-docs] “trigger controls when dreaming runs: after a number of steps, on context compaction, or never.”
- [community] “Letta employee describes Letta Code: 'a fundamentally different approach to coding agents with a focus on continual learning and statefulnes…”
Cognee documents some autonomous integrations — a Linear agent that answers @mentions and processes delegated issues from memory, and automatic indexing of an entire GitHub org's repos into the code graph — which imply background, event-driven automation without manual invocation. However, there's no documentation of a general-purpose scheduling/trigger system, background job orchestration, or first-party 'automations' feature; most operations (.remember, .recall, .improve) are described as explicit API/CLI calls rather than autonomous background processes. Missing for 10: explicit scheduler/cron or trigger framework, broader examples of autonomous multi-step agent workflows, and independent confirmation the Linear/GitHub integrations run unattended in production.
- [claimed-docs] “Install Cognee as a Linear agent that answers @mentions and delegated issues from memory, and index the workspace's issues.”
- [claimed-docs] “Connect a GitHub organization and index every covered repository into the code graph.”
- [claimed-docs] “Connect Slack, GitHub, Linear to Cognee and help agents recall what your company knows.”
- [claimed-docs] “Data source integrations: Slack, Notion, Linear, Google Drive”
ai-native userDelegate tasks to a built-in AI assistant inside the product
weight 3 · round to LettaLetta ships a built-in agent runtime (Letta Code / Letta App Server) to which users can delegate real tasks: subagents for parallelized work, autonomous cloud agents that clone/read/push GitHub repos and open PRs, Slack-integrated always-on agents, and scheduled/recurring task automation, all corroborated by first-party docs and HN threads from Letta's own team describing the 'memory-first,' continually-learning agent design. missing for 10: independent hands-on benchmarks or third-party reviews validating real-world task delegation reliability beyond vendor docs and founder HN comments.
- [claimed-docs] “By delegating work to focused subagents, your main agent can keep its context window clean and make use of parallelism to divide and conquer…”
- [claimed-docs] “Subagents are specialized agents that your main agent can spawn to handle complex tasks autonomously.”
- [claimed-docs] “Once connected, agents in your Letta org running on cloud computers will be able to clone, read, and push to the repositories you grant acce…”
- [claimed-docs] “agents running on cloud computers can access your repositories to do work — sweeping bug reports, opening pull requests, or exploring your c…”
- [claimed-docs] “Agents can still be messaged even if your laptop is closed, since they have their own computer to run on. Combining agents with Slack and sc…”
- [claimed-docs] “Agents connected to Slack are always-on: mention them in a channel or thread and they'll respond, using their cloud computer to do real work…”
- [claimed-docs] “Scheduled tasks allow you to automate prompts to your agent on a recurring schedule or at a specific time in the future.”
- [community] “Letta employee describes Letta Code: 'a fundamentally different approach to coding agents with a focus on continual learning and statefulnes…”
- [community] “Letta Code described by Letta's Charles as 'memory-first': agents build learned context over time via tools like /init and /remember; a /cle…”
Cogneenone0/10Cognee positions itself as a memory/knowledge-graph backend that other AI assistants (Claude, Cursor, Cline) connect to via MCP, not as a product with its own built-in assistant that users delegate tasks to. The closest hint is a Linear 'agent' integration that answers @mentions from memory, but this is a narrow third-party integration, not a built-in assistant inside Cognee itself, and no evidence shows a native chat/delegation interface within the core product.
- [claimed-docs] “Install Cognee as a Linear agent that answers @mentions and delegated issues from memory, and index the workspace's issues.”
- [claimed-docs] “Connect Cognee to MCP-compatible AI tools like Claude, Cursor, and Cline.”
- [claimed-docs] “Cognee MCP brings persistent AI memory to your workflow through the Model Context Protocol.”
ai-native userOperate the product with natural-language commands
weight 2 · round to LettaLetta Code and CLI are extensively controlled via natural-language chat plus slash commands (/remember, /init, /fork, /btw, /doctor, /agents) that wrap agent behavior in conversational form, and agents themselves interpret natural-language instructions to manage memory, tools, and subagents. missing for 10: independent hands-on evidence (beyond vendor docs/HN Q&A) confirming reliability of natural-language command interpretation across complex workflows.
- [claimed-docs] “Control Letta Code's behavior during an interactive session with slash commands.”
- [claimed-docs] “Run `/init` to bootstrap or refresh memory for the current project. The agent inspects the repository, asks about your working style when ne…”
- [claimed-docs] “You can also teach it explicitly with `/remember`: `> /remember always use pnpm in this repo`. The agent decides where the lesson belongs an…”
- [claimed-docs] “You can also teach it explicitly with /remember: > /remember always use pnpm in this repo”
- [claimed-docs] “If the memory hierarchy has drifted or grown too large, run /doctor to audit placement, duplication, and system-prompt token usage.”
- [claimed-docs] “Use /fork to branch the current conversation, including its in-context history. The new conversation can take a different direction without …”
- [claimed-docs] “Use /btw for a side question. It forks the conversation in the background and returns the answer without interrupting your main task”
- [community] “Letta Code described by Letta's Charles as 'memory-first': agents build learned context over time via tools like /init and /remember; a /cle…”
- [community] “User asks if Letta Code supports a 'yolo'/dangerous-skip-permissions mode like Claude Code; Letta's Charles confirms: 'Letta Code also has a…”
Cognee's `.recall` operation auto-classifies natural-language queries to pick a retrieval strategy, the CLI lets users 'remember data, enrich memory, and ask questions' from the terminal without writing code, and the MCP server exposes these operations to AI assistants (Claude, Cursor, Cline) so an AI-native user can drive Cognee via natural language through those chat interfaces. This directly supports NL-driven operation of memory/recall workflows. Missing for 10: independent/hands-on confirmation that free-form natural-language commands (beyond structured queries) are parsed correctly, and explicit CLI examples showing raw NL command syntax rather than just query-answering.
- [claimed-docs] “when you do not specify a search type, `recall()` classifies the query and picks the best retrieval strategy automatically”
- [claimed-docs] “lets you run Cognee from the terminal so you can remember data, enrich memory, and ask questions without opening a Python file”
- [claimed-docs] “The cognee-cli command lets you run Cognee from the terminal so you can remember data, enrich memory, and ask questions without opening a Py…”
- [claimed-docs] “The `cognee-cli` command lets you run Cognee from the terminal so you can remember data, enrich memory, and ask questions without opening a …”
- [claimed-docs] “Connect Cognee to MCP-compatible AI tools like Claude, Cursor, and Cline.”
- [claimed-docs] “Cognee MCP brings persistent AI memory to your workflow through the Model Context Protocol.”
- [claimed-docs] “You access them through MCP-compatible AI assistants like Cursor, Claude Desktop, Continue, Cline, and Codex.”
- [probe] “official MCP server documented at https://docs.cognee.ai/cognee-mcp/mcp-overview”
- [probe] “official CLI documented at https://docs.cognee.ai/cognee-cli/overview”
Api quality
ai-native userExplore an interactive API reference with runnable examples
weight 2 · round drawnLettanone0/10The evidence pack shows extensive SDK documentation (agent-sdk pages) but no interactive API reference or runnable-example explorer; a direct probe for OpenAPI/Swagger endpoints returned 404 on all candidate paths, indicating no such interactive reference exists.
- [probe] “PROBE openapi: all candidate paths 404 (https://docs.letta.com/openapi.json, https://docs.letta.com/swagger.json, https://docs.letta.com/api…”
Cogneenone0/10The docs mention an 'api-reference' section but only show static Docker run commands, not an interactive, runnable API console; explicit probes for OpenAPI/Swagger specs all returned 404, indicating no interactive API reference exists. Missing for 10: any interactive/runnable API explorer (e.g., Swagger UI, Postman collection, live code sandbox) and independent confirmation of one working.
- [claimed-docs] “Run Cognee container\ndocker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
- [claimed-docs] “Run Cognee locally using Docker for development, testing, and custom deployments.”
- [claimed-docs] “Quick start with Docker (single command): docker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
- [probe] “PROBE openapi: all candidate paths 404 (https://docs.cognee.ai/openapi.json, https://docs.cognee.ai/swagger.json, https://docs.cognee.ai/api…”
ai-native userDownload a machine-readable API spec (OpenAPI or equivalent)
weight 2 · round drawnLettanone0/10Direct probes for OpenAPI/Swagger specs at all standard paths (docs.letta.com/openapi.json, swagger.json, api/openapi.json, .well-known/openapi.json) returned 404, and no documentation elsewhere in the evidence pack references a downloadable machine-readable API spec.
- [probe] “PROBE openapi: all candidate paths 404 (https://docs.letta.com/openapi.json, https://docs.letta.com/swagger.json, https://docs.letta.com/api…”
Cogneenone0/10Cognee has an 'api-reference' section referencing a REST API and Docker deployment, but a direct probe for OpenAPI/Swagger specs at all standard locations (openapi.json, swagger.json, etc.) returned 404s, and no documentation page links to a downloadable machine-readable spec.
- [probe] “PROBE openapi: all candidate paths 404 (https://docs.cognee.ai/openapi.json, https://docs.cognee.ai/swagger.json, https://docs.cognee.ai/api…”
- [claimed-docs] “Run Cognee container\ndocker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
- [claimed-docs] “Run Cognee locally using Docker for development, testing, and custom deployments.”
- [claimed-docs] “Quick start with Docker (single command): docker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
ai-native userTest against a sandbox environment without touching production data
weight 1 · round to CogneeLetta offers isolation-oriented options that could support sandbox-style testing: an --ephemeral CLI mode that runs one-shot tasks without persisting any agent, memory, or MemFS state (letta-docs-14), and a managed 'cloud sandbox' for running agents with no local setup (letta-docs-16, letta-docs-33, letta-docs-58). However, there is no explicit documentation of a staging/production environment separation or guarantee that testing won't touch production agent data. Missing for 10: explicit staging-vs-production environment concept, documentation of data isolation guarantees, and any evidence/testimonial confirming this workflow is used for safe testing.
- [claimed-docs] “Use --ephemeral to run a one-shot task without creating, resuming, or persisting an agent, memory blocks, or MemFS”
- [claimed-docs] “The desktop app and CLI can use your existing API keys and coding plans, while the web app runs agents in a cloud sandbox with no local setu…”
- [claimed-docs] “The web app uses a managed cloud sandbox by default, so you can start without configuring a computer.”
- [claimed-docs] “the web app runs agents in a cloud sandbox with no local setup”
Cognee supports local-only operation via Docker and cognee.start_ui() for dev/testing (docs-7, docs-26, docs-10/23), plus a cognee-cli demo mode that runs with no API key and no network access (docs-44), and dataset-scoped permissions/isolation (docs-9/25) that could keep test datasets separate from production ones. However, there's no explicit 'sandbox environment' concept, staging/prod environment separation, or documented guarantee that testing never touches production data stores. missing for 10: explicit sandbox/staging environment feature, documented prod-data isolation guarantee, independent confirmation of safe test workflows.
- [claimed-docs] “Run Cognee container\ndocker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
- [claimed-docs] “Run Cognee locally using Docker for development, testing, and custom deployments.”
- [claimed-docs] “`cognee-cli demo` gives you a working example with **no API key and no embedding provider**, on a machine with no network access”
- [claimed-docs] “This system provides data isolation and access control through dataset-scoped permissions and per-dataset storage, enabling multiple users o…”
- [claimed-docs] “you can also run the UI and all pipelines entirely on your own machine for free, with no account required, using `cognee.start_ui()`”
ai-native userRely on versioned APIs with a documented deprecation policy
weight 2 · round drawnLettanone0/10No evidence anywhere in the pack of API versioning schemes or a documented deprecation policy; the openapi.json probe even 404s, indicating no discoverable API spec that would carry version/deprecation info.
- [probe] “PROBE openapi: all candidate paths 404 (https://docs.letta.com/openapi.json, https://docs.letta.com/swagger.json, https://docs.letta.com/api…”
Cogneenone0/10No evidence of API versioning scheme or a documented deprecation policy; the OpenAPI probe returned 404s for all candidate spec locations, and no docs mention version support windows or deprecation timelines. Missing for 10: any versioning scheme documentation, explicit deprecation policy, changelog/migration guides for breaking changes.
- [probe] “PROBE openapi: all candidate paths 404 (https://docs.cognee.ai/openapi.json, https://docs.cognee.ai/swagger.json, https://docs.cognee.ai/api…”
Automation depth — how much of the product can run unattendedAutomation depth
How much of the product can run unattended
ai-native userPerform bulk operations across many items at once
weight 2 · round to CogneeLetta offers some multi-item automation primitives — subagents for parallel task delegation ('divide and conquer tasks') and a cross-agent `/search` command that queries across all agents at once — which support limited bulk-style operations, but there is no documented bulk API for batch-creating, editing, importing/exporting, or mass-updating agents, memory blocks, or files. Missing for 10: explicit bulk CRUD/batch APIs, bulk import/export tooling, and evidence of large-scale multi-item operations beyond parallel subagent delegation and cross-agent search.
- [claimed-docs] “By delegating work to focused subagents, your main agent can keep its context window clean and make use of parallelism to divide and conquer…”
- [claimed-docs] “Subagents are specialized agents that your main agent can spawn to handle complex tasks autonomously.”
- [claimed-docs] “`/search [query]` | Search messages across agents”
- [claimed-docs] “Up to 20 stateful agents”
- [claimed-docs] “With a developer plan, you can create an unlimited number of agents but pay usage-based pricing.”
Docs show several bulk-oriented affordances: ingesting multiple text/files/URLs in a single `.remember` call, dataset-level or full-user `.forget` cleanup instead of item-by-item deletion, and GitHub-org-wide code indexing across every repo. However, there's no explicit bulk/batch API for arbitrary large-scale multi-item operations with pagination, concurrency, or throughput guarantees, and no independent evidence of bulk performance at scale. Missing for 10: dedicated batch API documentation, evidence of large-scale bulk throughput/limits, independent hands-on validation of bulk operations.
- [claimed-docs] “Give Cognee text, files, or URLs. It ingests, chunks, extracts entities, and builds the knowledge graph for you in one call.”
- [claimed-docs] “Single data item deletion: remove one data item from a dataset. Dataset deletion: remove an entire dataset and its graph/vector data.”
- [claimed-docs] “Single data item deletion: remove one data item from a dataset. Dataset deletion: remove an entire dataset and its graph/vector data. Full c…”
- [claimed-docs] “Remove a data item, an entire dataset, or all memory for the current user.”
- [claimed-docs] “Connect a GitHub organization and index every covered repository into the code graph.”
ai-native userDefine rules that trigger actions automatically on events
weight 3 · round to LettaLetta documents several trigger-based automation mechanisms: scheduled tasks that 'automate prompts to your agent on a recurring schedule or at a specific time' (letta-docs-69), mods that add 'event hooks' taking effect immediately (letta-docs-71), dreaming triggers configurable to fire 'after a number of steps, on context compaction, or never' (letta-docs-3/12), and Slack-connected agents that automatically respond when mentioned (letta-docs-73/83). These collectively show event- and time-based automatic action triggers, though there is no single documented general-purpose 'rules engine' where a user defines arbitrary event→action conditions in one place. Missing for 10: a unified rules/automation API or UI for arbitrary custom event conditions, and independent/hands-on confirmation that these triggers reliably fire as documented.
- [claimed-docs] “Scheduled tasks allow you to automate prompts to your agent on a recurring schedule or at a specific time in the future.”
- [claimed-docs] “Mods let your agent modify its own runtime — adding tools, commands, event hooks, permission policies, and provider adapters that take effec…”
- [claimed-docs] “trigger controls when dreaming runs: after a number of steps, on context compaction, or never.”
- [claimed-docs] “Agents connected to Slack are always-on: mention them in a channel or thread and they'll respond, using their cloud computer to do real work…”
- [claimed-docs] “Agents connected to Slack are always-on: mention them in a channel or thread and they'll respond”
- [claimed-docs] “trigger controls when dreaming runs: after a number of steps, on context compaction, or never”
Cogneenone0/10Cognee's evidence pack shows manual operations (remember, recall, improve, forget) invoked via API, CLI, or MCP calls, but no evidence of a rules/trigger engine that fires actions automatically on events (e.g., webhooks, event listeners, conditional automations). This is a plausible axis for a memory/knowledge-graph platform, but no supporting capability is documented.
ai-native userSchedule recurring jobs or workflows
weight 2 · round drawnLettanone0/10Evidence shows always-on hosting, headless/non-interactive CLI mode for CI/CD integration, and stateful agents resumable across sessions, but no documentation of a built-in scheduler, cron-like trigger, or recurring job/workflow feature.
Data lifecycle — stories about data lifecycle in this arenaData lifecycle
Stories about data lifecycle in this arena
Forgetting
platform-engineerDelete a user's memories on demand — single memory, per-entity, or full erasure — to satisfy privacy requirements
weight 2 · round to CogneeLettanone0/10The evidence pack covers extensive memory creation, editing, auditing (/doctor), and consolidation (/remember, /init, dreaming) but never documents an explicit delete/erase memory command, API, or per-entity/full-wipe capability for privacy compliance. The one related command, /clear, explicitly 'resets the message buffer but keeps learned context' (letta-comm-5), meaning conversation clearing does not erase underlying memory — the opposite of the requested erasure guarantee.
- [community] “Letta Code described by Letta's Charles as 'memory-first': agents build learned context over time via tools like /init and /remember; a /cle…”
- [claimed-docs] “If the memory hierarchy has drifted or grown too large, run /doctor to audit placement, duplication, and system-prompt token usage.”
- [claimed-docs] “You can also teach it explicitly with `/remember`: `> /remember always use pnpm in this repo`. The agent decides where the lesson belongs an…”
The `.forget` operation is documented as Cognee's unified deletion command supporting single data item deletion, per-dataset deletion, and full cleanup of everything the current user can delete, directly matching the platform-engineer's need for granular-to-full erasure. Combined with dataset-scoped permissions/isolation, this supports privacy-driven deletion per user. Missing for 10: independent/hands-on verification that forget() actually purges data from graph+vector+storage layers reliably, and explicit per-entity (vs per-dataset) deletion granularity confirmation.
- [claimed-docs] “The `.forget` operation is the unified deletion command in Cognee v1.0.”
- [claimed-docs] “Single data item deletion: remove one data item from a dataset. Dataset deletion: remove an entire dataset and its graph/vector data.”
- [claimed-docs] “Single data item deletion: remove one data item from a dataset. Dataset deletion: remove an entire dataset and its graph/vector data. Full c…”
- [claimed-docs] “Remove a data item, an entire dataset, or all memory for the current user.”
- [claimed-docs] “This system provides data isolation and access control through dataset-scoped permissions and per-dataset storage, enabling multiple users o…”
developerMake memories expire or decay — via TTL, expiration dates, or recency weighting — so stale facts stop surfacing
weight 2 · round drawnLettanone0/10The evidence describes Letta's memory system (dreaming/consolidation, /doctor audits, MemFS search, shared memory) but nowhere documents TTL, expiration dates, or recency-weighted decay causing stale facts to stop surfacing; /doctor flags drift/duplication but is manual, not automatic decay.
- [claimed-docs] “trigger controls when dreaming runs: after a number of steps, on context compaction, or never.”
- [claimed-docs] “If the memory hierarchy has drifted or grown too large, run /doctor to audit placement, duplication, and system-prompt token usage.”
- [claimed-docs] “Dreaming uses background subagents to review recent conversations, consolidate useful lessons, and update memory without interrupting your a…”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the MemFS Search mod”
Cogneenone0/10The docs describe sessions as short-term memory caches and .forget as manual deletion, but nowhere do they mention TTL, expiration dates, automatic decay, or recency-weighted scoring that would make stale facts stop surfacing automatically.
- [claimed-docs] “cognee.remember(data, session_id="my_session") — writes content directly into the session cache for fast retrieval.”
- [claimed-docs] “A session is Cognee's short-term memory for a specific user. It is identified by `(user_id, session_id)` and stores an ordered list of recen…”
- [claimed-docs] “Single data item deletion: remove one data item from a dataset. Dataset deletion: remove an entire dataset and its graph/vector data.”
- [claimed-docs] “Single data item deletion: remove one data item from a dataset. Dataset deletion: remove an entire dataset and its graph/vector data. Full c…”
Portability
platform-engineerExport memories in a machine-readable format so the memory store is portable and not a lock-in trap
weight 2 · round to LettaLetta's memory is stored as plain Markdown files in a Git-backed 'memory repository' (MemFS), and self-hosting keeps all agent state on-device with no proprietary lock-in, which implies inherent portability of memory data. However, there is no explicit documented export/import command, no described export file format spec, or CLI subcommand dedicated to exporting memories for migration — the pack only shows cloud backup/sync features, not a data-portability workflow. missing for 10: an explicit export/import command or documented export format, third-party confirmation that memory can be extracted and reloaded elsewhere, guidance on migrating memory out of Letta Cloud.
- [claimed-docs] “Pass memory for full control over the agent’s starting memory. Each entry becomes a Markdown file in the agent’s memory repository”
- [claimed-docs] “Shared memory gives multiple agents access to the same files and working context. Each shared memory repository is a Git repository hosted i…”
- [claimed-docs] “Letta agents can run entirely on infrastructure you control”
- [claimed-docs] “all agent state, including messages, memory, and provider connections, stays on-device, and no Letta account is required.”
- [claimed-docs] “Run /login to back up your agents to the cloud and make them available through chat.letta.com, the desktop app, remote machines, and messagi…”
Cogneenone0/10The docs describe rich operations (remember, recall, improve, forget) and a CLI with `push` (upload to Cognee Cloud) and `report` (human-readable Graph Insight Report), but there is no documented export command or API that dumps memory/graph data into a portable machine-readable format (e.g., JSON, GraphML) for migration off Cognee. Being open-source/self-hostable reduces lock-in in principle, but does not itself satisfy an explicit data-export requirement, and a community comment even flags a 'trapped in their service' feeling. Missing for 10: a documented export/dump command or API returning graph/vector data in a standard interchange format, and any independent confirmation that exported data can be re-imported elsewhere.
- [claimed-docs] “`cognee-cli push` uploads a local dataset's knowledge graph to Cognee Cloud”
- [claimed-docs] “`cognee-cli report` writes a Graph Insight Report describing what a dataset's graph contains”
- [claimed-docs] “Cognee is open source. Run the full memory engine locally or on your own stack — free, forever.”
- [community] “Cognee's knowledge-graph design (ontology, LLM extraction, dedup) 'looks like such a heavy setup that adds a lot of friction and silos... fe…”
- [probe] “PROBE openapi: all candidate paths 404 (https://docs.cognee.ai/openapi.json, https://docs.cognee.ai/swagger.json, https://docs.cognee.ai/api…”
Deployment self host — stories about deployment self host in this arenaDeployment self host
Stories about deployment self host in this arena
Self host
developerRun the memory layer fully locally — embedded in-process or against local models — without any cloud dependency
weight 1 · round to CogneeDocs clearly describe a local-only mode where the CLI/agent state, memory, and provider connections all stay on-device with no Letta account or cloud backup required, and a self-hosted App Server that lets agents run entirely on infrastructure you control. However, the evidence never confirms running against fully local models (e.g., local LLM inference/embeddings) — 'model-agnostic' language points to swapping API-based providers (Claude, GPT, Gemini) rather than in-process/local-model operation, and other docs emphasize cloud sandboxes and server-hosted agents as the default path. Missing for 10: explicit support/documentation for local model backends (e.g., Ollama/local embeddings), and confirmation that memory/embedding search (MemFS Search) works without any external API calls.
- [claimed-docs] “This default local mode stores agent state on your machine and does not require a Letta login.”
- [claimed-docs] “all agent state, including messages, memory, and provider connections, stays on-device, and no Letta account is required.”
- [claimed-docs] “Letta agents can run entirely on infrastructure you control”
- [claimed-docs] “Self-hosted App Server: Run the Letta App Server to host local agents on a central, always-on machine and expose them to client applications…”
- [claimed-docs] “Letta agents are **model-agnostic**. Agents can use Claude, GPT, Gemini, or other supported models. Users can change an agent's underlying m…”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the [MemFS Search mod]”
Docs confirm Cognee is open source and can run fully locally: Docker quick-start, `cognee.start_ui()` running the UI/pipelines on-machine with no account, and `cognee-cli demo` working with no API key, no embedding provider, and no network access. This strongly supports local, cloud-free operation, but the evidence doesn't explicitly document configuring local LLMs/embedding models for full production use (beyond the offline demo), nor independent hands-on confirmation of a no-cloud deployment at scale. missing for 10: explicit doc/example wiring Cognee to local LLM/embedding backends for real workloads, and independent verification of fully offline operation beyond the demo command.
- [claimed-docs] “Cognee is open source. Run the full memory engine locally or on your own stack — free, forever.”
- [claimed-docs] “Run Cognee container\ndocker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
- [claimed-docs] “Run Cognee locally using Docker for development, testing, and custom deployments.”
- [claimed-docs] “Quick start with Docker (single command): docker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
- [claimed-docs] “you can also run the UI and all pipelines entirely on your own machine for free, with no account required, using `cognee.start_ui()`”
- [claimed-docs] “run the UI and all pipelines entirely on your own machine for free, with no account required, using cognee.start_ui()”
- [claimed-docs] “Cognee Cloud gives you the full Cognee platform ... you can also run the UI and all pipelines entirely on your own machine for free, with no…”
- [claimed-docs] “run the UI and all pipelines entirely on your own machine for free, with no account required, using `cognee.start_ui()`”
- [claimed-docs] “`cognee-cli demo` gives you a working example with **no API key and no embedding provider**, on a machine with no network access”
platform-engineerSelf-host the memory layer from open-source code (e.g. via Docker) on infrastructure I control
weight 3 · round to CogneeLetta explicitly documents a self-hosting path: 'Letta agents can run entirely on infrastructure you control' via the self-hosted App Server, with a local mode that stores state on-device and requires no cloud account, and the agent harness is described as fully open source. However, the evidence pack contains no explicit Docker instructions, container image, or hands-on/community confirmation that self-hosting works in practice. Missing for 10: Docker/container deployment specifics, independent verification of the self-host setup succeeding.
- [claimed-docs] “Letta agents can run entirely on infrastructure you control”
- [claimed-docs] “Self-hosted App Server: Run the Letta App Server to host local agents on a central, always-on machine and expose them to client applications…”
- [claimed-docs] “The Letta App Server lets you deploy the Letta agent harness as a service.”
- [claimed-docs] “Run the Letta App Server to host local agents on a central, always-on machine and expose them to client applications”
- [claimed-docs] “all agent state, including messages, memory, and provider connections, stays on-device, and no Letta account is required.”
- [claimed-docs] “This default local mode stores agent state on your machine and does not require a Letta login.”
- [probe] “PROBE llms.txt: HTTP 200 at https://docs.letta.com/llms.txt # Letta > Letta agents learn from experience and improve with use. The Letta ag…”
Docs explicitly confirm Cognee is open source and can be self-hosted via a single Docker run command, run locally with UI/pipelines with no account required, and pricing page states 'Run the full memory engine locally or on your own stack — free, forever.' This directly satisfies the platform-engineer self-host story. Missing for 10: independent hands-on verification of the Docker deployment working in production, and details on scaling/persistence configuration for self-hosted infra.
- [claimed-docs] “Run Cognee container\ndocker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
- [claimed-docs] “Run Cognee locally using Docker for development, testing, and custom deployments.”
- [claimed-docs] “Quick start with Docker (single command): docker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
- [claimed-docs] “Cognee is open source. Run the full memory engine locally or on your own stack — free, forever.”
- [claimed-docs] “you can also run the UI and all pipelines entirely on your own machine for free, with no account required, using `cognee.start_ui()`”
- [claimed-docs] “run the UI and all pipelines entirely on your own machine for free, with no account required, using cognee.start_ui()”
Graph entity memory — stories about graph entity memory in this arenaGraph entity memory
Stories about graph entity memory in this arena
Knowledge graph
ml-engineerStore memories as a knowledge graph of entities and relationships so multi-hop and entity-centric questions are answerable
weight 3 · round to CogneeLettanone0/10Letta's documented memory system is file/text-based (MemFS, memory blocks) with optional keyword/semantic/hybrid search (letta-docs-28, letta-docs-41), not a graph of entities and relationships; a Letta employee explicitly frames its approach as 'primarily text/files based' as an alternative to structured memory graphs (letta-comm-10). No evidence describes entity/relationship modeling or multi-hop graph traversal for memory.
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the [MemFS Search mod]”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the MemFS Search mod”
- [community] “Letta's Wooders responds to memory skepticism: 'the problem with ChatGPT / other RAG-based memory solutions is that it's not possible to col…”
Cognee's core docs describe exactly this capability: `.remember` ingests data and 'extracts entities and builds the knowledge graph' automatically, `.recall` searches memory picking the best retrieval strategy, and ontologies link entity types/mentions to canonical concepts for well-defined entity-centric relationships. This directly supports multi-hop and entity-centric querying over a graph memory store. Missing for 10: independent/hands-on benchmark evidence of actual multi-hop QA accuracy, and the one community mention raises friction/scale concerns (not a functional dispute) rather than confirming multi-hop correctness.
- [claimed-docs] “Give Cognee text, files, or URLs. It ingests, chunks, extracts entities, and builds the knowledge graph for you in one call.”
- [claimed-docs] “The `.recall` operation is the main retrieval entry point in Cognee v1.0. It searches memory using the best available source for the request…”
- [claimed-docs] “when you do not specify a search type, recall() classifies the query and picks the best retrieval strategy automatically.”
- [claimed-docs] “An ontology is an optional RDF/OWL file you can provide to Cognee. It acts as a reference vocabulary, making sure that entity types...are li…”
- [claimed-docs] “It acts as a reference vocabulary, making sure that entity types ("classes") and entity mentions ("individuals") extracted from your data ar…”
- [community] “Cognee's knowledge-graph design (ontology, LLM extraction, dedup) 'looks like such a heavy setup that adds a lot of friction and silos... fe…”
ml-engineerTrack when facts became valid or invalid (temporal reasoning) so the memory distinguishes current from outdated information
weight 2 · round drawnLettanone0/10Letta's documented memory model is file/block-based (MemFS, memory blocks, dreaming/consolidation) with no evidence of tracking fact validity intervals, timestamps of when facts became true/false, or any temporal-graph reasoning distinguishing current vs outdated facts. The axis is applicable to a memory-focused product, but nothing in the evidence pack shows Letta supports temporal fact versioning.
Schema customization
ml-engineerCustomize the memory schema — entity types, edge types, or ontology — to match my domain
weight 1 · round to CogneeLettanone0/10Letta's documented memory model is block/file-based (Markdown memory blocks, MemFS, persona/human blocks) rather than a graph model with configurable entity types, edge types, or ontology; no evidence pack item describes schema customization of entities/relationships. missing for 10: any documentation of graph-based memory representation, entity/edge type definitions, or ontology configuration APIs.
- [claimed-docs] “Pass memory for full control over the agent’s starting memory. Each entry becomes a Markdown file in the agent’s memory repository”
- [claimed-docs] “`persona` and `human` are conveniences that set the agent's persona and human memory”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the [MemFS Search mod]”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the MemFS Search mod”
Cognee documents an optional ontology mechanism (RDF/OWL file) that lets you map entity types and mentions to canonical, domain-specific concepts, which is a real form of schema customization. However, there is no evidence of a direct API for defining custom entity/edge type schemas outside of the ontology file, and community feedback flags the ontology/extraction setup as heavy and adding friction for smaller-scale customization. Missing for 10: documented API for defining custom node/edge types independent of RDF/OWL, examples of domain-specific schema customization, and hands-on validation that ontology customization works smoothly in practice.
- [claimed-docs] “An ontology is an optional RDF/OWL file you can provide to Cognee. It acts as a reference vocabulary, making sure that entity types...are li…”
- [claimed-docs] “It acts as a reference vocabulary, making sure that entity types ("classes") and entity mentions ("individuals") extracted from your data ar…”
- [claimed-docs] “An ontology is an optional RDF/OWL file you can provide to Cognee. It acts as a reference vocabulary, making sure that entity types ... extr…”
- [claimed-docs] “An ontology is an optional RDF/OWL file you can provide to Cognee. It acts as a reference vocabulary, making sure that entity types ("classe…”
- [claimed-docs] “An **ontology** is an optional RDF/OWL file you can provide to Cognee. It acts as a **reference vocabulary**, making sure that entity types …”
- [community] “Cognee's knowledge-graph design (ontology, LLM extraction, dedup) 'looks like such a heavy setup that adds a lot of friction and silos... fe…”
Memory recall quality — stories about memory recall quality in this arenaMemory recall quality
Stories about memory recall quality in this arena
Agent memory
ai-native userMy agent can manage its own memory mid-conversation — adding, searching, updating, and deleting memories through tools or API calls it invokes itself
weight 3 · round drawnLetta's memory system is explicitly designed for agent-driven self-editing: agents can be taught new memories via /remember, search via MemFS keyword/semantic search mods, consolidate/update via background 'dreaming', and audit/prune via /doctor — all invoked by the agent itself mid-conversation, and community evidence corroborates this as Letta's core differentiator ('memory-first', 'fully white box' memory editing). missing for 10: no direct API/tool-call schema example showing explicit add/search/update/delete operations invoked programmatically by the agent (docs describe user-facing slash commands and background dreaming rather than a fully enumerated CRUD tool API), and no independent hands-on test confirming the agent autonomously invokes these without user prompting.
- [claimed-docs] “You can also teach it explicitly with /remember: > /remember always use pnpm in this repo”
- [claimed-docs] “You can also teach it explicitly with `/remember`”
- [claimed-docs] “You can also teach it explicitly with /remember”
- [claimed-docs] “If the memory hierarchy has drifted or grown too large, run /doctor to audit placement, duplication, and system-prompt token usage.”
- [claimed-docs] “Dreaming uses background subagents to review recent conversations, consolidate useful lessons, and update memory without interrupting your a…”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the [MemFS Search mod]”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the MemFS Search mod”
- [community] “Letta Code described by Letta's Charles as 'memory-first': agents build learned context over time via tools like /init and /remember; a /cle…”
- [community] “Letta's Wooders responds to memory skepticism: 'the problem with ChatGPT / other RAG-based memory solutions is that it's not possible to col…”
- [community] “Concern raised: 'context poisoning is a real problem that these memory providers only make worse.' Letta's Charles countered that Letta's me…”
Cognee exposes explicit remember/recall/improve/forget operations as unified memory CRUD primitives, and ships an official MCP server so agents (Claude, Cursor, Cline, Codex, etc.) can invoke these as tools mid-conversation, plus a CLI/API for programmatic use. Missing for 10: independent/hands-on evidence of an agent actually performing add/search/update/delete calls in a live conversation, and no OpenAPI spec was found to confirm full API surface.
- [claimed-docs] “The `.remember` operation is the main ingestion entry point in Cognee v1.0. It stores information in memory with a single API call.”
- [claimed-docs] “when you do not specify a search type, `recall()` classifies the query and picks the best retrieval strategy automatically”
- [claimed-docs] “The `.improve` operation enriches an existing Cognee graph after data has already been ingested.”
- [claimed-docs] “The `.forget` operation is the unified deletion command in Cognee v1.0.”
- [claimed-docs] “Connect Cognee to MCP-compatible AI tools like Claude, Cursor, and Cline.”
- [claimed-docs] “Cognee MCP brings persistent AI memory to your workflow through the Model Context Protocol.”
- [claimed-docs] “You access them through MCP-compatible AI assistants like Cursor, Claude Desktop, Continue, Cline, and Codex.”
- [claimed-docs] “Single data item deletion: remove one data item from a dataset. Dataset deletion: remove an entire dataset and its graph/vector data. Full c…”
- [probe] “official MCP server documented at https://docs.cognee.ai/cognee-mcp/mcp-overview”
ai-native userThe memory layer decides for itself what is worth remembering — extracting salient facts from raw conversation and consolidating them in the background
weight 2 · round to LettaLetta's 'dreaming' feature explicitly uses background subagents to review conversations, extract salient lessons, and consolidate/update memory without interrupting active work, and /remember and /init let the agent decide where lessons belong in MemFS autonomously. Community corroboration (Charles/Wooders on HN) confirms this memory-first, self-consolidating design and contrasts it with RAG-based approaches, though skeptics questioned scaling. Missing for 10: independent hands-on benchmarking of extraction quality/accuracy and more detail on the automatic (non-explicit) salience-detection heuristics beyond trigger conditions.
- [claimed-docs] “Dreaming uses background subagents to review recent conversations, consolidate useful lessons, and update memory without interrupting your a…”
- [claimed-docs] “Run `/init` to bootstrap or refresh memory for the current project. The agent inspects the repository, asks about your working style when ne…”
- [claimed-docs] “You can also teach it explicitly with `/remember`: `> /remember always use pnpm in this repo`. The agent decides where the lesson belongs an…”
- [claimed-docs] “trigger controls when dreaming runs: after a number of steps, on context compaction, or never.”
- [community] “Letta Code described by Letta's Charles as 'memory-first': agents build learned context over time via tools like /init and /remember; a /cle…”
- [community] “Letta's Wooders responds to memory skepticism: 'the problem with ChatGPT / other RAG-based memory solutions is that it's not possible to col…”
- [community] “Concern raised: 'context poisoning is a real problem that these memory providers only make worse.' Letta's Charles countered that Letta's me…”
Cognee's ingestion pipeline automatically extracts entities and builds a knowledge graph rather than storing raw text verbatim (docs-16), and `.improve()` is explicitly designed to consolidate short-term session memory into permanent memory in the background of a session (docs-31, docs-19). However, both `.remember` and `.improve` are explicit, user/agent-invoked API calls rather than an autonomous decision process that judges salience on its own — there's no evidence of the system independently deciding what to discard vs. keep beyond structured extraction. missing for 10: evidence of autonomous/automatic triggering of consolidation without explicit calls, evidence of selective filtering of non-salient content vs. full extraction of everything ingested.
- [claimed-docs] “Give Cognee text, files, or URLs. It ingests, chunks, extracts entities, and builds the knowledge graph for you in one call.”
- [claimed-docs] “Use `improve()` after Remember when you want to enrich an existing graph further. Use it at the end of a chat or agent session to bridge sho…”
- [claimed-docs] “The .improve operation enriches an existing Cognee graph after data has already been ingested.”
- [claimed-docs] “A session is Cognee's short-term memory for a specific user. It is identified by `(user_id, session_id)` and stores an ordered list of recen…”
Benchmarks
ml-engineerSee published memory-quality benchmark results (e.g. LongMemEval, LoCoMo) backing the product's recall-accuracy claims
weight 2 · round drawnLettanone0/10The evidence pack contains extensive documentation of Letta's memory architecture (MemFS, dreaming, shared memory, etc.) and community discussion of memory quality skepticism/responses, but nowhere cites any published benchmark results (LongMemEval, LoCoMo, or similar) backing recall-accuracy claims. Since memory-recall quality is a core claimed feature of Letta, this axis clearly applies, but no benchmark evidence exists in the pack.
- [community] “'How does the memory scale (or not!) over time... if there is a memory block limit, is that an issue for self learning over time. Claude as …”
- [community] “Skeptic comment: 'In my experience, memory is really not that helpful in most cases... Maintaining the memory is a considerable burden... Ch…”
- [community] “Letta's Wooders responds to memory skepticism: 'the problem with ChatGPT / other RAG-based memory solutions is that it's not possible to col…”
- [community] “Concern raised: 'context poisoning is a real problem that these memory providers only make worse.' Letta's Charles countered that Letta's me…”
- [claimed-docs] “Dreaming uses background subagents to review recent conversations, consolidate useful lessons, and update memory without interrupting your a…”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the [MemFS Search mod]”
Core memory
developerAdd memories from conversations and retrieve them later with semantic search, so context persists across sessions
weight 3 · round to CogneeLetta clearly supports persistent memory across sessions (MemFS, /remember, stateful agents resumable across sessions/computers) and explicitly documents semantic search as an optional add-on via the 'MemFS Search mod' for keyword/semantic/hybrid search rather than a built-in default. Community commentary confirms the memory system is real and text/file-based but transparency-focused, not natively semantic-first, and some users raise unresolved concerns about memory scaling/self-improvement. missing for 10: first-party evidence that semantic search is enabled by default (not an optional mod), independent hands-on benchmarking of recall/retrieval quality, and clearer documentation of retrieval accuracy at scale.
- [claimed-docs] “You can return to the same agent across sessions, computers, and interfaces instead of starting from scratch each time.”
- [claimed-docs] “You can also teach it explicitly with `/remember`: `> /remember always use pnpm in this repo`. The agent decides where the lesson belongs an…”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the [MemFS Search mod]”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the MemFS Search mod”
- [community] “Letta Code described by Letta's Charles as 'memory-first': agents build learned context over time via tools like /init and /remember; a /cle…”
- [community] “Letta's Wooders responds to memory skepticism: 'the problem with ChatGPT / other RAG-based memory solutions is that it's not possible to col…”
- [community] “'How does the memory scale (or not!) over time... if there is a memory block limit, is that an issue for self learning over time. Claude as …”
Cognee's docs directly evidence the story: `.remember` ingests conversation/session data (including session-scoped writes via session_id), `.recall` performs semantic/classified search over stored memory, and `.improve` explicitly bridges short-term session memory into permanent memory for cross-session persistence. MCP integration also lets AI assistants use this persistent memory across sessions. Missing for 10: independent/hands-on evidence of retrieval quality or recall accuracy in practice (only vendor docs, plus one skeptical community note about setup friction at small scale) and no first-party benchmark of semantic search precision.
- [claimed-docs] “The `.remember` operation is the main ingestion entry point in Cognee v1.0. It stores information in memory with a single API call.”
- [claimed-docs] “cognee.remember(data, session_id="my_session") — writes content directly into the session cache for fast retrieval.”
- [claimed-docs] “when you do not specify a search type, recall() classifies the query and picks the best retrieval strategy automatically.”
- [claimed-docs] “Use `improve()` after Remember when you want to enrich an existing graph further. Use it at the end of a chat or agent session to bridge sho…”
- [claimed-docs] “A session is Cognee's short-term memory for a specific user. It is identified by `(user_id, session_id)` and stores an ordered list of recen…”
- [claimed-docs] “Store data as permanent graph memory or fast session memory in one call.”
- [community] “Cognee's knowledge-graph design (ontology, LLM extraction, dedup) 'looks like such a heavy setup that adds a lot of friction and silos... fe…”
developerRely on the memory layer to update, supersede, or merge memories when new information contradicts what was stored
weight 2 · round to LettaDocs describe mechanisms that plausibly support updating/merging memory — /remember lets the agent 'decide where the lesson belongs and commit the update to MemFS' (letta-docs-66), 'dreaming' subagents 'consolidate useful lessons and update memory' (letta-docs-27), and /doctor audits for 'duplication' and drift in the memory hierarchy (letta-docs-10) — and Letta staff claim memory is transparent/controllable and addresses context-poisoning concerns (letta-comm-10, letta-comm-11). However, none of this is a concrete demonstration of contradiction detection/supersession logic, and a community skeptic raises unresolved doubts about memory scaling and self-correction (letta-comm-8, letta-comm-9) without a hands-on refutation either way. Missing for 10: explicit documentation or example of the system detecting/resolving conflicting facts, independent hands-on verification that stale memories are actually superseded rather than just appended/deduplicated.
- [claimed-docs] “You can also teach it explicitly with `/remember`: `> /remember always use pnpm in this repo`. The agent decides where the lesson belongs an…”
- [claimed-docs] “Dreaming uses background subagents to review recent conversations, consolidate useful lessons, and update memory without interrupting your a…”
- [claimed-docs] “If the memory hierarchy has drifted or grown too large, run /doctor to audit placement, duplication, and system-prompt token usage.”
- [community] “Letta's Wooders responds to memory skepticism: 'the problem with ChatGPT / other RAG-based memory solutions is that it's not possible to col…”
- [community] “Concern raised: 'context poisoning is a real problem that these memory providers only make worse.' Letta's Charles countered that Letta's me…”
- [community] “'How does the memory scale (or not!) over time... if there is a memory block limit, is that an issue for self learning over time. Claude as …”
- [community] “Skeptic comment: 'In my experience, memory is really not that helpful in most cases... Maintaining the memory is a considerable burden... Ch…”
Cognee documents `.forget` for deletion and `.improve` for enriching an existing graph after ingestion, plus ontology-based canonicalization to keep entity concepts consistent, which together imply some update/merge capability, but no doc explicitly describes automatic detection or resolution of contradictory facts, versioning, or supersession logic. missing for 10: explicit contradiction-detection/merge-resolution mechanism, before/after example of conflicting facts being reconciled, independent validation of update behavior.
- [claimed-docs] “The `.improve` operation enriches an existing Cognee graph after data has already been ingested.”
- [claimed-docs] “The .improve operation enriches an existing Cognee graph after data has already been ingested.”
- [claimed-docs] “Use `improve()` after Remember when you want to enrich an existing graph further. Use it at the end of a chat or agent session to bridge sho…”
- [claimed-docs] “The `.forget` operation is the unified deletion command in Cognee v1.0.”
- [claimed-docs] “Single data item deletion: remove one data item from a dataset. Dataset deletion: remove an entire dataset and its graph/vector data.”
- [claimed-docs] “Single data item deletion: remove one data item from a dataset. Dataset deletion: remove an entire dataset and its graph/vector data. Full c…”
- [claimed-docs] “Remove a data item, an entire dataset, or all memory for the current user.”
- [claimed-docs] “An ontology is an optional RDF/OWL file you can provide to Cognee. It acts as a reference vocabulary, making sure that entity types...are li…”
Retrieval controls
developerSteer retrieval with metadata filters, keyword/hybrid search modes, or reranking instead of accepting a single fixed similarity search
weight 2 · round to CogneeLetta docs mention that installing the 'MemFS Search mod' enables keyword search and optional semantic or hybrid search, showing some retrieval-mode flexibility beyond fixed similarity search, but this requires an add-on rather than being built-in. Missing for 10: explicit metadata-filter support, reranking capability, and any evidence this mod is core/first-class rather than an optional plugin.
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the [MemFS Search mod]”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the MemFS Search mod”
Docs state that recall() supports specifying a search type (with auto-classification as the default), implying developers can override the single fixed similarity mode, but the evidence never names specific modes like keyword/hybrid search, metadata filters, or reranking controls. Missing for 10: explicit documentation of metadata-filter parameters, named keyword/hybrid search types, and reranking configuration options.
- [claimed-docs] “when you do not specify a search type, `recall()` classifies the query and picks the best retrieval strategy automatically”
- [claimed-docs] “when you do not specify a search type, recall() classifies the query and picks the best retrieval strategy automatically.”
- [claimed-docs] “when you do not specify a search type, `recall()` classifies the query and picks the best retrieval strategy automatically.”
- [claimed-docs] “The `.recall` operation is the main retrieval entry point in Cognee v1.0. It searches memory using the best available source for the request…”
Openness — open source, data portability, and self-hosting storiesOpenness
Open source, data portability, and self-hosting stories
ai-native userDo everything through the API that I can do in the UI
weight 2 · round to CogneeLetta's SDK/App Server exposes agent creation, memory, and OpenAI-compatible API access (letta-docs-1, letta-docs-23, letta-docs-32), suggesting an API-first architecture, but the evidence never confirms that CLI/UI-specific features like /doctor memory audits, /pin, /fork, /btw, or /agents browsing have API equivalents, and a direct probe for a public OpenAPI spec returned 404s across all candidate paths (letta-probe-2), undermining a clean 'everything via API' claim. missing for 10: explicit API endpoints/SDK methods mirroring each UI/CLI convenience command, a discoverable OpenAPI spec confirming full surface parity, and independent confirmation of parity.
- [claimed-docs] “create an agent once, then resume it from anywhere”
- [claimed-docs] “use the App Server’s OpenAI-compatible API with clients such as Open WebUI, or the ACP adapter with ACP clients such as Zed”
- [claimed-docs] “The Letta App Server lets you deploy the Letta agent harness as a service.”
- [claimed-docs] “Run the Letta App Server to host local agents on a central, always-on machine and expose them to client applications”
- [probe] “PROBE openapi: all candidate paths 404 (https://docs.letta.com/openapi.json, https://docs.letta.com/swagger.json, https://docs.letta.com/api…”
- [claimed-docs] “Use /fork to branch the current conversation, including its in-context history.”
- [claimed-docs] “If the memory hierarchy has drifted or grown too large, run /doctor to audit placement, duplication, and system-prompt token usage.”
- [claimed-docs] “Use /agents in the CLI to browse and switch agents. Pin an agent with /pin or the favorite control in the desktop app”
Cognee is fundamentally API/library-first: remember, recall, improve, and forget are documented as the core operations, and the CLI/MCP surfaces reuse the same underlying calls, suggesting close parity with what the optional browser UI exposes (upload, search, dataset management). However, there is no OpenAPI/swagger spec (probe-2 shows all candidate paths 404), and no explicit documentation confirming graph-visualization/exploration features in the UI have direct API equivalents. Missing for 10: a published OpenAPI/REST spec, explicit doc statement mapping every UI feature (e.g., graph visualization) to an API call, and independent confirmation of full UI/API parity.
- [claimed-docs] “The `.remember` operation is the main ingestion entry point in Cognee v1.0. It stores information in memory with a single API call.”
- [claimed-docs] “The `.forget` operation is the unified deletion command in Cognee v1.0.”
- [claimed-docs] “The .improve operation enriches an existing Cognee graph after data has already been ingested.”
- [claimed-docs] “Upload data, explore knowledge graphs, run searches, and manage datasets through the browser.”
- [claimed-docs] “Cognee Cloud gives you the full Cognee platform ... you can also run the UI and all pipelines entirely on your own machine for free, with no…”
- [probe] “PROBE openapi: all candidate paths 404 (https://docs.cognee.ai/openapi.json, https://docs.cognee.ai/swagger.json, https://docs.cognee.ai/api…”
- [probe] “official CLI documented at https://docs.cognee.ai/cognee-cli/overview”
ai-native userExport all of my data in open formats and leave
weight 3 · round drawnLetta's architecture strongly favors openness: memory is stored as plain Markdown/MemFS files (letta-docs-11, letta-docs-66), shared memory is a Git repository (letta-docs-21, letta-docs-29), and self-hosting keeps 'all agent state... on-device' with no cloud account required (letta-docs-74, letta-docs-30), reinforced by community claims of a 'fully white box' text-based memory system (letta-comm-10, letta-comm-11). However, there is no explicit documented 'export my data and delete my account' feature or guarantee that cloud-hosted shared-memory git repos can be freely cloned/exported by the user. Missing for 10: an explicit data-export/account-deletion workflow, documentation on extracting cloud-hosted agent state, and independent verification that self-hosted mode fully replaces all cloud-only features.
- [claimed-docs] “Pass memory for full control over the agent’s starting memory. Each entry becomes a Markdown file in the agent’s memory repository”
- [claimed-docs] “Shared memory gives multiple agents access to the same files and working context. Each shared memory repository is a Git repository hosted i…”
- [claimed-docs] “Shared memory gives multiple agents access to the same files and working context.”
- [claimed-docs] “Letta agents can run entirely on infrastructure you control”
- [claimed-docs] “all agent state, including messages, memory, and provider connections, stays on-device, and no Letta account is required.”
- [community] “Letta's Wooders responds to memory skepticism: 'the problem with ChatGPT / other RAG-based memory solutions is that it's not possible to col…”
- [community] “Concern raised: 'context poisoning is a real problem that these memory providers only make worse.' Letta's Charles countered that Letta's me…”
Cognee is explicitly open source and can be run fully locally with your own storage backend (docs-14, docs-23, docs-26), meaning your data never has to leave your infrastructure — a strong form of avoiding lock-in. However, there is no documented explicit 'export' command or open-format data dump feature; the closest is a Graph Insight Report (docs-12) which is a descriptive summary, not a full data export, and forget/delete operations (docs-18, docs-30) only remove data rather than export it. Missing for 10: a documented export/dump command producing open-format (e.g., JSON, RDF, CSV) files of the full graph/vector data, and any independent confirmation that self-hosted data is fully portable without proprietary lock-in.
- [claimed-docs] “Cognee is open source. Run the full memory engine locally or on your own stack — free, forever.”
- [claimed-docs] “run the UI and all pipelines entirely on your own machine for free, with no account required, using cognee.start_ui()”
- [claimed-docs] “Run Cognee locally using Docker for development, testing, and custom deployments.”
- [claimed-docs] “`cognee-cli report` writes a Graph Insight Report describing what a dataset's graph contains”
- [claimed-docs] “Single data item deletion: remove one data item from a dataset. Dataset deletion: remove an entire dataset and its graph/vector data.”
- [claimed-docs] “Single data item deletion: remove one data item from a dataset. Dataset deletion: remove an entire dataset and its graph/vector data. Full c…”
ai-native userRead the product's source under an open license
weight 2 · round to LettaLetta's own docs state the agent harness is 'fully open source' and link to a public GitHub repo (letta-ai/letta) for the Agent SDK, giving concrete evidence of source availability. However, the evidence pack never names the actual license (e.g., Apache/MIT) or confirms the full product (App Server, CLI, memory subsystems) is under that same open license rather than just the harness. Missing for 10: explicit license identification/file, confirmation that all core components (not just the agent harness) are open-sourced, and independent corroboration of license terms.
- [probe] “PROBE llms.txt: HTTP 200 at https://docs.letta.com/llms.txt # Letta > Letta agents learn from experience and improve with use. The Letta ag…”
- [github] “the Letta Agent SDK for building agents into TypeScript applications”
- [claimed-docs] “Letta agents can run entirely on infrastructure you control”
Cognee's pricing page explicitly states 'Cognee is open source. Run the full memory engine locally or on your own stack — free, forever,' confirming open-source availability, but no specific license (e.g. MIT/Apache) is named nor is a GitHub repository link or independent corroboration provided in the evidence pack. missing for 10: explicit license type/name, link to source repository, independent confirmation of license terms.
- [claimed-docs] “Cognee is open source. Run the full memory engine locally or on your own stack — free, forever.”
ai-native userSelf-host the core product
weight 3 · round drawnLetta's docs explicitly describe self-hosting the core product: running the Letta App Server on infrastructure you control, local CLI mode that stores state on-device without requiring a Letta account, and running agents entirely on infra you control (letta-docs-2, letta-docs-15, letta-docs-30, letta-docs-31, letta-docs-74). This is first-party documentation of a genuine self-host mode, not just cloud-hosted convenience. missing for 10: independent/hands-on verification that self-hosted deployment works as documented, and more detail on infra/ops requirements for self-hosting at scale.
- [claimed-docs] “Run the Letta App Server to host local agents on a central, always-on machine and expose them to client applications through the Agent SDK”
- [claimed-docs] “Self-hosted App Server: Run the Letta App Server to host local agents on a central, always-on machine and expose them to client applications…”
- [claimed-docs] “Letta agents can run entirely on infrastructure you control”
- [claimed-docs] “This default local mode stores agent state on your machine and does not require a Letta login.”
- [claimed-docs] “all agent state, including messages, memory, and provider connections, stays on-device, and no Letta account is required.”
- [claimed-docs] “Run the Letta App Server to host local agents on a central, always-on machine and expose them to client applications”
Cognee is explicitly open source and can be self-hosted via Docker (single docker run command) or run entirely locally including UI/pipelines with no account required, and pricing page confirms 'Run the full memory engine locally or on your own stack — free, forever.' Community sentiment notes the knowledge-graph setup can feel heavy at small scale, but does not contradict self-hosting capability itself. Missing for 10: independent hands-on verification of a full self-hosted production deployment beyond docs/quick-start.
- [claimed-docs] “Run Cognee container\ndocker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
- [claimed-docs] “Run Cognee locally using Docker for development, testing, and custom deployments.”
- [claimed-docs] “Quick start with Docker (single command): docker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
- [claimed-docs] “Cognee is open source. Run the full memory engine locally or on your own stack — free, forever.”
- [claimed-docs] “you can also run the UI and all pipelines entirely on your own machine for free, with no account required, using `cognee.start_ui()`”
- [claimed-docs] “run the UI and all pipelines entirely on your own machine for free, with no account required, using cognee.start_ui()”
- [community] “Cognee's knowledge-graph design (ontology, LLM extraction, dedup) 'looks like such a heavy setup that adds a lot of friction and silos... fe…”
Pricing plans — plan structure and value — what each tier costs and what it unlocksPricing plans
Plan structure and value — what each tier costs and what it unlocks
Pricing
platform-engineerSee published pricing with a free tier and per-unit rates so I can project memory costs before committing
weight 2 · round to LettaLetta's docs confirm a published pricing page with a free BYOK tier (letta-docs-56), a capped free stateful-agent tier (letta-docs-36) and a usage-based developer plan (letta-docs-49), which addresses the free-tier and general cost-model part of the story. However, no explicit per-unit rate table (e.g., $/agent-hour, $/GB memory, $/token) is shown in the evidence, so a platform engineer cannot precisely project memory costs. Missing for 10: concrete per-unit pricing figures/rate card, and independent confirmation of actual billing granularity for memory usage.
- [claimed-docs] “Up to 20 stateful agents”
- [claimed-docs] “With a developer plan, you can create an unlimited number of agents but pay usage-based pricing.”
- [claimed-docs] “You can get started with Letta for free by using models with BYOK, including coding plans from ChatGPT/Codex, Kimi, and Z.AI.”
- [claimed-docs] “You can share agents across your team (and set permissions for access) to create custom agents for your organization”
The pricing page confirms a free/open-source tier (self-host free forever) and lists some paid-tier features (integrations, code indexing), but no evidence shows per-unit or usage-based rates that would let a platform engineer project costs. missing for 10: documented per-unit/usage pricing rates, tiered price points, or a cost calculator.
- [claimed-docs] “Cognee is open source. Run the full memory engine locally or on your own stack — free, forever.”
- [claimed-docs] “Data source integrations: Slack, Notion, Linear, Google Drive”
- [claimed-docs] “Code indexing for your repos”
Privacy posture — data-handling and privacy storiesPrivacy posture
Data-handling and privacy stories
ai-native userChoose where my data is stored (region/residency)
weight 2 · round to CogneeLetta offers self-hosting where 'agents can run entirely on infrastructure you control' and local mode where 'all agent state ... stays on-device' (letta-docs-30, letta-docs-74), giving users a way to control where data physically lives. However, there is no documented region/residency selection feature for the managed Letta Cloud offering itself (e.g., choosing EU vs US data centers). Missing for 10: explicit cloud region/residency picker, compliance certifications (GDPR/data-locality), and any documentation of where Letta Cloud stores data by default.
- [claimed-docs] “Letta agents can run entirely on infrastructure you control”
- [claimed-docs] “all agent state, including messages, memory, and provider connections, stays on-device, and no Letta account is required.”
- [claimed-docs] “Self-hosted App Server: Run the Letta App Server to host local agents on a central, always-on machine and expose them to client applications…”
- [claimed-docs] “This default local mode stores agent state on your machine and does not require a Letta login.”
Cognee is open-source and can be fully self-hosted (Docker, local UI, no account required), giving users complete control over where their data physically resides — a strong proxy for data residency. However, there is no documented region-selection feature within Cognee Cloud itself (e.g., choosing EU vs US data centers), so residency is achieved only via self-hosting, not via a first-class regional-storage option. Missing for 10: explicit multi-region cloud storage/selection controls, documented data-residency/compliance certifications (e.g., GDPR region pinning) for the hosted offering.
- [claimed-docs] “Cognee is open source. Run the full memory engine locally or on your own stack — free, forever.”
- [claimed-docs] “run the UI and all pipelines entirely on your own machine for free, with no account required, using cognee.start_ui()”
- [claimed-docs] “Run Cognee locally using Docker for development, testing, and custom deployments.”
- [claimed-docs] “Cognee Cloud gives you the full Cognee platform ... you can also run the UI and all pipelines entirely on your own machine for free, with no…”
- [claimed-docs] “Quick start with Docker (single command): docker run --env-file ./.env -p 8000:8000 --rm -it cognee/cognee:main”
ai-native userPrevent my data from being used to train AI models
weight 3 · round to CogneeLettanone0/10No evidence pack item addresses data-training opt-out, a training-data policy, or any privacy controls preventing use of user data for model training; self-hosting is mentioned but not tied to a training-data guarantee.
Cognee is open source and can run entirely locally with no account required (`cognee.start_ui()`, self-hosted Docker), meaning data never has to leave the user's infrastructure, which inherently prevents third-party training use. However, there is no explicit privacy policy statement addressing training-data use, especially for the Cognee Cloud option where data is pushed via `cognee-cli push` to a hosted service. Missing for 10: an explicit no-training-on-user-data policy statement, terms-of-service language for the cloud tier, and independent confirmation of this claim.
- [claimed-docs] “Cognee is open source. Run the full memory engine locally or on your own stack — free, forever.”
- [claimed-docs] “run the UI and all pipelines entirely on your own machine for free, with no account required, using cognee.start_ui()”
- [claimed-docs] “run the UI and all pipelines entirely on your own machine for free, with no account required, using `cognee.start_ui()`”
- [claimed-docs] “`cognee-cli push` uploads a local dataset's knowledge graph to Cognee Cloud”
ai-native userControl data retention and deletion
weight 2 · round to CogneeLetta gives users some retention control: local mode stores state on-device without a cloud login (letta-docs-31), self-hosting keeps 'all agent state, including messages, memory, and provider connections... on-device, and no Letta account is required' (letta-docs-74, letta-docs-30), and --ephemeral mode runs a one-shot task 'without creating, resuming, or persisting an agent, memory blocks, or MemFS' (letta-docs-14). However, there is no documented explicit 'delete agent/data' command, data-retention policy for Letta Cloud, or export/erase workflow. Missing for 10: explicit deletion/erasure command or API, documented cloud data-retention/purge policy, independent confirmation that deletion actually removes cloud-stored data.
- [claimed-docs] “Use --ephemeral to run a one-shot task without creating, resuming, or persisting an agent, memory blocks, or MemFS”
- [claimed-docs] “This default local mode stores agent state on your machine and does not require a Letta login.”
- [claimed-docs] “all agent state, including messages, memory, and provider connections, stays on-device, and no Letta account is required.”
- [claimed-docs] “Letta agents can run entirely on infrastructure you control”
Cognee documents a unified `.forget` deletion command supporting single-item deletion, full dataset deletion, and full cleanup of everything a user can delete, giving explicit user-controlled retention/deletion granularity. This is backed by dedicated docs pages with concrete API semantics. Missing for 10: independent/hands-on verification of deletion behavior and no explicit data-retention policy/TTL documentation beyond the deletion API.
- [claimed-docs] “The `.forget` operation is the unified deletion command in Cognee v1.0.”
- [claimed-docs] “Single data item deletion: remove one data item from a dataset. Dataset deletion: remove an entire dataset and its graph/vector data.”
- [claimed-docs] “Single data item deletion: remove one data item from a dataset. Dataset deletion: remove an entire dataset and its graph/vector data. Full c…”
- [claimed-docs] “Remove a data item, an entire dataset, or all memory for the current user.”
ai-native userOpt out of telemetry and usage tracking
weight 2 · round drawnLettanone0/10No evidence pack item addresses telemetry, usage analytics, or an opt-out mechanism; while local self-hosted mode is documented, nothing confirms or denies data collection/telemetry settings.
Retrieval performance — stories about retrieval performance in this arenaRetrieval performance
Stories about retrieval performance in this arena
Latency
platform-engineerSee documented retrieval-latency targets or measured numbers (e.g. p50/p95) backing the product's speed claims
weight 2 · round drawnLettanone0/10No evidence pack item mentions retrieval latency, p50/p95, or any measured/documented performance numbers for search or memory retrieval; documentation covers features like MemFS search mods and dreaming but never quantifies speed. missing for 10: any documented latency targets, benchmark numbers, or measured p50/p95 retrieval performance data.
Scale
platform-engineerIngest at scale with async or batch processing and check the status of background memory operations
weight 2 · round drawnLettanone0/10Letta's docs describe per-agent memory consolidation ('dreaming' background subagents, triggers on steps/compaction) but there is no evidence of a bulk/batch ingestion pipeline for scale data loading nor any API/CLI to check the status of background memory jobs, which is what this platform-engineer story requires.
Cogneenone0/10The evidence pack details Cognee's core ingestion (.remember), enrichment (.improve), and CLI/Docker deployment options, but nowhere describes asynchronous or batch ingestion pipelines, job queuing, or a way to check the status of background memory operations. Pipelines are mentioned only in passing (e.g., 'run the UI and all pipelines') without any status/monitoring API or async processing model documented.
- [claimed-docs] “Give Cognee text, files, or URLs. It ingests, chunks, extracts entities, and builds the knowledge graph for you in one call.”
- [claimed-docs] “run the UI and all pipelines entirely on your own machine for free, with no account required, using cognee.start_ui()”
- [claimed-docs] “Cognee Cloud gives you the full Cognee platform ... you can also run the UI and all pipelines entirely on your own machine for free, with no…”
- [claimed-docs] “run the UI and all pipelines entirely on your own machine for free, with no account required, using `cognee.start_ui()`”
Sdk integrations — stories about sdk integrations in this arenaSdk integrations
Stories about sdk integrations in this arena
Agent memory
ai-native userConnect off-the-shelf assistants (Claude, ChatGPT, Cursor) to the same memory so every tool I use shares what it knows about me
weight 2 · round to CogneeLettanone0/10Evidence shows Letta integrating with Codex, Claude Code, Hermes Agent, OpenClaw for skills (docs-57), and offering an OpenAI-compatible API for tools like Open WebUI plus an ACP adapter for Zed (docs-23), but nothing shows Letta connecting to or sharing memory with off-the-shelf Claude, ChatGPT, or Cursor specifically. Letta's MCP support is client-side (Letta consuming MCP servers, docs-61/76), and community evidence notes only a third-party 'Letta-MCP-server' built by a user, not an official integration exposing Letta memory to these named assistants.
- [claimed-docs] “Skills are portable across the Letta app and CLI, Codex, Claude Code, Hermes Agent, OpenClaw, and other compatible agents.”
- [claimed-docs] “use the App Server’s OpenAI-compatible API with clients such as Open WebUI, or the ACP adapter with ACP clients such as Zed”
- [claimed-docs] “The SDK supports local stdio processes, Streamable HTTP, and legacy SSE”
- [claimed-docs] “MCP tools are discovered from servers supplied through `mcpServers` and proxied by the SDK host to the MCP server.”
- [community] “Charles from Letta on MCP: 'We're working on it... making Letta agents an MCP client, so that you can easily connect to MCP servers as tools…”
Cognee ships an official MCP server documented to connect Claude, Cursor, Cline, Continue, and Codex to the same persistent memory store, directly matching the 'shared memory across assistants' story. However, ChatGPT is never listed among supported MCP clients, and there is no independent/hands-on evidence confirming multi-tool memory sharing actually works in practice. Missing for 10: explicit ChatGPT/MCP support confirmation, independent verification of cross-tool memory sharing in real use.
- [claimed-docs] “Connect Cognee to MCP-compatible AI tools like Claude, Cursor, and Cline.”
- [claimed-docs] “Cognee MCP brings persistent AI memory to your workflow through the Model Context Protocol.”
- [claimed-docs] “You access them through MCP-compatible AI assistants like Cursor, Claude Desktop, Continue, Cline, and Codex.”
- [probe] “official MCP server documented at https://docs.cognee.ai/cognee-mcp/mcp-overview”
Frameworks
developerDrop the memory layer into agent frameworks like LangChain, LangGraph, CrewAI, or the Vercel AI SDK via documented first-party integrations
weight 2 · round drawnLettanone0/10The evidence pack covers Letta's own Agent SDK, CLI, App Server, MCP support, and various demo apps, but contains no mention of LangChain, LangGraph, CrewAI, or Vercel AI SDK integrations anywhere in the docs, GitHub, or community sources.
Cogneenone0/10The evidence shows Cognee integrates with MCP-compatible tools (Claude, Cursor, Cline, Continue, Codex) and offers a Python API, CLI, and Docker deployment, but there is no mention anywhere of first-party integrations with LangChain, LangGraph, CrewAI, or the Vercel AI SDK specifically.
- [claimed-docs] “Connect Cognee to MCP-compatible AI tools like Claude, Cursor, and Cline.”
- [claimed-docs] “Cognee MCP brings persistent AI memory to your workflow through the Model Context Protocol.”
- [claimed-docs] “You access them through MCP-compatible AI assistants like Cursor, Claude Desktop, Continue, Cline, and Codex.”
- [claimed-docs] “Store data as permanent graph memory or fast session memory in one call.”
developerWire memory into real-time voice pipelines (e.g. LiveKit, Pipecat, ElevenLabs) with documented integrations fast enough for live conversation
weight 1 · round drawnLettanone0/10The evidence pack contains no documentation or mention of LiveKit, Pipecat, ElevenLabs, or any real-time voice pipeline integration. The closest evidence (letta-comm-4) is a forum reply suggesting a DIY postgres-backed memory setup for a hypothetical voice use case, not a documented, low-latency SDK integration for live conversation.
- [community] “User with a father suffering memory loss suggested Letta's framework looked interesting for building a voice-interactive LLM with memory to …”
Cogneenone0/10No evidence of any documented integration with voice pipeline frameworks like LiveKit, Pipecat, or ElevenLabs, nor any mention of real-time/low-latency voice conversation support. Cognee's integrations listed are MCP clients (Claude, Cursor, Cline), data sources (Slack, Notion, Linear, GitHub), and its own CLI/cloud UI — none address voice pipelines.
- [claimed-docs] “Connect Cognee to MCP-compatible AI tools like Claude, Cursor, and Cline.”
- [claimed-docs] “Connect Slack, GitHub, Linear to Cognee and help agents recall what your company knows.”
- [claimed-docs] “Data source integrations: Slack, Notion, Linear, Google Drive”
- [claimed-docs] “Connect a GitHub organization and index every covered repository into the code graph.”
- [claimed-docs] “Install Cognee as a Linear agent that answers @mentions and delegated issues from memory, and index the workspace's issues.”
Sdks
developerBuild against official SDKs in at least Python and TypeScript with equivalent memory APIs
weight 2 · round to LettaThe evidence extensively documents a TypeScript/JavaScript Agent SDK (client.createAgent(), sessions, streaming, MCP, browser/mobile support) but no evidence pack item confirms an official Python SDK or its API parity with the TypeScript SDK — despite Letta's backend being Python-based, docs cited here only reference the JS/TS Agent SDK and CLI. missing for 10: explicit official Python SDK documentation/package, confirmation of equivalent memory API surface (createAgent, sessions, streaming, MCP) across Python and TypeScript, and any independent corroboration of Python SDK usage.
- [github] “the Letta Agent SDK for building agents into TypeScript applications”
- [claimed-docs] “Create a stateful agent with `client.createAgent()`. It returns the agent's ID as a string, which you use to open sessions and manage the ag…”
- [claimed-docs] “`resumeSession(id)` accepts either kind of ID: pass an `agent-xxx` ID to resume the agent's default conversation, or a `conv-xxx` ID to resu…”
- [claimed-docs] “Send a message with `session.send()` and read the response with `session.stream()`. The stream yields typed events for the whole turn”
- [claimed-docs] “Browser, Expo, and React Native applications must import the SDK from `@letta-ai/letta-agent-sdk/client`”
- [claimed-docs] “The SDK supports local stdio processes, Streamable HTTP, and legacy SSE”
- [claimed-docs] “MCP tools are discovered from servers supplied through `mcpServers` and proxied by the SDK host to the MCP server.”
The evidence shows a rich, well-documented Python API (.remember, .recall, .improve, .forget, sessions, CLI, Docker) but there is no mention anywhere of a TypeScript/JavaScript SDK or equivalent memory API in another language — only Python and CLI/MCP integrations are documented. missing for 10: TypeScript SDK, cross-language API parity documentation, evidence of any non-Python client library.
- [claimed-docs] “The `.remember` operation is the main ingestion entry point in Cognee v1.0. It stores information in memory with a single API call.”
- [claimed-docs] “when you do not specify a search type, `recall()` classifies the query and picks the best retrieval strategy automatically”
- [claimed-docs] “The `.forget` operation is the unified deletion command in Cognee v1.0.”
- [claimed-docs] “Store data as permanent graph memory or fast session memory in one call.”
- [claimed-docs] “lets you run Cognee from the terminal so you can remember data, enrich memory, and ask questions without opening a Python file”
- [probe] “official CLI documented at https://docs.cognee.ai/cognee-cli/overview”
Session context — stories about session context in this arenaSession context
Stories about session context in this arena
Context assembly
developerRetrieve a token-budgeted, prompt-ready context block assembled from relevant memories in one call
weight 2 · round to CogneeLettanone0/10Letta's docs describe memory blocks, MemFS, /doctor token audits, and search mods, but there is no evidence of a single API/CLI call that returns a token-budgeted, prompt-ready assembled context block for developer consumption outside the agent's own turn — memory in Letta is managed internally as part of the agent's system prompt, not exposed as a discrete retrieval endpoint.
- [claimed-docs] “If the memory hierarchy has drifted or grown too large, run /doctor to audit placement, duplication, and system-prompt token usage.”
- [claimed-docs] “Pass memory for full control over the agent’s starting memory. Each entry becomes a Markdown file in the agent’s memory repository”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the [MemFS Search mod]”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the MemFS Search mod”
- [claimed-docs] “`persona` and `human` are conveniences that set the agent's persona and human memory”
Cognee's `.recall()` operation retrieves relevant memories in a single call and automatically picks the best retrieval strategy, and session/caching docs describe assembling short-term memory for fast retrieval, satisfying the 'one call' and 'relevant memories' parts of the story. However, there is no documentation of token-budget management or explicit prompt-ready formatting of the returned context block. missing for 10: token-budget control/truncation, explicit prompt-formatted output examples.
- [claimed-docs] “when you do not specify a search type, `recall()` classifies the query and picks the best retrieval strategy automatically”
- [claimed-docs] “when you do not specify a search type, recall() classifies the query and picks the best retrieval strategy automatically.”
- [claimed-docs] “when you do not specify a search type, `recall()` classifies the query and picks the best retrieval strategy automatically.”
- [claimed-docs] “The `.recall` operation is the main retrieval entry point in Cognee v1.0. It searches memory using the best available source for the request…”
- [claimed-docs] “cognee.remember(data, session_id="my_session") — writes content directly into the session cache for fast retrieval.”
- [claimed-docs] “A session is Cognee's short-term memory for a specific user. It is identified by `(user_id, session_id)` and stores an ordered list of recen…”
- [claimed-docs] “Store data as permanent graph memory or fast session memory in one call.”
developerGet summaries of past sessions or threads so an agent can pick up where the last conversation left off
weight 3 · round to LettaLetta's core architecture is built around persistent, stateful agents that can be resumed across sessions/computers, with explicit APIs (resumeSession, agent IDs) and memory consolidation ('dreaming') that summarizes past conversations into durable memory so agents pick up where they left off. Community/founder commentary (letta-comm-5, letta-comm-12) corroborates the 'memory-first, no more forgetting' design intent. missing for 10: independent hands-on verification of summary/context fidelity over long horizons, and quantitative benchmarks of resume/summarization quality beyond vendor docs.
- [claimed-docs] “You can return to the same agent across sessions, computers, and interfaces instead of starting from scratch each time.”
- [claimed-docs] “`resumeSession(id)` accepts either kind of ID: pass an `agent-xxx` ID to resume the agent's default conversation, or a `conv-xxx` ID to resu…”
- [claimed-docs] “Dreaming uses background subagents to review recent conversations, consolidate useful lessons, and update memory without interrupting your a…”
- [claimed-docs] “Use /fork to branch the current conversation, including its in-context history.”
- [claimed-docs] “`/search [query]` | Search messages across agents”
- [claimed-docs] “Run `/init` to bootstrap or refresh memory for the current project. The agent inspects the repository, asks about your working style when ne…”
- [claimed-docs] “You can also teach it explicitly with `/remember`: `> /remember always use pnpm in this repo`. The agent decides where the lesson belongs an…”
- [community] “Letta Code described by Letta's Charles as 'memory-first': agents build learned context over time via tools like /init and /remember; a /cle…”
- [community] “Letta employee describes Letta Code: 'a fundamentally different approach to coding agents with a focus on continual learning and statefulnes…”
Cognee's docs describe a concrete session-memory model (`(user_id, session_id)` short-term memory storing an ordered list of recent interactions) plus a `.improve` operation explicitly meant to 'bridge short-term session memory into permanent memory' and `.recall` to retrieve from it, which supports an agent resuming a past thread. However the docs describe raw retrieval/graph-enrichment rather than an explicit 'summary' artifact, and there's no independent/hands-on confirmation of this workflow. missing for 10: explicit session-summary generation feature, independent verification that recall/improve actually reconstructs prior conversation context in practice.
- [claimed-docs] “cognee.remember(data, session_id="my_session") — writes content directly into the session cache for fast retrieval.”
- [claimed-docs] “A session is Cognee's short-term memory for a specific user. It is identified by `(user_id, session_id)` and stores an ordered list of recen…”
- [claimed-docs] “Use `improve()` after Remember when you want to enrich an existing graph further. Use it at the end of a chat or agent session to bridge sho…”
- [claimed-docs] “The `.recall` operation is the main retrieval entry point in Cognee v1.0. It searches memory using the best available source for the request…”
- [claimed-docs] “`cognee-cli report` writes a Graph Insight Report describing what a dataset's graph contains”
Ingestion
developerIngest documents, JSON, and business data into memory — not just chat transcripts
weight 2 · round to CogneeLetta's memory system (MemFS) is file/markdown-based and the SDK lets developers 'pass memory for full control' where 'each entry becomes a Markdown file' — implying arbitrary content beyond chat transcripts can seed agent memory, and /init lets an agent ingest a repository's files. However, there is no explicit documentation of ingesting structured JSON or generic 'business data' formats into memory, nor any first-party example of a document/JSON ingestion pipeline. Missing for 10: explicit JSON/structured-data ingestion support, document-upload workflows, and independent/hands-on evidence of non-chat data being loaded into agent memory.
- [claimed-docs] “Pass memory for full control over the agent’s starting memory. Each entry becomes a Markdown file in the agent’s memory repository”
- [claimed-docs] “Run `/init` to bootstrap or refresh memory for the current project. The agent inspects the repository, asks about your working style when ne…”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the [MemFS Search mod]”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the MemFS Search mod”
- [claimed-docs] “`persona` and `human` are conveniences that set the agent's persona and human memory”
Docs clearly show Cognee ingests text, files, URLs, JSON, and business data (Slack, Notion, Linear, Google Drive, GitHub) into a persistent knowledge graph via .remember and related pipelines, going well beyond chat transcripts, with ontology support for structured business data typing. Missing for 10: independent hands-on verification of ingestion across formats beyond docs, and no concrete example of JSON-specific ingestion walkthrough.
- [claimed-docs] “Give Cognee text, files, or URLs. It ingests, chunks, extracts entities, and builds the knowledge graph for you in one call.”
- [claimed-docs] “The `.remember` operation is the main ingestion entry point in Cognee v1.0. It stores information in memory with a single API call.”
- [claimed-docs] “Connect Slack, GitHub, Linear to Cognee and help agents recall what your company knows.”
- [claimed-docs] “Data source integrations: Slack, Notion, Linear, Google Drive”
- [claimed-docs] “Connect a GitHub organization and index every covered repository into the code graph.”
- [claimed-docs] “Install Cognee as a Linear agent that answers @mentions and delegated issues from memory, and index the workspace's issues.”
- [claimed-docs] “An ontology is an optional RDF/OWL file you can provide to Cognee. It acts as a reference vocabulary, making sure that entity types...are li…”
developerStore images, PDFs, or other files as memory inputs and recall information from them later
weight 1 · round to CogneeLettanone0/10Letta's documented memory system (MemFS, memory blocks, /remember, /init) is explicitly text/Markdown-file based, and 'image attachments' appear only in a demo chat app's UI feature list, not as a supported memory-recall input type for PDFs or images. No evidence shows agents can ingest images or PDFs into memory and recall facts from them later.
- [claimed-docs] “Pass memory for full control over the agent’s starting memory. Each entry becomes a Markdown file in the agent’s memory repository”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the [MemFS Search mod]”
- [claimed-docs] “For keyword search and optional semantic or hybrid search, install the MemFS Search mod”
- [claimed-docs] “Use this demo when you want to study a mobile interface with conversation history, streaming, tools, approvals, interruption, queued message…”
Docs confirm ingestion of 'text, files, or URLs' via a single call (docs-16) and that `.remember`/`.recall` handle storage and retrieval of that content later (docs-1, docs-37), which covers the general 'files as memory inputs' claim, but no evidence explicitly confirms image or PDF parsing/support specifically, nor any hands-on example of recalling from a PDF/image. missing for 10: explicit documentation or example of PDF/image ingestion, independent verification that non-text file types are correctly parsed and recalled.
- [claimed-docs] “Give Cognee text, files, or URLs. It ingests, chunks, extracts entities, and builds the knowledge graph for you in one call.”
- [claimed-docs] “The `.remember` operation is the main ingestion entry point in Cognee v1.0. It stores information in memory with a single API call.”
- [claimed-docs] “The `.recall` operation is the main retrieval entry point in Cognee v1.0. It searches memory using the best available source for the request…”
- [claimed-docs] “Store data as permanent graph memory or fast session memory in one call.”
Tenancy permissions — stories about tenancy permissions in this arenaTenancy permissions
Stories about tenancy permissions in this arena
Governance
platform-engineerGovern who and what can read or write memory with roles, policies, or access-control lists, and audit that access
weight 2 · round to CogneeLetta's pricing docs mention you can 'share agents across your team (and set permissions for access)' for organizational use, implying some access control exists, but there is no documentation of roles, granular ACLs, or an audit log/trail for memory reads/writes. Missing for 10: documented role/policy definitions for memory access, explicit read/write ACLs on memory blocks, and any audit logging or access history feature.
- [claimed-docs] “You can share agents across your team (and set permissions for access) to create custom agents for your organization”
Cognee's multi-user mode provides dataset-scoped permissions and per-dataset storage for access isolation between users/orgs, which is a form of access control, but the docs give no detail on granular roles, policy definitions, or read/write ACL granularity, and there is no mention of audit logging or access history. missing for 10: role/policy definition mechanics, granular read/write ACLs, audit-log/trail evidence, independent corroboration of the permissions system in practice.
- [claimed-docs] “This system provides data isolation and access control through dataset-scoped permissions and per-dataset storage, enabling multiple users o…”
- [claimed-docs] “provides data isolation and access control through dataset-scoped permissions and per-dataset storage, enabling multiple users or organizati…”
Isolation
developerScope memories per user, agent, or application so one tenant's memories never leak into another's retrieval
weight 3 · round to CogneeLetta's core model is per-agent stateful memory (each agent has its own memory blocks/files, docs-42, docs-48), and cross-agent sharing is opt-in via explicit 'shared-memory' repos (docs-8, docs-21, docs-29) rather than automatic leakage, plus team/org permission controls exist (docs-87: 'share agents across your team and set permissions for access'). However there is no documentation of explicit multi-tenant isolation guarantees (per-user/per-application namespacing, access-control enforcement details, or audit of leakage prevention) beyond these general mechanisms. Missing for 10: explicit tenant/user isolation model, documented ACL/RBAC enforcement for memory retrieval, and any independent verification that scoping prevents cross-tenant leakage.
- [claimed-docs] “Create a stateful agent with `client.createAgent()`. It returns the agent's ID as a string, which you use to open sessions and manage the ag…”
- [claimed-docs] “`persona` and `human` are conveniences that set the agent's persona and human memory”
- [claimed-docs] “letta shared-memory create --name team-memory”
- [claimed-docs] “Shared memory gives multiple agents access to the same files and working context. Each shared memory repository is a Git repository hosted i…”
- [claimed-docs] “Shared memory gives multiple agents access to the same files and working context.”
- [claimed-docs] “You can share agents across your team (and set permissions for access) to create custom agents for your organization”
Cognee's docs describe a dedicated multi-user permissions system with dataset-scoped storage and access control, explicitly enabling isolation so multiple users/organizations share one instance without data leakage, and sessions are scoped per (user_id, session_id). This covers user-level tenancy well but doesn't explicitly document agent- or application-level scoping constructs, and there's no independent/hands-on test confirming isolation actually holds under load. Missing for 10: explicit agent/application-scoped isolation docs, independent verification of no cross-tenant leakage, and any audit/pen-test evidence.
- [claimed-docs] “This system provides data isolation and access control through dataset-scoped permissions and per-dataset storage, enabling multiple users o…”
- [claimed-docs] “provides data isolation and access control through dataset-scoped permissions and per-dataset storage, enabling multiple users or organizati…”
- [claimed-docs] “A session is Cognee's short-term memory for a specific user. It is identified by `(user_id, session_id)` and stores an ordered list of recen…”
- [claimed-docs] “cognee.remember(data, session_id="my_session") — writes content directly into the session cache for fast retrieval.”
Sharing
developerShare selected memory across multiple agents or users (team or group memory) while keeping private memory private
weight 1 · round to LettaLetta ships a dedicated shared-memory feature (`letta shared-memory create`, Git-backed shared repositories giving multiple agents common context) alongside per-agent private memory blocks, and pricing docs explicitly mention team-level agent sharing with configurable permissions. This directly matches sharing selected memory across agents/users while keeping other memory private. Missing for 10: independent/hands-on corroboration of the privacy boundary enforcement and finer-grained detail on how access permissions are scoped per user vs team.
- [claimed-docs] “letta shared-memory create --name team-memory”
- [claimed-docs] “Shared memory gives multiple agents access to the same files and working context. Each shared memory repository is a Git repository hosted i…”
- [claimed-docs] “Shared memory gives multiple agents access to the same files and working context.”
- [claimed-docs] “You can share agents across your team (and set permissions for access) to create custom agents for your organization”
Cognee's multi-user mode explicitly provides dataset-scoped permissions and per-dataset storage so multiple users/orgs can share one instance while keeping data isolated, which maps directly to team vs private memory separation (cognee-docs-9/25). However, the docs describe isolation/access-control mechanics rather than a concrete worked example of selectively sharing one dataset across multiple agents while another stays private, and there's no independent/hands-on confirmation of this permission model in practice. Missing for 10: a documented example of cross-agent shared dataset access alongside private datasets, and independent verification of the permission system's real-world behavior.
- [claimed-docs] “This system provides data isolation and access control through dataset-scoped permissions and per-dataset storage, enabling multiple users o…”
- [claimed-docs] “provides data isolation and access control through dataset-scoped permissions and per-dataset storage, enabling multiple users or organizati…”
Not comparable on these axes
ai-native userConnect an agent via an official MCP server
weight 3 · not comparableLettan/aLetta is itself an agent/coding-assistant platform (Letta Code, stateful agents, Agent SDK) — the 'agent as MCP client that connects to MCP servers' role documented in letta-docs-61/76 and letta-comm-3 is the client side, not the product exposing an official MCP server for other agents to connect to. No evidence shows Letta itself running as an MCP server, so this axis is out of category for an agent-type product.
- [claimed-docs] “The SDK supports local stdio processes, Streamable HTTP, and legacy SSE”
- [claimed-docs] “MCP tools are discovered from servers supplied through `mcpServers` and proxied by the SDK host to the MCP server.”
- [community] “Charles from Letta on MCP: 'We're working on it... making Letta agents an MCP client, so that you can easily connect to MCP servers as tools…”
Cognee ships an official MCP server (cognee-mcp) documented as bringing persistent AI memory via MCP, connecting to Claude, Cursor, Cline, Continue, and Codex, confirmed by both docs and an independent probe. Missing for 10: independent/hands-on user reports validating the MCP server's real-world reliability beyond vendor docs.
- [claimed-docs] “Connect Cognee to MCP-compatible AI tools like Claude, Cursor, and Cline.”
- [claimed-docs] “Cognee MCP brings persistent AI memory to your workflow through the Model Context Protocol.”
- [claimed-docs] “You access them through MCP-compatible AI assistants like Cursor, Claude Desktop, Continue, Cline, and Codex.”
- [probe] “official MCP server documented at https://docs.cognee.ai/cognee-mcp/mcp-overview”
ai-native userVersion, review, and roll back my automations
weight 1 · not comparableLetta offers conversation branching via /fork (create alternate paths without altering the original thread) and stores shared memory as Git repositories, implying underlying version history, plus /doctor for auditing memory drift — but there is no documented explicit 'rollback' or 'revert to previous version' command for agents/automations themselves, nor any review/diff UI for automation history. Missing for 10: an explicit versioning/rollback command for agent automations, a diff/review interface for past automation states, and independent confirmation that forked/git-backed memory can be restored to prior versions.
- [claimed-docs] “Use /fork to branch the current conversation, including its in-context history.”
- [claimed-docs] “Use /fork to branch the current conversation, including its in-context history. The new conversation can take a different direction without …”
- [claimed-docs] “Use `/fork` to branch the current conversation, including its in-context history.”
- [claimed-docs] “Shared memory gives multiple agents access to the same files and working context. Each shared memory repository is a Git repository hosted i…”
- [claimed-docs] “Shared memory gives multiple agents access to the same files and working context.”
- [claimed-docs] “If the memory hierarchy has drifted or grown too large, run /doctor to audit placement, duplication, and system-prompt token usage.”