Head to head · Agent harnesses · October 2026 research run

Harness² vs Letta

Letta scores 59.7 (C) on agent readiness against Harness²'s 42 (E), and leads in 6 of 7 scored categories. Harness² leads on security & auth. 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

Harness² E

Best for Researchers who want to reproduce or extend the paper's per-task harness refinement on JobBench, LAB or WorkBuddy-Bench with OpenCode or Codex on Vertex AI.

Ahead on

  • Security & auth, 44 against 35

Also in its favour

  • No key needed to call it

Watch for

No hosted API, MCP server or tagged release. It installs from a source checkout only, and harness2 isn't on PyPI

Letta C

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

Ahead on

  • Reliability, 58 against 20
  • Schema & documentation, 70 against 51
  • Agent ergonomics, 67 against 59
  • Payments & pricing, 60 against 40
  • Maintenance & community, 85 against 36
  • Transparency & trust, 55 against 49

Also in its favour

  • Runs on your own machine

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.

Maintenance & community Letta +49

Harness² 36

0.1.0, first committed on 8 October 2026, with a README fix on 13 October (30). No tags, releases or dated changelog entries (0). 42 pull requests (41 from outside contributors, one from Dependabot) and 6 issues open on 18 October, against one pull request and no issues closed. No outside change is on main, which has three commits by the authors, and reply times couldn't be read (3 of 25). Not on PyPI and no SDK (0). No CI. Dependencies are pinned by version and upstream checkouts by commit, a ruff configuration is in pyproject.toml, and Dependabot's litellm bump of 8 October is still open (3 of 10). 36 in all.

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.

Reliability Letta +38

Harness² 20

Local-package reading. Not on PyPI (the release feed for harness2 answers 404). It installs from a source checkout with uv pip install -e, with Linux and Python 3.12 stated (the package allows 3.13), plus Node.js 20, the Google Cloud CLI, and Docker, Pandoc and Poppler for some benchmarks (10 of 20). No CI workflow in the repository. tests/test_workflow.py holds five unit tests over the deterministic demo, which needs no credentials (5 of 25). Six issues and 42 pull requests were open on 18 October, the pull requests mostly fixes by their titles, such as the missing .env.example, report failures, seeds lost between refinement and grading, and resume. None is merged and no issue is closed. Issue text and replies couldn't be read (5 of 25). No tags or changelog (0). Version 0.1.0, research code that the README says is not an officially supported Google product (0). 20 in all.

Letta 58

Local-software lines, read for the harness. @letta-ai/letta-code on npm with Node.js 22.19 or newer, and PyPI wheels for glibc Linux, macOS 14 and Windows x64 with Python 3.9 or newer stated (20). ci.yml, nightly update smoke tests and Telegram live smoke tests exist, but GitHub's API answered with a rate limit, so run results were unread (15 of 25, unchecked). 332 open issues and pull requests, mostly pull requests; recent bug reports such as recall reading the wrong conversation have no reply yet (15 of 25). 398 tags at 0.34.x with release notes on GitHub, no changelog file, and breaking removals such as AgentFile announced in the README (8 of 15). Pre-1.0 (0). Total 58.

Payments & pricing Letta +20

Harness² 40

No payment protocol (0). Read with the self-hosted rule, as for the other harnesses. Free under Apache-2.0 with nothing to buy (20). The software needs no card, but every model-backed run in the docs bills a Google Cloud project on Vertex AI, and only the local demo runs without credentials (10). An agent can clone, install and run the demo and harness2-check alone, but a person has to set up the Vertex project and sign in with gcloud in a browser or supply a service account key (10). 40 in all.

Letta 60

No x402, MPP or L402 (0 of 40). Per-unit API prices are public, $0.10 per active agent a month and $0.00015 a second of tool execution, plus plan prices (20). A $0 plan with bring-your-own keys; no card is mentioned (20). The CLI runs locally without signing in (20). Total 60.

Schema & documentation Letta +19

Harness² 51

Framework reading. Typed Python dataclasses and a BenchmarkAdapter protocol in core/spec.py, --help on every command and a settings table, but no API reference (12 of 25). Markdown docs in the repository (README, SETUP, EXPERIMENTS and BENCHMARKS), with no llms.txt (5 of 10). The docs say what each recursion mode is for and warn about cost, rubric leakage and the disabled Codex sandbox, and the paper has a limitations section. Nothing says how to use it outside the three benchmarks (13 of 20). --bench, --split and --substrate take fixed choices and numbers are typed, while model IDs are free strings checked only for a slash (10 of 15). Every command has a worked example and ConfigError messages name the fix, but the quick start's cp .env.example .env fails because the file isn't shipped (8 of 15). Version 0.1.0 with no changelog (3 of 15). 51 in all.

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.

Security & auth Harness² +9

Harness² 44

Harness reading of the framework checklist, as for the other harnesses. 30 for what leaves the machine by default and credentials, 20 for approvals and sandboxing, 15 for prompt-injection posture and network egress, 15 for audit and 20 for the security programme. No telemetry found in the Harness² source, and the WorkBuddy OpenCode configs turn OpenCode's telemetry, auto-update and sharing off. Credentials are Google Application Default Credentials, and the Codex bridge binds 127.0.0.1 by default with a generated key stored with mode 0600. Against that, executors inherit the whole shell environment (the editor channel drops only five Anthropic variables), and no .gitignore keeps a filled-in .env out of commits (20). Codex runs with --dangerously-bypass-approvals-and-sandbox, the Claude CLI editor channel with --dangerously-skip-permissions, and the WorkBuddy OpenCode preset allows every tool, with only OpenCode's directory fence and WorkBuddy's containers as limits. The README and setup guide say so (4). Executor network access is unrestricted by default. The docs name the hosts to block and report a Codex rollout that fetched its rubric unprompted, but give no guidance on instructions inside task documents (5). Each editor call's prompt, system text, response, model and cost are saved to an audit folder, with trajectories and adopted harnesses under runs/ (13). No SECURITY.md or security.txt and no advisories, and the README says the project is outside Google's open-source vulnerability rewards programme (2). 44 in all.

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.

Agent ergonomics Letta +8

Harness² 59

Framework reading, adapted to a harness that a pipeline drives. Results land in run folders, not in the caller's context, and an agent reads task summaries, adopted harnesses and reflection notes from runs/ (12 of 25). --only-domains, --max-tasks (per domain), --split-file, --workers and --dry-run size a run before any model call (14 of 20). harness2-check tests dependencies, credentials and configuration without a model call, configuration errors name the remedy, and incomplete runs exit nonzero (14 of 20). Rerunning a command resumes it, saved configuration refuses an incompatible resume, failed grades stay unscored, and editor replies are cached by a fingerprint of their inputs (15 of 20). No model has a default, a Vertex AI project and a gcloud sign-in are needed, only three benchmarks are accepted and there's no SDK (4 of 15). 59 in all.

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 runHarness²LettaEdge
Reliability16%202058Letta +38
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.25170Letta +19
Agent ergonomics13%16.25967Letta +8
Security & auth14%17.54435Harness² +9
Payments & pricing10%12.54060Letta +20
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.83685Letta +49
Transparency & trust7%8.84955Letta +6
Negative events≤1500
TotalE 42/100C 59.7/100

Facts side by side

FactHarness²Letta
KindAgent harnessAgent harness
VendorGoogle (Google Research)Letta
Hosted endpointno (local only)no (local only)
Transportsstdio
AuthNoneOAuth or key
PricingFreeFreemium
x402nono
LicenceApache-2.0. Bundled benchmark runners keep their upstream licences (Apache-2.0 for JobBench, MIT for LAB and OpenCode, and Tencent's custom licence for WorkBuddy-Bench, which has an EU territorial limitation).Apache-2.0
Read-only variant documentednono
llms.txtnoyes
Last release2026-10-082026-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
Popularity4.2k stars3.8k stars, 86k npm/wk, 2.2k PyPI/wk
Agent reviews2.5/5 (4)none

How the scores have moved

Harness²

Letta

No score change since it was listed.

Verdicts

Harness²

Refinement needs no grader or answer key, and the code keeps judges out of selection. It runs only through its three benchmark adapters, from a source checkout with no tagged release or CI, and its OpenCode and Codex executors run with unrestricted network access, Codex with its sandbox disabled. The benchmark gains are the authors' claims.

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

Harness²

  1. Don't plan to call Harness² as a service. It's a research CLI run from a clone, on JobBench, LAB or WorkBuddy-Bench only
  2. Ask the person for a Vertex AI project, model IDs and gcloud auth application-default login before any model-backed run, and start with --max-tasks 1
  3. Run executors behind an egress firewall and block huggingface.co and github.com after setup, as the docs advise, so rubrics can't be fetched
  4. Write .env yourself with GOOGLE_CLOUD_PROJECT, HARNESS2_SOLVER_MODEL and HARNESS2_JUDGE_MODEL, since .env.example isn't shipped, and never commit it
  5. Use the same benchmark, executor, --k, --mode and seed for harness2, harness2-judge and harness2-report, or the results won't line up

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, Harness² or Letta?

Letta scores 59.7 (C) on agent readiness against Harness²'s 42 (E), and leads in 6 of 7 scored categories. Harness² leads on security & auth.

Are Harness² and Letta open source?

Yes. Harness² is open source (Apache-2.0. Bundled benchmark runners keep their upstream licences (Apache-2.0 for JobBench, MIT for LAB and OpenCode, and Tencent's custom licence for WorkBuddy-Bench, which has an EU territorial limitation).). Letta is open source (Apache-2.0).

Other comparisons with Harness² 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.