Published 2026-09-21 · Tested 2026-08-19

Fused

F

Fused received 8 PASS votes and passed 2 of five agent surface checks. The clearest finding came from the find the exact limits task.

Panel: GPT 5.6 Sol, Opus 5, DeepSeek v4F Battery: v1 Read as markdown (opens in a new tab)

Three AI models, GPT 5.6 Sol, Claude Opus 5, and DeepSeek v4 Flash, each read Fused’s public documentation independently and attempted five first-hour developer jobs: run the first UDF, find the exact limits, recover a failed UDF job, authenticate the local SDK, use the Python SDK.

No accounts, API calls, or code execution were used. Every verdict came from public pages and every published quotation passed a live verification check. Preflight substitutions: T3: A failed parallel UDF job replaced HTTP 429 because it is the documented common recovery path. T4: Local SDK authentication replaced webhooks because the public docs expose no general Fused product-webhook interface.

Freshness

How rechecks work
Tested
Quotes verified
Surface rechecked

No change since the test.

5 of 5 quoted passages still appear on the live pages.

Fused Docusaurus 3.9.2 · published
F

52.5% · 42/80 · AI Agent Readiness Score · reading 30 pts · surface 50 pts

llms.txt PASS
llms-full.txt PASS
markdown mirror FAIL
MCP server FAIL
docs AI FAIL
Task GPT 5.6 SolOpus 5DeepSeek v4F Consensus
Run the first UDF PARTIALPASSPASS PASS
Find the exact limits FAILPARTIALPARTIAL PARTIAL
Recover a failed UDF job PARTIALPASSPARTIAL PARTIAL
Authenticate the local SDK PASSPASSPASS PASS
Use the Python SDK PASSPARTIALPASS PASS

docs platform: Docusaurus 3.9.2 (unscored) · verified 2026-08-19

What to fix first

These 5 fixes could add up to 36 points to the AI Agent Readiness Score. The list ranks each fix by the points it would add. How the ranking works

  1. 1
    +10 points Markdown mirror check failed

    Found: The live page's .md URL returned HTTP 404, and content negotiation returned HTML.

    Fix: Serve every docs page as Markdown at its URL plus .md, and return the same Markdown for Accept: text/markdown.

    Evidence: docs.fused.io/guide/guide-overview.md (opens in a new tab)

  2. 2
    +10 points MCP server check failed

    Found: Initialize returned HTTP 405 from the static origin, not a valid MCP response.

    Fix: Run a public MCP server for the docs that answers a JSON-RPC initialize call and offers a docs search tool.

    Evidence: docs.fused.io/mcp (opens in a new tab)

  3. 3
    +10 points Docs AI check failed

    Found: The live docs expose standard search but no public assistant control.

    Fix: Add an assistant to the docs site that answers questions from the docs and links to its sources.

  4. 4
    +4 points Find the exact limits PARTIAL

    Found: The realtime page gives ~10GB RAM, the scaling-out page says ~4GB, and the docs give no free-tier credit number.

    Fix: State one realtime RAM ceiling on every page, and give numeric values for free-tier credits and plan quotas.

    Evidence: docs.fused.io/guide/working-with-udfs/udf-best-practices/scaling-out (opens in a new tab)

  5. 5
    +2 points Recover a failed UDF job PARTIAL

    Found: In the panel's reading, the debugging playbook moves from error inspection to pool.retry() with no step that corrects the UDF.

    Fix: Add a debugging playbook example that corrects the failing UDF and then reruns only the failed jobs.

    Evidence: docs.fused.io/guide/working-with-udfs/udf-best-practices/debugging-playbook (opens in a new tab)

What the docs get right

  • Authenticate the local SDK: 3 PASS votes. A single page covers Python 3.10+, pip install "fused[all]", the NotebookCredentials browser flow, the credential file location ~/.fused/credentials, logout, Bearer token retrieval, and a runnable quick test.
  • Run the first UDF: 2 PASS votes. The Workbench path is complete, but a caching page shows udf.fused.io instead of the current canvas-token udf.ai form.
  • 2 of 5 agent surface checks. Present: llms.txt, llms-full.txt. Missing: markdown mirrors, an MCP server, docs AI.

Run the first UDF

PASS

PASS consensus from 2 PASS, 1 PARTIAL.

The Workbench path is complete, but a caching page shows udf.fused.io instead of the current canvas-token udf.ai form. One page carries the whole path from decorator to live URL, and the canvas-token step is stated identically on first-udf-basics, tokens-endpoints, and run-udfs-as-api, giving the concrete call form https://udf.ai/fc_<CANVAS_TOKEN>/my_udf.json. From zero to running UDF to HTTP endpoint: the quickstart gives a complete @fused.udf example, and the 'UDFs as API' page documents the exact URL pattern (https://udf.ai/fc_<CANVAS_TOKEN>/udf_name.json). The only extra hop is learning how to share a canvas to get the token, which is linked.

Find the exact limits

PARTIAL

PARTIAL consensus from 2 PARTIAL, 1 FAIL.

The docs state 120s and ~10GB, but scaling guidance uses ~4GB, and free-tier credits have no numeric quota. Realtime timeout (120s) and parallel ceilings (max_workers default 32, max 1000; worker_concurrency default 1; max_retry default 2) are stated precisely, but the realtime RAM ceiling is given as ~10GB on the realtime and fused-run pages and as ~4GB twice on the scaling-out page, and no plan or account quota carries a number anywhere in the docs. Realtime limits (120s, ~10GB) and parallel max_workers default (32) are documented with exact values. But free tier 'daily compute credits' is unspecified, dedicated-instance specs are absent, and plan quotas link to an external pricing page rather than being documented inline.

Recover a failed UDF job

PARTIAL

PARTIAL consensus from 1 PASS, 2 PARTIAL.

The playbook documents status, errors, and failed-only retry, but it never shows a code correction before retrying. A dedicated Debugging playbook page walks the entire recovery loop against a deliberately flaky example UDF: start small, pool.status(), any_failed(), first_error(), errors(), times(), results(return_exceptions=True), then pool.retry() followed by pool.wait(). Inspecting errors is comprehensively documented (pool.status(), first_error(), errors()). The max_retry parameter enables automatic retries. But a manual 'retry only the failed subset' pattern is not explicitly shown in the docs.

Authenticate the local SDK

PASS

PASS consensus from 3 PASS.

One page covers Python 3.10+, installation, browser authentication, credential storage, bearer-token retrieval, and a callable UDF test. A single page covers Python 3.10+, pip install "fused[all]", the NotebookCredentials browser flow, the credential file location ~/.fused/credentials, logout, Bearer token retrieval, and a runnable quick test. The full install-authenticate-test cycle is on one page: pip install, NotebookCredentials for browser auth, access_token for programmatic use, and a quick test UDF. Every step is documented with code examples.

Use the Python SDK

PASS

PASS consensus from 2 PASS, 1 PARTIAL.

The official SDK's direct-call example matches Workbench's automatic execution and the separate canvas-token HTTP path. The SDK and the minimum example (fused.load("my_udf") then calling the returned object) are unambiguous, but reaching them requires reconciling live and legacy APIs that sit side by side: the API Reference index lists fused.run and fused.submit under UDF Execution, the JobPool class page still attributes pools to the deprecated fused.submit(), the current Writing UDFs page instructs the reader using fused.run, and the FAQ names a run_batch entry point that appears nowhere in the SDK reference. The 'fused' package on PyPI is the SDK. A minimum runnable example appears in the install guide, and the API Reference provides full class/method docs for Udf, JobPool, and all decorators. All pages use the same @fused.udf pattern consistently.

The receipt

If your jobs need more than 120s or ~4GB RAM each, combine parallel execution with dedicated instances:

Realtime timeout (120s) and parallel ceilings (max_workers default 32, max 1000; worker_concurrency default 1; max_retry default 2) are stated precisely, but the realtime RAM ceiling is given as ~10GB on the realtime and fused-run pages and as ~4GB twice on the scaling-out page, and no plan or account quota carries a number anywhere in the docs.

Agent surface notes

Initialize returned HTTP 405 from the static origin, not a valid MCP response.

The live docs expose standard search but no public assistant control.

Show the score

AI Agent Readiness Score 52.5%, grade F

Paste this into a readme:

[![AI Agent Readiness Score 52.5%](https://docsforagents.com/badge/fused.svg)](https://docsforagents.com/reports/fused-docs-ai-agent-readiness/)

Method note

This is a reading test of public documentation, not an execution test. No accounts were created and no API calls were run. The AI Agent Readiness Score counts fifteen reading votes at PASS 2, PARTIAL 1, and FAIL 0, for 30 possible points. Five agent surface checks add 10 points each. The total is 80. Consensus chips show each row majority and do not affect scoring. The panel split on 4 of five tasks. Quotes shown here were re-fetched and confirmed verbatim on 2026-08-19.

Read the full methodology

Put another docs site through the battery.

Nominate a docs site