Droid 1.0 makes programmatic tool calling the default
Droid 1.0 batches tool calls into programs. Factory reports up to 20% better efficiency on Terminal-Bench 4 and a Linear migration task dropping from 3.1M to 61K input tokens.

TL;DR
- Programmatic tool calling is now Droid's default on supported models: Factory says one model request can execute a program containing hundreds of tool calls.
- A 151-issue Linear cleanup used two requests and 61K input tokens; Factory's example compares that with a modeled 36 requests and 3.1M tokens using direct calls.
- Droid outperformed native harnesses in Factory's Terminal-Bench 4 runs, with up to 20% better efficiency, according to the benchmark announcement.
- Harness changes go through cross-model experiments and human review, using the internal process Factory calls Agent Factory.
The Script sandbox runs JavaScript with no file, network, or system access of its own. Factory's CI sweep is the best demo: 5,384 jobs become a five-number summary returned to the model. Its benchmark methodology also contains a speed gotcha: Droid takes 10% longer than Codex on GPT-6.1 Sol.
Script mode
Factory shipped Droid 1.0 on October 29 as an update to its model-independent agent harness: prompts, tools, result handling, and the execution loop. Its Script tool executes model-written JavaScript, with external access mediated through tools.
A program can use one tool's result to determine the next call, while independent calls run concurrently. Loops and validation checks execute deterministically in code.
Factory describes five runtime choices:
- Structured data: Programs receive complete files and typed search results. Raw results stay in variables; only printed output enters the model's context, with a size cap and full results logged for later search.
- Raw literal blocks: File contents, patches, and commands travel without being escaped into JavaScript strings.
- Short edit results: Edits return a summary rather than pasting the modified file back into context.
- Background execution: A program waits up to five minutes before returning its output so far, or can start in the background and return immediately.
- Completion notifications: A dedicated tool checks, waits for, or stops running programs. Completion wakes the model without repeated polling requests.
151 Linear issues
Factory's published comparison models the direct-call baseline at ten tool calls per request. The 36-request, 3.1M-token figure is an estimate; the Script execution used two requests and about 61,000 input tokens.
The Script processed issues in batches of three and compared 15 fields before and after each write. It kept exact counts and stopped at the first unexpected change, completing 312 underlying tool calls to move and verify 151 issues.
5,384 CI jobs
A second example from Factory's sessions inspected desktop CI:
- Scope: 5,384 jobs across 547 runs.
- Execution: 550 tool calls, with batches of 60.
- Model requests: Two, versus an estimated 59 to 187 with direct calls.
- Returned output: A five-number summary, including 41 failed jobs. Less than 0.1% of tool results reached the model's context.
The sweep ran in the background for about eight minutes while the model worked on another task.
Terminal-Bench 4
Factory compared harnesses using the same underlying model in its Terminal-Bench 4 evaluation. Runs took place October 23 to 28, with three trials per task at high reasoning.
Several details qualify the headline results:
- Cost and time: These include only tasks that both harnesses passed in all three trials. Tokens are priced at provider list rates; timing excludes setup and grading.
- Model fallback: Some Opus 5.5 trials blocked by Anthropic's content moderation were rerun on Opus 5.
- Devin scoring: When Devin stalled asking a question on GPT-6.1 Sol, Factory credited a pass if Codex passed that task. This affected accuracy only, averaging 4.7 tasks per trial.
- Latency: Droid was 10% slower than Codex on GPT-6.1 Sol at 12% lower cost. On Opus 5.5, Factory reported 26% less time per passed task than Claude Code and 17% fewer tokens, as documented in LLMs Blog's methodology breakdown.
- Script's contribution: Within Droid, Script mode cut Opus 5.5 cost by 15% compared with direct tool calling. Savings concentrated in the 12.5% of Scripts making six or more tool calls.
Request pipeline
Factory also changed what gets sent to inference and what providers can reuse, according to its harness breakdown:
- Startup: Across the updates described, first-request input fell from 20,887 to 13,055 tokens, a 37% reduction. Droid sends two tool definitions up front instead of 11, loading rarely used tools on demand.
- Tool discovery: Newly discovered MCP and connector tools are appended at the end of the request. Inserting definitions near the beginning previously invalidated the cached conversation prefix.
- Cache reuse: Factory says the typical production request reads 98% of its input from cache, and 98.6% of requests are strictly append-only.
- Recovery: Four minutes of silence on a Factory-managed stream triggers a retry. Failed requests are retried on the provider already holding their cache.
Agent Factory
Factory's internal evaluation loop combines benchmark failures, live error logs, and user-session friction. An automation tracks more than 20 models, beginning evaluations when a model becomes accessible, sometimes as an early-access snapshot.
The development loop has five stages:
- Add a model and check behavioral assertions.
- Evaluate models on the same tasks.
- Have agents inspect traces for recurring failure causes.
- Propose a change with an explicit hypothesis.
- Run a controlled experiment on every affected model, then submit the evidence for an engineer's review and merge.
One experiment exposed the cost of universal defaults. Adding line numbers to every file read stopped GPT-6.1 Sol from rereading files through the shell and cut Opus cost by 22% on one task.
The extra formatting added about two tokens per line, raising cost by 8% on GLM and 32% on Kimi. Factory shipped line numbers as an option the model requests when needed.
Access and supported models
Factory's launch post lists desktop apps for macOS and Windows, plus a terminal UI. Script mode is enabled by default for these models:
- OpenAI: GPT-6.1 Sol, GPT-6.1 Terra, GPT-6 Astra, GPT-6 Sol, GPT-5.6 Sol.
- Anthropic: Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5.
- Kimi: Kimi K3.
The Droid TypeScript SDK, installed with npm install @factory/droid-sdk, exposes the same harness used by Factory's CLI, desktop application, and web platform.
It can start Droid as a Node.js subprocess or connect to an existing daemon. The SDK supports one-shot runs, persistent sessions, streaming, and in-process MCP tools; the host application controls which tools and models Droid can use.