Skip to content

feat: add Nous Portal (Nous Research) native provider#794

Closed
iqdoctor wants to merge 6 commits into
evalstate:mainfrom
strato-space:fix/ws-proxy-env-codex
Closed

feat: add Nous Portal (Nous Research) native provider#794
iqdoctor wants to merge 6 commits into
evalstate:mainfrom
strato-space:fix/ws-proxy-env-codex

Conversation

@iqdoctor
Copy link
Copy Markdown
Contributor

Adds a first-class Nous Research Portal provider for fast-agent, ported from the Hermes Nous Portal provider (`/hermes-agent/plugins/model-providers/nous/`).

What it does

  • `Provider.NOUS` in `provider_types.py`; wired in `ModelFactory._load_provider_class`
  • `NousSettings` — standard fast-agent config (`api_key`, `base_url`, `default_model`, `default_headers`)
  • `NousLLM(OpenAICompatibleLLM)` — default `base_url = https://inference.nousresearch.com/v1\`, default model `hermes-3-405b`
  • `extra_body["tags"]` injected on every call with `["product=fast-agent", "client=fast-agent-client-v{version}"]` (Hermes `nous_portal_tags()` parity)
  • Five models registered in `ModelDatabase`: hermes-3-405b, hermes-3-70b, hermes-2-405b, hermes-2-70b, epistem-7b-hermes-2-beta
  • `DEFAULT_MAX_ITERATIONS`: 99 → 600

Usage: `fast-agent --model nous.hermes-3-405b`
Auth: `NOUS_API_KEY` or `nous.api_key` in config

@iqdoctor iqdoctor force-pushed the fix/ws-proxy-env-codex branch 2 times, most recently from 7fe1ff4 to c00c488 Compare May 16, 2026 21:26
@iqdoctor iqdoctor marked this pull request as draft May 16, 2026 21:32
iqdoctor added 5 commits May 17, 2026 00:50
- Add NousSettings (base-url / api-key override) to fast-agent config
- Register NousLLM (OpenAICompatibleLLM) in model_factory
- Add Nous Portal models to model_database:
    hermes-3-405b, hermes-3-70b, hermes-2-405b, hermes-2-70b, epistem-7b-hermes-2-beta, stepfun/step-3.5-flash
- Port product-attribution tags and base URL from Hermes Nous Portal plugin
- Fixes: stepfun/step-3.5-flash via Nous Portal is now a first-class model
- Insert Provider.NOUS after Provider.ALIYUN in PICKER_PROVIDER_ORDER
- Add stepfun/step-3.5-flash as sole CATALOG_ENTRIES_BY_PROVIDER entry for NOUS
- Without these, model_picker_common.build_snapshot() skipped NOUS entirely
Hermes uses https://inference-api.nousresearch.com/v1 (with -api),
which is not blocked from this IP range. The bare inference.nousresearch.com
drops TLS client hello (SSL_ERROR_SYSCALL).

Also updates docstring to match.
Matches Hermes Agent's curated model list from inference-api.nousresearch.com.
All models use the nous.{model_id} spec format; parse_model_string strips
the nous. prefix for the API call.

Models: opus47, opus46, sonnet46, kimi26, qwen36p, haiku45, gpt55,
gpt55pro, gpt54mini, gpt54nano, gpt53codex, mimo25pro, hy3, gem3pro,
gem3flash, gem31pro, gem31fl, qwen36b, step35, minimax27, glm51,
grok43, nemotron3, dsv4pro
@iqdoctor iqdoctor force-pushed the fix/ws-proxy-env-codex branch from 7651db7 to 265344d Compare May 16, 2026 23:58
@iqdoctor iqdoctor marked this pull request as ready for review May 16, 2026 23:59
Aliases like opus47, sonnet46, gpt55 already exist in MODEL_PRESETS
pointing to native providers. Adding a prefix avoids the assertion
failure in test_curated_catalog_aliases_are_parseable.
@iqdoctor
Copy link
Copy Markdown
Contributor Author

Superseded by #795 (feat/stepfun-nous branch). This branch (fix/ws-proxy-env-codex) was the initial draft; all fixes, TUI integration, base URL correction, and the full 24-model catalog were developed on feat/stepfun-nous. Closing in favour of #795.

@iqdoctor iqdoctor closed this May 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant