Head to head · Agent harnesses · October 2026 research run

Agent Zero vs Letta

Letta scores 59.7 (C) on agent readiness against Agent Zero's 46 (D), and leads in 4 of 7 scored categories. Agent Zero leads on security & auth and transparency & trust. Both do agent harnesses.

Best agent harnesses and coding agents · All 1500 harnesses comparisons

Best memory layers for AI agents · All 353 memory comparisons

Which one, for what

Agent Zero D

Best for A technical owner who wants an agent with its own Linux machine, reachable from Telegram, WhatsApp or email, with scheduled tasks and editable memory.

Ahead on

  • Security & auth, 54 against 35
  • Transparency & trust, 64 against 55

Also in its favour

  • No key needed to call it

Watch for

No approval step before shell commands, file changes or outgoing messages. Tool Access defaults to allow

Letta C

Best for Long-lived coding agents and assistants that keep memory and identity across sessions and machines.

Ahead on

  • Schema & documentation, 70 against 64
  • Agent ergonomics, 67 against 62
  • Maintenance & community, 85 against 75

Also in its favour

  • Runs on your own machine
  • No incidents deducted, where Agent Zero loses 15 points for them

Watch for

The default permission mode is unrestricted, the renamed bypassPermissions, so tool calls aren't confirmed unless the user picks another mode

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Security & auth Agent Zero +19

Agent Zero 54

Harness reading of the framework checklist, the one the Goose calibration dossier uses. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt-injection posture, 15 for audit and 20 for the security programme. No usage telemetry was found in the source. An update check, on by default, posts the version and a 20-character SHA-256 hash of a random per-install id to api.agent-zero.ai. The Update Checker settings page says only that ID and the version are sent and has an off switch. Something still leaves the machine by default, so the partial is kept (22). The agent works inside a Docker container built on Kali Linux and runs as root there. Tool Access can block tools by project or profile and defaults to allow, host access through the A0 CLI is scoped by read, write and execute permissions, and no approval step was found before a shell command, a file deletion or an outgoing message. The web interface has no login until a username is set (10). Infection Check audits the agent's reasoning with a second model before each tool call and ships disabled. Scanners check plugins, skills and MCP servers before install. The channel allow-lists accept every sender when empty, and the email filter matches the claimed From address only, which the plugin README states (7). Chat logs, visible tool steps and Time Travel snapshots, with no per-call audit log. Per-process log files were removed in v2.5 (9). No SECURITY.md on 4 November, security.txt answered 404 on 12 October, and none of the eight CVEs published from 17 March to 22 October 2026 came from the vendor (VulDB, VulnCheck, MITRE and CISA assigned them). A security-review ledger in the repository records two findings, and the v2.12 notes name both fixes (6, a partial kept).

Letta 35

Harness reading of the framework checklist, as for the other harnesses. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for injection posture, 15 for audit and 20 for the security programme. Letta Cloud is the default backend, so agent state and conversations go to Letta's servers, and telemetry is on by default (10 of 30). The default permission mode is unrestricted; standard, acceptEdits and strict are opt-in, and cloud sandboxes exist for remote work (4 of 20). No prompt-injection guidance found for fetched pages or channel messages (5 of 15). Conversation search and git history of memory give an operator a record of what the agent saw and changed (10 of 15). SECURITY.md routes reports to support@letta.com and scopes out the retired server; no security.txt, bounty or certification found (6 of 20). Total 35.

Maintenance & community Letta +10

Agent Zero 75

v2.15 was tagged on 1 November 2026, 3 days before this check (30). Seven releases from 6 August, v2.9 on 12 August to v2.15, read from the clone's tags (20). Of the 40 newest open items read on 12 October, 16 are issues and 14 of those have no comment. Three security reports filed as issues were closed as completed, one in five days and two after three months. GitHub's issue pages weren't read on 4 November, so this is per the 12 October check (10 of 25). The Docker image, the desktop Launcher, the install scripts and the A0 CLI connector come from the same organisation, and the v2.14 notes point the README's Launcher links to v1.9 (10 of 15). A Docker publish workflow builds images from tags, and the v2.14 notes raise dependency security floors for aiohttp, anyio, urllib3, filelock, fsspec and multidict. No public test CI (5 of 10). 30 + 20 + 10 + 10 + 5 = 75.

Letta 85

v0.34.42 on 6 November 2026 (30). Dozens of releases in 90 days (20). Pull requests are merged daily; recent issues from users have few replies (15 of 25). npm and PyPI packages and the Agent SDK track the releases (12 of 15). Lock files, CI and nightly smoke tests (8 of 10). Total 85.

Transparency & trust Agent Zero +9

Agent Zero 64

MIT, copyright Agent Zero, s.r.o. (30). No privacy policy for the software was found. The site's cookie notice covers the website, and its terms (14 May 2026) cover the community platform. The docs say where data lives (chats, memory, secrets and settings under /a0/usr) and warn that model providers see what is sent to them only in general terms, with no retention statement (8 of 30). Release notes list breaking changes and removals with the release date, and one deprecated alias is named. No deprecation policy or notice period was found (8 of 20, a partial kept). No usage telemetry was found in the source. The update check is described on its settings page, which says it sends only a randomised, hashed install ID and the version number, and the same page turns it off. The ID is a hash of a random per-install token, a pseudonym under this run's reading, so the statement holds (20). 30 + 8 + 8 + 20 = 66.

Letta 55

Apache-2.0 (30). The privacy policy has no date, no legal entity and no retention periods, and says hosted message data may train future models (8 of 30). The README and docs mark AgentFile, the Electron app and the V1 server as deprecated or retired, without dated notice periods (12 of 20). Telemetry is described in the privacy policy only as basic and opt-out when supported; the LETTA_CODE_TELEM=0 switch appears only in the source (5 of 20). Total 55.

Schema & documentation Letta +6

Agent Zero 64

Harness reading of the lines, as the Goose calibration dossier does. No OpenAPI file. The connectivity page lists five external endpoints and the X-API-KEY header, then sends readers to the source or DeepWiki for request and response details. Each API handler and tool has a .dox.md contract file in the repository, and the MCP client JSON shape is documented (10 of 25). llms.txt at www.agent-zero.ai, and AGENTS.md contract files across the repository (10). Guides say which path to use for a need, with tables that separate the browser, the host connector, MCP and A2A (14 of 20). The v2.12 notes say 15 bundled tools gained argument descriptions in non-strict schemas, and plugin settings are typed YAML with commented examples (8 of 15). Guides carry worked examples and a troubleshooting page, with no documented error responses for the external API (9 of 15). Dated notes on every GitHub release and a release article for each version on the site, with no version prefix on API routes (13 of 15).

Letta 70

Harness reading. docs.letta.com serves llms.txt and a Markdown version of every page, with an applies_to block saying which backend and interface each page covers (10). TypeScript types for the Agent SDK and a documented App Server WebSocket protocol, but no JSON Schema or OpenAPI for the harness (15 of 25). Pages say when to use local or cloud backends, subagents and channels (14 of 20). Permission modes and options are typed in the SDK (12 of 15). Example applications and a remote client reference (11 of 15). Releases most days but no changelog file (8 of 15). Total 70.

Agent ergonomics Letta +5

Agent Zero 62

Harness reading, scored on what a person or program driving it must supply. Skills load on demand, blocked tools are removed from the prompt, chats can be compacted, and the v2.12 notes report Codex input falling from about 16.4K to 11.3K tokens, a vendor figure (18 of 25). An MCP tool timeout of 120 seconds, a limit of five consecutive unusable responses and context-window handling are set by default. No turn or spend limit was found in the reviewed docs (11 of 20). Other programs reach it through POST /api_message, an optional MCP server, A2A and an ACP bridge, with request and response shapes left to the source (11 of 20). An error-retry plugin, saved chats, a message queue, backups and Time Travel snapshots with diff and revert (14 of 20). One Docker command starts it and a wizard sets the model, but there is no SDK and the default has no login (8 of 15).

Letta 67

Harness reading. Toolsets switch with /model, skills load per agent, and subagents run in the background (18 of 25). Context is managed through memory blocks, reflection and dreaming (12 of 20). letta -p --output-format json for scripted runs and an App Server for programmatic control (12 of 20). Conversations resume by agent and conversation id, and memory is git-tracked so changes can be reverted (15 of 20). Runs with no account on the local backend, with one SDK language, TypeScript (10 of 15). Total 67.

Score by category

CategoryWeight this runAgent ZeroLettaEdge
Reliability16%205758Letta +1
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.26470Letta +6
Agent ergonomics13%16.26267Letta +5
Security & auth14%17.55435Agent Zero +19
Payments & pricing10%12.56060even
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87585Letta +10
Transparency & trust7%8.86455Agent Zero +9
Negative events≤15-150
TotalD 46/100C 59.7/100

Facts side by side

FactAgent ZeroLetta
KindAgent harnessAgent harness
VendorAgent Zero, s.r.o.Letta
Hosted endpointno (local only)no (local only)
Transportsstdio
AuthNoneOAuth or key
PricingFreeFreemium
x402nono
LicenceMITApache-2.0
Read-only variant documentednono
llms.txtyesyes
Last release2026-11-012026-11-06
Terms last updatedno document linkedno date given
Privacy policy last updatedno document linkedno date given
Customer content may train modelsnot read yetnot found in the text
Terms restrict automated accessnot read yetnot found in the text
Terms restrict benchmarkingnot read yetnot found in the text
Terms or service can change without noticenot read yetnot found in the text
Arbitration or class-action waivernot read yetyes
Popularity19k stars3.8k stars, 86k npm/wk, 2.2k PyPI/wk

How the scores have moved

Verdicts

Agent Zero

Self-hosted under the MIT licence, with seven releases from 12 August to 1 November 2026 and breaking changes listed in minor-release notes. The agent runs shell commands in its container with no approval step, the web interface has no login by default, and eight CVEs from the past year were published by third parties with no vendor advisory.

Letta

Letta's open-source harness gives agents git-tracked memory blocks, skills, subagents and headless JSON runs, with a $0 plan and public per-agent API prices. It starts in the unrestricted permission mode, defaults to Letta Cloud, sends usage telemetry unless LETTA_CODE_TELEM=0 is set, and the V1 API server the comparisons describe is retired.

Before you call either

Agent Zero

  1. Set a UI login and password in Settings before publishing the port or opening a tunnel. The default has none
  2. Fill allowed_users, allowed_numbers or sender_whitelist before enabling a channel. An empty list accepts every sender
  3. Enable the Infection Check plugin when the agent reads mail, web pages or MCP results. It ships disabled
  4. Run v2.12 or later. It fixes a Telegram webhook authentication bypass and a WhatsApp media path traversal
  5. Call POST /api_message with the X-API-KEY header. The token changes when the UI login or password changes

Letta

  1. Start headless runs with an explicit permission mode such as standard or strict; the default auto-approves tools
  2. Pass --backend local for work that must stay on the machine, since Letta Cloud is the default
  3. Set LETTA_CODE_TELEM=0 in unattended runs if usage events must not be sent
  4. Use letta -p --output-format json for scripted runs and parse the JSON, not the terminal output
  5. Don't plan on the retired V1 REST server or .af AgentFile import; both are gone

Questions

Which is better for AI agents, Agent Zero or Letta?

Letta scores 59.7 (C) on agent readiness against Agent Zero's 46 (D), and leads in 4 of 7 scored categories. Agent Zero leads on security & auth and transparency & trust.

Are Agent Zero and Letta open source?

Yes. Agent Zero is open source (MIT). Letta is open source (Apache-2.0).

Other comparisons with Agent Zero or Letta

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.