Skip to content

docs(providers): Together/Groq/Perplexity cookbook via custom_providers#15214

Closed
perlowja wants to merge 1 commit into
NousResearch:mainfrom
perlowja:docs/custom-providers-cookbook
Closed

docs(providers): Together/Groq/Perplexity cookbook via custom_providers#15214
perlowja wants to merge 1 commit into
NousResearch:mainfrom
perlowja:docs/custom-providers-cookbook

Conversation

@perlowja
Copy link
Copy Markdown
Contributor

@perlowja perlowja commented Apr 24, 2026

What does this PR do?

Adds a Cookbook subsection to website/docs/integrations/providers.md under Named Custom Providers with copy-pasteable recipes for the three most common cloud cases that fit the custom_providers: pattern: Together AI, Groq, and Perplexity. Plus a "multiple providers in one config" example and a troubleshooting admonition pointing at the three recently merged PRs that made this flow robust.

Why this approach: the existing docs describe custom_providers: in the abstract (local / work / anthropic-proxy combo at lines 1062–1074) and list cloud endpoints generically in the "Other Compatible Providers" table (lines 970–990). But there's no end-to-end recipe for the most common case — "I have a Together AI key, how do I make Hermes use it and be able to switch models with /model?". Users currently have to reconstruct the pattern from three merged PRs (#15083, #15103, #15136). Now that those are on main, the three-way recipe belongs in the docs so the next user doesn't have to reverse-engineer it.

Scope: docs-only. No runtime code, no schema, no tests.

Related Issue

No existing issue — happy to open one first if maintainers prefer that flow. Drafted after using the pattern end-to-end while debugging a skill (InvestorClaw) that needed to point a custom provider at Together AI on Hermes Agent.

Fixes #

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 🔒 Security fix
  • 📝 Documentation update
  • ✅ Tests (adding or improving test coverage)
  • ♻️ Refactor (no behavior change)
  • 🎯 New skill (bundled or hub)

Changes Made

Diff: 1 file changed, 107 insertions(+) — pure addition, no existing content modified.

How to Test

This is a docs-only PR; the testable surface is whether the rendered Docusaurus page displays the new subsection correctly. I did not run the full npm run build for the website in this working copy (no local Node toolchain set up for the docs site), relying on the fact that:

  1. The diff adds only standard Markdown + fenced code blocks + a Docusaurus :::tip admonition (all used elsewhere in this same file, e.g. the :::tip When to set this manually block at line ~1055).
  2. No new frontmatter keys, no new sidebar entries, no new internal cross-links added.
  3. No cross-reference anchors renamed.

If the maintainers would like me to run the Docusaurus build locally before merge, happy to — just flag it in review.

Reproduction of the underlying user pain (what motivated the cookbook): against a fresh ~/.hermes/config.yaml with only a Together API key, the shortest path from "I have a Together key" to "Hermes is using Together" requires the full custom_providers: block + key_env: + model.provider: custom:together + matching .env entry. Before this PR, none of those pieces are colocated in the docs — a user has to stitch together "Named Custom Providers", "Other Compatible Providers", and the frontmatter of #15083 / #15103 / #15136 to get the complete picture. After this PR, one page section has all of it.

Checklist

Code

Documentation & Housekeeping

  • I've updated relevant documentation (README, docs/, docstrings) — this PR IS the docs update.
  • I've updated cli-config.yaml.example if I added/changed config keys — N/A (no config-key changes; uses the existing custom_providers: schema as-shipped by fix(cli): validate user-defined providers consistently (salvage #14857) #15083).
  • I've updated CONTRIBUTING.md or AGENTS.md if I changed architecture or workflows — N/A.
  • I've considered cross-platform impact — docs render the same on all platforms.
  • I've updated tool descriptions/schemas if I changed tool behavior — N/A.

For New Skills

N/A — not a skill addition.

Screenshots / Logs

Raw diff preview (first 30 lines of the 107-line addition):

### Cookbook: Together AI, Groq, Perplexity

The cloud providers listed in [Other Compatible Providers](#other-compatible-providers) all speak OpenAI's REST dialect, so they wire up the same way under `custom_providers:`. Three worked recipes follow. Each drops into `~/.hermes/config.yaml` and the matching API key goes in `~/.hermes/.env`.

#### Together AI

Hosts open-weight models (Llama, MiniMax, Gemma, DeepSeek, Qwen) at prices significantly below first-party APIs. Good default for multi-model fleets.

```yaml
# ~/.hermes/config.yaml
custom_providers:
  - name: together
    base_url: https://api.together.xyz/v1
    key_env: TOGETHER_API_KEY
    # api_mode: chat_completions  # default — no need to set

model:
  default: MiniMaxAI/MiniMax-M2.7   # or any model from together.ai/models
  provider: custom:together

[… 80 more lines in the same pattern for Groq, Perplexity, the multi-provider example, and the troubleshooting admonition …]


Full diff available on the PR "Files changed" tab.

@alt-glitch alt-glitch added type/docs Documentation improvements P3 Low — cosmetic, nice to have area/config Config system, migrations, profiles labels Apr 24, 2026
@perlowja
Copy link
Copy Markdown
Contributor Author

CI diagnosis

Three failures on this PR. Verified all three are pre-existing master regressions, not introduced by this branch.

docs-site-checks — 6 ascii-guard warnings, all in website/docs/developer-guide/architecture.md

Full log tail:

Checking .../website/docs/developer-guide/architecture.md...
  Found 10 ASCII box(es)
⚠   Line 39, Col 12: Bottom border missing junction point at column 11 (expected ┴, got '─')
⚠   Line 39, Col 30: Bottom border missing junction point at column 29 (expected ┴, got '─')
⚠   Line 39, Col 48: Bottom border missing junction point at column 47 (expected ┴, got '─')
[…3 more on the same file…]
Summary:
  Files checked: 262
  Boxes found: 29
⚠   Warnings: 6
##[error]Process completed with exit code 1.

My file (website/docs/integrations/providers.md) in the same run:

Checking .../website/docs/integrations/providers.md...
  Found 0 ASCII box(es)
✓   No issues found

architecture.md was last touched in #11373 (fix(ci): resolve 4 pre-existing main failures) — the warnings predate this PR.

nix (ubuntu-latest) and nix (macos-latest)npmDepsHash is out of date

hermes-web> ERROR: npmDepsHash is out of date
hermes-web> 1. Use `lib.fakeHash` as the npmDepsHash value
hermes-web> 2. Build the derivation and wait for it to fail with a hash mismatch
error: Cannot build '/nix/store/…-hermes-web-0.0.0.drv'.

Same failure on main without any PR context — run 24895726733 (2026-04-24 14:48 UTC, main branch, no PR) fails with identical npmDepsHash is out of date. The most recent passing Nix main build was 24894677767 at 14:26 UTC — something broke the hash between those two points. This PR (opened 15:22) inherited the broken state.

Scope boundary

This PR's diff is docs-only, single-file, +107 lines to website/docs/integrations/providers.md. It does not touch architecture.md, package-lock.json, flake.lock, or anything the Nix derivation consumes. Happy to file a small separate PR fixing the architecture.md junctions if that would unblock merge — just let me know. The npmDepsHash is a nix-toolchain update; I'd rather leave that to a maintainer with the toolchain set up.

Otherwise this PR is ready once master is green.

Three worked recipes for OpenAI-compatible cloud providers, plus the
Copilot HTTP 401 auto-recovery info block and the GMI Cloud row in the
compatible providers table. All three additions were on the original
docs/custom-providers-cookbook branch but its merge base predated 1186
main commits, making the rebase impractical (84k+ line conflict).

Replays just the providers.md additions onto current main.
@perlowja perlowja force-pushed the docs/custom-providers-cookbook branch from 08664ae to 1c0dd51 Compare April 25, 2026 09:53
@perlowja
Copy link
Copy Markdown
Contributor Author

Force-pushed a clean rebase. The original branch was 1186 commits behind main with an 84k+ line non-trivial diff (the merge base predated all of the Group G contributor renames + most of late-Q1's docs reshape), so rebasing would have produced more noise than the cookbook content. New head 1c0dd515 is current main + just the 120-line providers.md addition (cookbook section + GMI Cloud row + Copilot 401 info block — all three were in the original PR diff but obscured by rebase noise). ascii-guard 2.3.0 lint website/docs is clean locally. Re-running CI now.

@perlowja
Copy link
Copy Markdown
Contributor Author

Update: all CI is green at head `1c0dd515` after the rebase pulled in the master fixes I noted yesterday.

Check Result
`check` ✅ pass
`docs-site-checks` (was the architecture.md ASCII-guard regression) ✅ pass
`nix (macos-latest)` (was the npmDepsHash regression) ✅ pass
`nix (ubuntu-latest)` (was the npmDepsHash regression) ✅ pass

This PR is docs-only — single-file, +107 lines to `website/docs/integrations/providers.md` covering Together / Groq / Perplexity custom-provider cookbook, the GMI Cloud row, and a Copilot 401 info block. No runtime change, no schema change.

Ready for review when the queue clears. Happy to split into per-section commits if narrower review is preferred.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/config Config system, migrations, profiles P3 Low — cosmetic, nice to have type/docs Documentation improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants