From 985cbb0a05e6a2ba1c1cd7ba341a2b5caeed140f Mon Sep 17 00:00:00 2001 From: Sam Morris Date: Tue, 26 May 2026 16:31:13 +0100 Subject: [PATCH 01/10] docs: add Fireworks AI integration page Adds the Fireworks AI integration page to the docs and registers it under the Integrations group, following the existing openai-cua.mdx format. Companion page for the joint Notte x Fireworks benchmark launched last week. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/src/docs.json | 1 + docs/src/integrations/fireworks.mdx | 82 +++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 docs/src/integrations/fireworks.mdx diff --git a/docs/src/docs.json b/docs/src/docs.json index 5ecf35c86..cc63ba034 100644 --- a/docs/src/docs.json +++ b/docs/src/docs.json @@ -149,6 +149,7 @@ "integrations/steel", "integrations/massive", "integrations/openai-cua", + "integrations/fireworks", "integrations/stagehand", "integrations/openclaw", "features/sessions/cloudflare-web-bot-auth" diff --git a/docs/src/integrations/fireworks.mdx b/docs/src/integrations/fireworks.mdx new file mode 100644 index 000000000..9943948c3 --- /dev/null +++ b/docs/src/integrations/fireworks.mdx @@ -0,0 +1,82 @@ +--- +title: 'Fireworks AI' +description: 'Run Notte browser agents on Fireworks-served open-weight models' +--- +import AgentMdNotice from '/partials/agent-md-notice.mdx'; + + + +## Overview + +Notte agents can drive the browser using any model served by [Fireworks AI](https://fireworks.ai), including Kimi K2.5, GLM-5, and MiniMax M2.5. Notte connects to Fireworks through LiteLLM, so the integration is a single `reasoning_model` string change with no separate provider plumbing. + +A recent joint benchmark, [Agents Don't Fail on Intelligence. They Fail on Execution](https://fireworks.ai/blog/agents-fail-on-execution), ran 720 browser-agent tasks across four LLMs. The three Fireworks-served models held an [Agent Execution Tax](https://notte.cc/blog/agent-execution-tax) of 0 to 1.6%, with consistent tail latency across three distinct MoE architectures. + +## Requirements + +* A Fireworks AI API key ([fireworks.ai](https://fireworks.ai)) +* A Notte API key ([console.notte.cc](https://console.notte.cc)) +* Python 3.11 or later + +## Setup + + + + ```bash + pip install --upgrade notte-sdk + ``` + + + ```bash + export NOTTE_API_KEY="" + export FIREWORKS_API_KEY="" + ``` + + + ```python + from notte_sdk import NotteClient + + notte = NotteClient() + with notte.Session() as session: + agent = notte.Agent( + session=session, + reasoning_model="fireworks_ai/accounts/fireworks/models/kimi-k2p5", + ) + response = agent.run( + task="Go to news.ycombinator.com and return the top three stories." + ) + ``` + + + +## Validated Fireworks models + +The following models were validated in the joint benchmark (180 runs each, 60 WebVoyager tasks × 3 runs): + +| Model | Notes | +|---|---| +| Kimi K2.5 | 0% Agent Execution Tax across 852 calls; lowest token cost per task. Model ID: `fireworks_ai/accounts/fireworks/models/kimi-k2p5` | +| GLM-5 | 0.6% Agent Execution Tax; strong on long-form sites (ArXiv, BBC, Wolfram Alpha). | +| MiniMax M2.5 | 1.6% Agent Execution Tax; highest text-only task success rate in the benchmark. | + +Any Fireworks-served model that supports JSON-mode structured output will work with Notte. For canonical model IDs, see the [Fireworks model catalogue](https://fireworks.ai/models). + +## Reproducing the benchmark + +The benchmark is fully reproducible from the Notte repo: + +```bash +uv run pytest packages/notte-eval/src/notte_eval/webvoyager/test_run.py \ + --task_dir "webvoyager/webvoyager_simple.jsonl" \ + --model "fireworks_ai/accounts/fireworks/models/kimi-k2p5" \ + --n_runs 3 --use_vision false --headless true --max_steps 20 -v +``` + +Full configuration, methodology, and per-model numbers are in the [joint benchmark report](https://fireworks.ai/blog/agents-fail-on-execution). + +## Resources + +* [Joint benchmark: Agents Don't Fail on Intelligence. They Fail on Execution](https://fireworks.ai/blog/agents-fail-on-execution) +* [Agent Execution Tax explainer](https://notte.cc/blog/agent-execution-tax) +* [Fireworks AI](https://fireworks.ai) and the [Fireworks model catalogue](https://fireworks.ai/models) +* [Notte on GitHub](https://github.com/nottelabs/notte) From 40ae2bb7adee666b06b6b4ba436ef82fd2c5a541 Mon Sep 17 00:00:00 2001 From: Sam Morris Date: Wed, 27 May 2026 17:10:22 +0100 Subject: [PATCH 02/10] docs: address review feedback on Fireworks integration page - Swap placeholder benchmark URL to the live Fireworks slug (agent-execution-tax) verified against fireworks.ai/blog. - Add canonical Fireworks model IDs for GLM-5 (glm-5) and MiniMax M2.5 (minimax-m2p5), verified against the Fireworks model catalogue at fireworks.ai/models. Resolves Greptile and CodeRabbit feedback on missing IDs and unresolved placeholder URLs. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/src/integrations/fireworks.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/src/integrations/fireworks.mdx b/docs/src/integrations/fireworks.mdx index 9943948c3..ef07ed919 100644 --- a/docs/src/integrations/fireworks.mdx +++ b/docs/src/integrations/fireworks.mdx @@ -10,7 +10,7 @@ import AgentMdNotice from '/partials/agent-md-notice.mdx'; Notte agents can drive the browser using any model served by [Fireworks AI](https://fireworks.ai), including Kimi K2.5, GLM-5, and MiniMax M2.5. Notte connects to Fireworks through LiteLLM, so the integration is a single `reasoning_model` string change with no separate provider plumbing. -A recent joint benchmark, [Agents Don't Fail on Intelligence. They Fail on Execution](https://fireworks.ai/blog/agents-fail-on-execution), ran 720 browser-agent tasks across four LLMs. The three Fireworks-served models held an [Agent Execution Tax](https://notte.cc/blog/agent-execution-tax) of 0 to 1.6%, with consistent tail latency across three distinct MoE architectures. +A recent joint benchmark, [Agents Don't Fail on Intelligence. They Fail on Execution](https://fireworks.ai/blog/agent-execution-tax), ran 720 browser-agent tasks across four LLMs. The three Fireworks-served models held an [Agent Execution Tax](https://notte.cc/blog/agent-execution-tax) of 0 to 1.6%, with consistent tail latency across three distinct MoE architectures. ## Requirements @@ -56,8 +56,8 @@ The following models were validated in the joint benchmark (180 runs each, 60 We | Model | Notes | |---|---| | Kimi K2.5 | 0% Agent Execution Tax across 852 calls; lowest token cost per task. Model ID: `fireworks_ai/accounts/fireworks/models/kimi-k2p5` | -| GLM-5 | 0.6% Agent Execution Tax; strong on long-form sites (ArXiv, BBC, Wolfram Alpha). | -| MiniMax M2.5 | 1.6% Agent Execution Tax; highest text-only task success rate in the benchmark. | +| GLM-5 | 0.6% Agent Execution Tax; strong on long-form sites (ArXiv, BBC, Wolfram Alpha). Model ID: `fireworks_ai/accounts/fireworks/models/glm-5` | +| MiniMax M2.5 | 1.6% Agent Execution Tax; highest text-only task success rate in the benchmark. Model ID: `fireworks_ai/accounts/fireworks/models/minimax-m2p5` | Any Fireworks-served model that supports JSON-mode structured output will work with Notte. For canonical model IDs, see the [Fireworks model catalogue](https://fireworks.ai/models). @@ -72,11 +72,11 @@ uv run pytest packages/notte-eval/src/notte_eval/webvoyager/test_run.py \ --n_runs 3 --use_vision false --headless true --max_steps 20 -v ``` -Full configuration, methodology, and per-model numbers are in the [joint benchmark report](https://fireworks.ai/blog/agents-fail-on-execution). +Full configuration, methodology, and per-model numbers are in the [joint benchmark report](https://fireworks.ai/blog/agent-execution-tax). ## Resources -* [Joint benchmark: Agents Don't Fail on Intelligence. They Fail on Execution](https://fireworks.ai/blog/agents-fail-on-execution) +* [Joint benchmark: Agents Don't Fail on Intelligence. They Fail on Execution](https://fireworks.ai/blog/agent-execution-tax) * [Agent Execution Tax explainer](https://notte.cc/blog/agent-execution-tax) * [Fireworks AI](https://fireworks.ai) and the [Fireworks model catalogue](https://fireworks.ai/models) * [Notte on GitHub](https://github.com/nottelabs/notte) From f1b2363e172ab38fa90b3b2853118b21653a17df Mon Sep 17 00:00:00 2001 From: Sam Morris Date: Wed, 27 May 2026 18:27:14 +0100 Subject: [PATCH 03/10] docs: add fireworks.mdx to inline-snippet exception list The Fireworks integration page has inline Python examples for the same reason kernel.mdx does (integration-specific code that isn't worth extracting into a tester snippet). Add it to the same exception set so test_no_snippets_outside_folder passes. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/src/tests/test_snippets.py | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/src/tests/test_snippets.py b/docs/src/tests/test_snippets.py index f5b14e2bc..222c5b46e 100644 --- a/docs/src/tests/test_snippets.py +++ b/docs/src/tests/test_snippets.py @@ -88,6 +88,7 @@ def test_no_snippets_outside_folder(): "captcha-solving.mdx", # CodeGroup wrappers for multi-language "stealth-mode.mdx", # CodeGroup wrappers for multi-language "kernel.mdx", # Integration-specific examples + "fireworks.mdx", # Integration-specific examples "schedules.mdx", # Comment-only cron examples "management.mdx", # Comment-only metadata example "quickstart.mdx", # CodeGroup with Python/JS tabs From 1919eb7ed1bd521b594e464c58233cdb7e81a2b1 Mon Sep 17 00:00:00 2001 From: Sam Morris Date: Fri, 29 May 2026 18:48:39 +0100 Subject: [PATCH 04/10] docs: swap GitHub link for Notte Console, add Browser Arena Resources section now points to console.notte.cc (the product surface) instead of the source repo, and adds Browser Arena as an open benchmark reference. Both URLs verified live. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/src/integrations/fireworks.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/src/integrations/fireworks.mdx b/docs/src/integrations/fireworks.mdx index ef07ed919..ea18fba3c 100644 --- a/docs/src/integrations/fireworks.mdx +++ b/docs/src/integrations/fireworks.mdx @@ -79,4 +79,5 @@ Full configuration, methodology, and per-model numbers are in the [joint benchma * [Joint benchmark: Agents Don't Fail on Intelligence. They Fail on Execution](https://fireworks.ai/blog/agent-execution-tax) * [Agent Execution Tax explainer](https://notte.cc/blog/agent-execution-tax) * [Fireworks AI](https://fireworks.ai) and the [Fireworks model catalogue](https://fireworks.ai/models) -* [Notte on GitHub](https://github.com/nottelabs/notte) +* [Browser Arena](https://browserarena.ai): Notte's open benchmark of cloud browser providers +* [Notte Console](https://console.notte.cc) From e173eca39c406b69c04ec7a8fd2658c81adc1ebe Mon Sep 17 00:00:00 2001 From: Sam Morris Date: Thu, 4 Jun 2026 18:06:49 +0100 Subject: [PATCH 05/10] docs: address CTO review on Fireworks integration page - Move Python example to docs/src/testers/integrations/fireworks_basic.py and generate the corresponding snippet via make sniptest. The snippet is now imported as and runs through the standard tester test suite (DOCS_TEST_FAST_MODE syntax-checks it in CI). - Remove fireworks.mdx from the inline-snippet exception list now that the snippet pattern is in place. - Drop the "Validated Fireworks models" section (benchmark-specific numbers) and the "Reproducing the benchmark" pytest block. Keep the benchmark as a single link in the Overview, per CTO feedback. - Replace the table with a compact "Supported models" bullet list that preserves the actionable model IDs (Kimi K2.5, GLM-5, MiniMax M2.5) without the benchmark framing. Model string fireworks_ai/accounts/fireworks/models/kimi-k2p5 verified against the engine prefix in packages/notte-llm/src/notte_llm/engine.py and against the Fireworks model catalogue at fireworks.ai/models. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/src/integrations/fireworks.mdx | 102 +++++++----------- .../snippets/integrations/fireworks_basic.mdx | 17 +++ .../testers/integrations/fireworks_basic.py | 13 +++ docs/src/tests/test_snippets.py | 1 - 4 files changed, 70 insertions(+), 63 deletions(-) create mode 100644 docs/src/snippets/integrations/fireworks_basic.mdx create mode 100644 docs/src/testers/integrations/fireworks_basic.py diff --git a/docs/src/integrations/fireworks.mdx b/docs/src/integrations/fireworks.mdx index ea18fba3c..1fbc02c96 100644 --- a/docs/src/integrations/fireworks.mdx +++ b/docs/src/integrations/fireworks.mdx @@ -2,82 +2,60 @@ title: 'Fireworks AI' description: 'Run Notte browser agents on Fireworks-served open-weight models' --- +import FireworksBasic from '/snippets/integrations/fireworks_basic.mdx'; import AgentMdNotice from '/partials/agent-md-notice.mdx'; -## Overview +[Fireworks AI](https://fireworks.ai) serves open-weight LLMs (Kimi K2.5, GLM-5, MiniMax M2.5, and others) on production-grade inference infrastructure. By passing a Fireworks model string to a Notte agent, you can run browser automations on any Fireworks-hosted model without writing provider-specific code: Notte connects to Fireworks through LiteLLM, so the integration is a single `reasoning_model` string change. -Notte agents can drive the browser using any model served by [Fireworks AI](https://fireworks.ai), including Kimi K2.5, GLM-5, and MiniMax M2.5. Notte connects to Fireworks through LiteLLM, so the integration is a single `reasoning_model` string change with no separate provider plumbing. +For benchmark context on running browser agents across Fireworks-served models, see [Agents Don't Fail on Intelligence. They Fail on Execution](https://fireworks.ai/blog/agent-execution-tax). -A recent joint benchmark, [Agents Don't Fail on Intelligence. They Fail on Execution](https://fireworks.ai/blog/agent-execution-tax), ran 720 browser-agent tasks across four LLMs. The three Fireworks-served models held an [Agent Execution Tax](https://notte.cc/blog/agent-execution-tax) of 0 to 1.6%, with consistent tail latency across three distinct MoE architectures. +## Prerequisites -## Requirements - -* A Fireworks AI API key ([fireworks.ai](https://fireworks.ai)) -* A Notte API key ([console.notte.cc](https://console.notte.cc)) -* Python 3.11 or later +- A Notte API key ([get one here](https://console.notte.cc)) +- A Fireworks AI API key ([fireworks.ai](https://fireworks.ai)) +- Python 3.11 or later ## Setup - - - ```bash - pip install --upgrade notte-sdk - ``` - - - ```bash - export NOTTE_API_KEY="" - export FIREWORKS_API_KEY="" - ``` - - - ```python - from notte_sdk import NotteClient - - notte = NotteClient() - with notte.Session() as session: - agent = notte.Agent( - session=session, - reasoning_model="fireworks_ai/accounts/fireworks/models/kimi-k2p5", - ) - response = agent.run( - task="Go to news.ycombinator.com and return the top three stories." - ) - ``` - - - -## Validated Fireworks models - -The following models were validated in the joint benchmark (180 runs each, 60 WebVoyager tasks × 3 runs): - -| Model | Notes | -|---|---| -| Kimi K2.5 | 0% Agent Execution Tax across 852 calls; lowest token cost per task. Model ID: `fireworks_ai/accounts/fireworks/models/kimi-k2p5` | -| GLM-5 | 0.6% Agent Execution Tax; strong on long-form sites (ArXiv, BBC, Wolfram Alpha). Model ID: `fireworks_ai/accounts/fireworks/models/glm-5` | -| MiniMax M2.5 | 1.6% Agent Execution Tax; highest text-only task success rate in the benchmark. Model ID: `fireworks_ai/accounts/fireworks/models/minimax-m2p5` | - -Any Fireworks-served model that supports JSON-mode structured output will work with Notte. For canonical model IDs, see the [Fireworks model catalogue](https://fireworks.ai/models). - -## Reproducing the benchmark - -The benchmark is fully reproducible from the Notte repo: +### 1. Install the Notte SDK ```bash -uv run pytest packages/notte-eval/src/notte_eval/webvoyager/test_run.py \ - --task_dir "webvoyager/webvoyager_simple.jsonl" \ - --model "fireworks_ai/accounts/fireworks/models/kimi-k2p5" \ - --n_runs 3 --use_vision false --headless true --max_steps 20 -v +pip install --upgrade notte-sdk ``` -Full configuration, methodology, and per-model numbers are in the [joint benchmark report](https://fireworks.ai/blog/agent-execution-tax). +### 2. Configure your API keys + +Set the following environment variables: + +```bash +export NOTTE_API_KEY= +export FIREWORKS_API_KEY= +``` + +### 3. Run an agent against a Fireworks-served model + +Pass a `reasoning_model` string in the `fireworks_ai/accounts/fireworks/models/` shape: + + + +That's it: the agent now drives the browser using Kimi K2.5 served by Fireworks. + +## Supported models + +Any Fireworks-served model that supports JSON-mode structured output will work with Notte. The following were validated as part of the joint Notte × Fireworks benchmark: + +- Kimi K2.5: `fireworks_ai/accounts/fireworks/models/kimi-k2p5` +- GLM-5: `fireworks_ai/accounts/fireworks/models/glm-5` +- MiniMax M2.5: `fireworks_ai/accounts/fireworks/models/minimax-m2p5` + +See the [Fireworks model catalogue](https://fireworks.ai/models) for the full list. ## Resources -* [Joint benchmark: Agents Don't Fail on Intelligence. They Fail on Execution](https://fireworks.ai/blog/agent-execution-tax) -* [Agent Execution Tax explainer](https://notte.cc/blog/agent-execution-tax) -* [Fireworks AI](https://fireworks.ai) and the [Fireworks model catalogue](https://fireworks.ai/models) -* [Browser Arena](https://browserarena.ai): Notte's open benchmark of cloud browser providers -* [Notte Console](https://console.notte.cc) +- [Joint benchmark: Agents Don't Fail on Intelligence. They Fail on Execution](https://fireworks.ai/blog/agent-execution-tax) +- [Agent Execution Tax explainer](https://notte.cc/blog/agent-execution-tax) +- [Fireworks AI](https://fireworks.ai) and the [Fireworks model catalogue](https://fireworks.ai/models) +- [Browser Arena](https://browserarena.ai): Notte's open benchmark of cloud browser providers +- [Notte Console](https://console.notte.cc) diff --git a/docs/src/snippets/integrations/fireworks_basic.mdx b/docs/src/snippets/integrations/fireworks_basic.mdx new file mode 100644 index 000000000..10dcd8bcb --- /dev/null +++ b/docs/src/snippets/integrations/fireworks_basic.mdx @@ -0,0 +1,17 @@ +{/* Auto-generated mdx file. Do not edit! */} +{/* @sniptest testers/integrations/fireworks_basic.py */} + +```python fireworks_basic.py +from notte_sdk import NotteClient + +client = NotteClient() + +with client.Session() as session: + agent = client.Agent( + session=session, + reasoning_model="fireworks_ai/accounts/fireworks/models/kimi-k2p5", + ) + response = agent.run( + task="Go to news.ycombinator.com and return the top three stories." + ) +``` diff --git a/docs/src/testers/integrations/fireworks_basic.py b/docs/src/testers/integrations/fireworks_basic.py new file mode 100644 index 000000000..93500c852 --- /dev/null +++ b/docs/src/testers/integrations/fireworks_basic.py @@ -0,0 +1,13 @@ +# @sniptest filename=fireworks_basic.py +from notte_sdk import NotteClient + +client = NotteClient() + +with client.Session() as session: + agent = client.Agent( + session=session, + reasoning_model="fireworks_ai/accounts/fireworks/models/kimi-k2p5", + ) + response = agent.run( + task="Go to news.ycombinator.com and return the top three stories." + ) diff --git a/docs/src/tests/test_snippets.py b/docs/src/tests/test_snippets.py index 222c5b46e..f5b14e2bc 100644 --- a/docs/src/tests/test_snippets.py +++ b/docs/src/tests/test_snippets.py @@ -88,7 +88,6 @@ def test_no_snippets_outside_folder(): "captcha-solving.mdx", # CodeGroup wrappers for multi-language "stealth-mode.mdx", # CodeGroup wrappers for multi-language "kernel.mdx", # Integration-specific examples - "fireworks.mdx", # Integration-specific examples "schedules.mdx", # Comment-only cron examples "management.mdx", # Comment-only metadata example "quickstart.mdx", # CodeGroup with Python/JS tabs From 331ee9da6ede5d5da954d65831dc45576800e34f Mon Sep 17 00:00:00 2001 From: Sam Morris Date: Sun, 7 Jun 2026 12:57:05 +0100 Subject: [PATCH 06/10] docs: humanise prose on Fireworks integration page Trim marketing-style adjectives ("production-grade inference infrastructure"), redundant preambles ("Set the following environment variables:"), and "That's it" closing lines. Tighten section titles and the Supported models description. Net effect: same information, ~30% less prose, more conversational tone aligned with the stagehand and massive integration pages. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/src/integrations/fireworks.mdx | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/docs/src/integrations/fireworks.mdx b/docs/src/integrations/fireworks.mdx index 1fbc02c96..5381b449f 100644 --- a/docs/src/integrations/fireworks.mdx +++ b/docs/src/integrations/fireworks.mdx @@ -7,9 +7,9 @@ import AgentMdNotice from '/partials/agent-md-notice.mdx'; -[Fireworks AI](https://fireworks.ai) serves open-weight LLMs (Kimi K2.5, GLM-5, MiniMax M2.5, and others) on production-grade inference infrastructure. By passing a Fireworks model string to a Notte agent, you can run browser automations on any Fireworks-hosted model without writing provider-specific code: Notte connects to Fireworks through LiteLLM, so the integration is a single `reasoning_model` string change. +[Fireworks AI](https://fireworks.ai) hosts open-weight LLMs including Kimi K2.5, GLM-5, and MiniMax M2.5. To run a Notte agent on any of them, pass the model string to `reasoning_model`. Notte talks to Fireworks through LiteLLM, so there's no extra provider setup. -For benchmark context on running browser agents across Fireworks-served models, see [Agents Don't Fail on Intelligence. They Fail on Execution](https://fireworks.ai/blog/agent-execution-tax). +For numbers on how these models hold up across browser-agent workloads, see the joint benchmark, [Agents Don't Fail on Intelligence. They Fail on Execution](https://fireworks.ai/blog/agent-execution-tax). ## Prerequisites @@ -19,38 +19,34 @@ For benchmark context on running browser agents across Fireworks-served models, ## Setup -### 1. Install the Notte SDK +### 1. Install the SDK ```bash pip install --upgrade notte-sdk ``` -### 2. Configure your API keys - -Set the following environment variables: +### 2. Set your API keys ```bash export NOTTE_API_KEY= export FIREWORKS_API_KEY= ``` -### 3. Run an agent against a Fireworks-served model +### 3. Run an agent on a Fireworks model -Pass a `reasoning_model` string in the `fireworks_ai/accounts/fireworks/models/` shape: +Pass the model string (formatted as `fireworks_ai/accounts/fireworks/models/`) to `reasoning_model`: -That's it: the agent now drives the browser using Kimi K2.5 served by Fireworks. - ## Supported models -Any Fireworks-served model that supports JSON-mode structured output will work with Notte. The following were validated as part of the joint Notte × Fireworks benchmark: +Any Fireworks model with JSON-mode structured output works with Notte. Three were covered in the joint benchmark with Fireworks: - Kimi K2.5: `fireworks_ai/accounts/fireworks/models/kimi-k2p5` - GLM-5: `fireworks_ai/accounts/fireworks/models/glm-5` - MiniMax M2.5: `fireworks_ai/accounts/fireworks/models/minimax-m2p5` -See the [Fireworks model catalogue](https://fireworks.ai/models) for the full list. +See the [Fireworks model catalogue](https://fireworks.ai/models) for everything else. ## Resources From aa2ec8c108eea767cc501014b5cd38693b039db6 Mon Sep 17 00:00:00 2001 From: Lucas Giordano Date: Tue, 9 Jun 2026 17:37:30 -0700 Subject: [PATCH 07/10] use local notte --- docs/src/quickstart.mdx | 126 +++++++++++++++++- .../snippets/integrations/fireworks_basic.mdx | 12 +- .../testers/integrations/fireworks_basic.py | 12 +- 3 files changed, 128 insertions(+), 22 deletions(-) diff --git a/docs/src/quickstart.mdx b/docs/src/quickstart.mdx index 8b72e0c95..0d188e8cc 100644 --- a/docs/src/quickstart.mdx +++ b/docs/src/quickstart.mdx @@ -223,7 +223,7 @@ Build reliable Python SDK automation scripts by authoring in a real browser firs "", "**Browser profiles:** Profiles store browser state such as cookies, `localStorage`, and `sessionStorage`. Start a session with `--profile-id ` to load that saved state; add `--profile-persist` when starting the session if changes should be saved back to the profile when the session closes.", "", - "Session debugging and export:", + "Session debugging:", "", "```bash", "# Get network logs", @@ -231,11 +231,49 @@ Build reliable Python SDK automation scripts by authoring in a real browser firs "", "# Get replay URL/data", "notte sessions replay", + "```", + "", + "Session export:", "", + "```bash", "# Export session steps as Python workflow code.", "# Use --session-id to export a specific session, including one that has been stopped.", - "notte sessions workflow-code", "notte sessions workflow-code --session-id ", + "", + "# example flow", + "notte sessions start", + "notte page goto news.ycombinator.com", + "notte page scrape --instructions \"Extract the top 10 stories from Hacker News. For each story return: rank, title, URL, points, author, number of comments\" -o json", + "notte sessions workflow-code", + "", + "# returns", + "from __future__ import annotations", + "", + "from notte_sdk import NotteClient", + "from pydantic import BaseModel", + "", + "class Story(BaseModel):", + " rank: int | None = None", + " title: str | None = None", + " url: str | None = None", + " points: int | None = None", + " author: str | None = None", + " number_of_comments: int | None = None", + "", + "", + "class Model(BaseModel):", + " stories: list[Story] | None = None", + "", + "client = NotteClient()", + "", + "def run() -> Model:", + " with client.Session(use_file_storage=True) as session:", + " _ = session.execute(type='goto', url='news.ycombinator.com')", + "", + " # directly parses the output using response_format and returns the Model", + " return session.scrape(instructions='Extract the top 10 stories from Hacker News. For each story return: rank, title, URL, points, author, number of comments', only_main_content=False, only_images=False, scrape_links=True, scrape_images=False, response_format=Model)", + "", + "run()", "```", "", "Cookie management:", @@ -1040,7 +1078,7 @@ Build reliable Python SDK automation scripts by authoring in a real browser firs **Browser profiles:** Profiles store browser state such as cookies, `localStorage`, and `sessionStorage`. Start a session with `--profile-id ` to load that saved state; add `--profile-persist` when starting the session if changes should be saved back to the profile when the session closes. - Session debugging and export: + Session debugging: ```bash # Get network logs @@ -1048,11 +1086,49 @@ Build reliable Python SDK automation scripts by authoring in a real browser firs # Get replay URL/data notte sessions replay + ``` + + Session export: + ```bash # Export session steps as Python workflow code. # Use --session-id to export a specific session, including one that has been stopped. - notte sessions workflow-code notte sessions workflow-code --session-id + + # example flow + notte sessions start + notte page goto news.ycombinator.com + notte page scrape --instructions "Extract the top 10 stories from Hacker News. For each story return: rank, title, URL, points, author, number of comments" -o json + notte sessions workflow-code + + # returns + from __future__ import annotations + + from notte_sdk import NotteClient + from pydantic import BaseModel + + class Story(BaseModel): + rank: int | None = None + title: str | None = None + url: str | None = None + points: int | None = None + author: str | None = None + number_of_comments: int | None = None + + + class Model(BaseModel): + stories: list[Story] | None = None + + client = NotteClient() + + def run() -> Model: + with client.Session(use_file_storage=True) as session: + _ = session.execute(type='goto', url='news.ycombinator.com') + + # directly parses the output using response_format and returns the Model + return session.scrape(instructions='Extract the top 10 stories from Hacker News. For each story return: rank, title, URL, points, author, number of comments', only_main_content=False, only_images=False, scrape_links=True, scrape_images=False, response_format=Model) + + run() ``` Cookie management: @@ -1838,7 +1914,7 @@ notte sessions list [--page N] [--page-size N] [--only-active] **Browser profiles:** Profiles store browser state such as cookies, `localStorage`, and `sessionStorage`. Start a session with `--profile-id ` to load that saved state; add `--profile-persist` when starting the session if changes should be saved back to the profile when the session closes. -Session debugging and export: +Session debugging: ```bash # Get network logs @@ -1846,11 +1922,49 @@ notte sessions network # Get replay URL/data notte sessions replay +``` +Session export: + +```bash # Export session steps as Python workflow code. # Use --session-id to export a specific session, including one that has been stopped. -notte sessions workflow-code notte sessions workflow-code --session-id + +# example flow +notte sessions start +notte page goto news.ycombinator.com +notte page scrape --instructions "Extract the top 10 stories from Hacker News. For each story return: rank, title, URL, points, author, number of comments" -o json +notte sessions workflow-code + +# returns +from __future__ import annotations + +from notte_sdk import NotteClient +from pydantic import BaseModel + +class Story(BaseModel): + rank: int | None = None + title: str | None = None + url: str | None = None + points: int | None = None + author: str | None = None + number_of_comments: int | None = None + + +class Model(BaseModel): + stories: list[Story] | None = None + +client = NotteClient() + +def run() -> Model: + with client.Session(use_file_storage=True) as session: + _ = session.execute(type='goto', url='news.ycombinator.com') + + # directly parses the output using response_format and returns the Model + return session.scrape(instructions='Extract the top 10 stories from Hacker News. For each story return: rank, title, URL, points, author, number of comments', only_main_content=False, only_images=False, scrape_links=True, scrape_images=False, response_format=Model) + +run() ``` Cookie management: diff --git a/docs/src/snippets/integrations/fireworks_basic.mdx b/docs/src/snippets/integrations/fireworks_basic.mdx index 10dcd8bcb..fed8562e9 100644 --- a/docs/src/snippets/integrations/fireworks_basic.mdx +++ b/docs/src/snippets/integrations/fireworks_basic.mdx @@ -2,16 +2,12 @@ {/* @sniptest testers/integrations/fireworks_basic.py */} ```python fireworks_basic.py -from notte_sdk import NotteClient +import notte -client = NotteClient() - -with client.Session() as session: - agent = client.Agent( +with notte.Session() as session: + agent = notte.Agent( session=session, reasoning_model="fireworks_ai/accounts/fireworks/models/kimi-k2p5", ) - response = agent.run( - task="Go to news.ycombinator.com and return the top three stories." - ) + response = agent.run(task="Go to news.ycombinator.com and return the top three stories.") ``` diff --git a/docs/src/testers/integrations/fireworks_basic.py b/docs/src/testers/integrations/fireworks_basic.py index 93500c852..71842806e 100644 --- a/docs/src/testers/integrations/fireworks_basic.py +++ b/docs/src/testers/integrations/fireworks_basic.py @@ -1,13 +1,9 @@ # @sniptest filename=fireworks_basic.py -from notte_sdk import NotteClient +import notte -client = NotteClient() - -with client.Session() as session: - agent = client.Agent( +with notte.Session() as session: + agent = notte.Agent( session=session, reasoning_model="fireworks_ai/accounts/fireworks/models/kimi-k2p5", ) - response = agent.run( - task="Go to news.ycombinator.com and return the top three stories." - ) + response = agent.run(task="Go to news.ycombinator.com and return the top three stories.") From 9d607b48b6247171e72b31c7dce65f2bcabdce2f Mon Sep 17 00:00:00 2001 From: Lucas Giordano Date: Tue, 9 Jun 2026 17:39:53 -0700 Subject: [PATCH 08/10] add llm --- docs/src/llms.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/src/llms.txt b/docs/src/llms.txt index 706730431..31f6f849d 100644 --- a/docs/src/llms.txt +++ b/docs/src/llms.txt @@ -164,6 +164,7 @@ Full Quickstart: https://docs.notte.cc/quickstart.md - [Steel](https://docs.notte.cc/integrations/steel.md): Run Notte with Steel cloud browsers (CDP) - [Massive](https://docs.notte.cc/integrations/massive.md): Use Massive residential proxies with Notte sessions - [OpenAI CUA](https://docs.notte.cc/integrations/openai-cua.md): Integrate OpenAI CUA with Notte Browser Sessions +- [Fireworks AI](https://docs.notte.cc/integrations/fireworks.md): Run Notte browser agents on Fireworks-served open-weight models - [Stagehand](https://docs.notte.cc/integrations/stagehand.md): Use Notte cloud browsers with Stagehand browser automation - [OpenClaw](https://docs.notte.cc/integrations/openclaw.md): Use Notte cloud browsers with OpenClaw - [Cloudflare Web Bot Auth](https://docs.notte.cc/features/sessions/cloudflare-web-bot-auth.md): Access Cloudflare-protected websites by cryptographically signing browser requests From e03d82f0c22e98904f73e7cbf0c12c78b63dde9e Mon Sep 17 00:00:00 2001 From: Lucas Giordano Date: Tue, 9 Jun 2026 17:42:34 -0700 Subject: [PATCH 09/10] update --- docs/src/integrations/fireworks.mdx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/src/integrations/fireworks.mdx b/docs/src/integrations/fireworks.mdx index 5381b449f..376bddc8f 100644 --- a/docs/src/integrations/fireworks.mdx +++ b/docs/src/integrations/fireworks.mdx @@ -22,13 +22,12 @@ For numbers on how these models hold up across browser-agent workloads, see the ### 1. Install the SDK ```bash -pip install --upgrade notte-sdk +pip install --upgrade notte ``` -### 2. Set your API keys +### 2. Set your API key ```bash -export NOTTE_API_KEY= export FIREWORKS_API_KEY= ``` From 6c636090c8c5c0fe1106248645d5e4ce2733aa29 Mon Sep 17 00:00:00 2001 From: Lucas Giordano Date: Tue, 9 Jun 2026 17:43:27 -0700 Subject: [PATCH 10/10] fix --- docs/src/integrations/fireworks.mdx | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/src/integrations/fireworks.mdx b/docs/src/integrations/fireworks.mdx index 376bddc8f..89ef4e087 100644 --- a/docs/src/integrations/fireworks.mdx +++ b/docs/src/integrations/fireworks.mdx @@ -13,7 +13,6 @@ For numbers on how these models hold up across browser-agent workloads, see the ## Prerequisites -- A Notte API key ([get one here](https://console.notte.cc)) - A Fireworks AI API key ([fireworks.ai](https://fireworks.ai)) - Python 3.11 or later