Skip to content

Add Fireworks AI as an inference provider - #28983

Closed
alex-fireworks wants to merge 1 commit into
NousResearch:mainfrom
alex-fireworks:add-fireworks-provider
Closed

alex-fireworks wants to merge 1 commit into
NousResearch:mainfrom
alex-fireworks:add-fireworks-provider

Conversation

@alex-fireworks

Copy link
Copy Markdown
Contributor

Summary

  • Adds Fireworks AI as a bundled model provider via the standard ProviderProfile plugin system
  • Auto-wires into auth, config, models, doctor, and transport layers — no manual edits needed
  • Supports accounts/fireworks/routers/kimi-k2p6-turbo, accounts/fireworks/models/glm-5p1, and accounts/fireworks/models/minimax-m2p5

Files added

  • plugins/model-providers/fireworks/__init__.py
  • plugins/model-providers/fireworks/plugin.yaml
  • tests/plugins/model_providers/test_fireworks_profile.py
  • tests/run_agent/test_fireworks_live.py

Files modified

  • .env.example — documents FIREWORKS_API_KEY and FIREWORKS_BASE_URL
  • tests/providers/test_plugin_discovery.py — bumps provider count 34→35

Test plan

  • Unit tests pass (pytest tests/plugins/model_providers/test_fireworks_profile.py)
  • Discovery test passes (pytest tests/providers/test_plugin_discovery.py)
  • Live smoke test with FIREWORKS_API_KEY set (pytest tests/run_agent/test_fireworks_live.py)
  • Verified provider appears in model picker after API key is configured

New provider plugin:
- plugins/model-providers/fireworks/ registers Fireworks AI via
  the standard ProviderProfile plugin system (auto-wired into auth,
  config, models, doctor, and transport layers).

Supported models:
- accounts/fireworks/routers/kimi-k2p6-turbo
- accounts/fireworks/models/glm-5p1
- accounts/fireworks/models/minimax-m2p5

Also adds unit tests, a live smoke test, and env.example documentation.
@alt-glitch alt-glitch added type/feature New feature or request P3 Low — cosmetic, nice to have comp/plugins Plugin system and bundled plugins labels May 19, 2026
@alt-glitch

Copy link
Copy Markdown
Contributor

Duplicate of existing open Fireworks AI provider PRs — see #23541, #15332, #6054, #3757, #3564 for prior attempts with overlapping scope. Recommend consolidating into a single PR.

@teknium1 teknium1 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding the Fireworks provider plugin. I would keep this open for consolidation with the other Fireworks PRs, but this branch needs updates before it is a clean salvage onto current main.

Problems

  • tests/providers/test_plugin_discovery.py:56 reintroduces a hardcoded provider count. Current main now asserts the invariant against plugin directories at tests/providers/test_plugin_discovery.py:47-66, matching the AGENTS.md guidance against change-detector tests.
  • plugins/model-providers/fireworks/__init__.py:12 declares fireworks-ai / fw aliases, but CLI/TUI provider normalization uses the separate static alias map in hermes_cli/providers.py:240-360; this PR only asserts the aliases exist on the profile, not that hermes_cli.providers resolves them.
  • tests/run_agent/test_fireworks_live.py:27-30 creates an OpenAI SDK client directly, so it does not verify Hermes auth/config/runtime/model-picker wiring despite the PR claiming those paths are auto-wired.

Suggested changes

  • Port the discovery test to current main's invariant style and keep only a Fireworks spot-check.
  • Add CLI/TUI-facing resolver coverage for fireworks, fireworks-ai, and fw, or wire ProviderProfile aliases into that resolver.
  • Make the live smoke test exercise the Hermes runtime/provider path, not only the upstream OpenAI-compatible endpoint.

This is an automated hermes-sweeper review.



fireworks = ProviderProfile(
name="fireworks",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These aliases are only asserted on the ProviderProfile. Current CLI/TUI provider normalization uses the separate static alias map in hermes_cli/providers.py, so please add resolver wiring or a regression test proving fireworks-ai and fw work through the user-facing provider path.

profiles = list_providers()
names = sorted(p.name for p in profiles)
assert len(names) == 34, f"Expected 34 profiles, got {len(names)}: {names}"
assert len(names) == 35, f"Expected 35 profiles, got {len(names)}: {names}"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please avoid bumping a hardcoded provider count. Current main changed this test to assert the invariant against the plugin directory count because provider totals are expected to change.

from openai import OpenAI

return OpenAI(api_key=FIREWORKS_KEY, base_url=LIVE_BASE_URL)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This returns a raw OpenAI SDK client, so the live test bypasses Hermes credential resolution, runtime provider setup, and model inventory wiring. A Hermes-path smoke test would better cover the integration this PR is adding.

@teknium1

Copy link
Copy Markdown
Collaborator

Fireworks AI support landed via PR #62593. This contribution was part of the Fireworks provider cluster credited in the salvage PR; thank you for the implementation and review work.

@teknium1 teknium1 closed this Jul 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants