mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-01 08:21:50 +08:00
Compare commits
1 Commits
fix/plugin
...
hermes/her
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e245885f3e |
@@ -23,17 +23,13 @@ Resolution order for vision/multimodal tasks (auto mode):
|
|||||||
6. Custom endpoint (for local vision models: Qwen-VL, LLaVA, Pixtral, etc.)
|
6. Custom endpoint (for local vision models: Qwen-VL, LLaVA, Pixtral, etc.)
|
||||||
7. None
|
7. None
|
||||||
|
|
||||||
Per-task provider overrides (e.g. AUXILIARY_VISION_PROVIDER,
|
Per-task overrides are configured in config.yaml under the ``auxiliary:`` section
|
||||||
CONTEXT_COMPRESSION_PROVIDER) can force a specific provider for each task.
|
(e.g. ``auxiliary.vision.provider``, ``auxiliary.compression.model``).
|
||||||
Default "auto" follows the chains above.
|
Default "auto" follows the chains above.
|
||||||
|
|
||||||
Per-task model overrides (e.g. AUXILIARY_VISION_MODEL,
|
Legacy env var overrides (AUXILIARY_{TASK}_PROVIDER, AUXILIARY_{TASK}_MODEL,
|
||||||
AUXILIARY_WEB_EXTRACT_MODEL) let callers use a different model slug
|
AUXILIARY_{TASK}_BASE_URL, etc.) are still read as a backward-compat fallback
|
||||||
than the provider's default.
|
but config.yaml takes priority. New configuration should always use config.yaml.
|
||||||
|
|
||||||
Per-task direct endpoint overrides (e.g. AUXILIARY_VISION_BASE_URL,
|
|
||||||
AUXILIARY_VISION_API_KEY) let callers route a specific auxiliary task to a
|
|
||||||
custom OpenAI-compatible endpoint without touching the main model settings.
|
|
||||||
|
|
||||||
Payment / credit exhaustion fallback:
|
Payment / credit exhaustion fallback:
|
||||||
When a resolved provider returns HTTP 402 or a credit-related error,
|
When a resolved provider returns HTTP 402 or a credit-related error,
|
||||||
@@ -1968,8 +1964,8 @@ def _resolve_task_provider_model(
|
|||||||
|
|
||||||
Priority:
|
Priority:
|
||||||
1. Explicit provider/model/base_url/api_key args (always win)
|
1. Explicit provider/model/base_url/api_key args (always win)
|
||||||
2. Env var overrides (AUXILIARY_{TASK}_*, CONTEXT_{TASK}_*)
|
2. Config file (auxiliary.{task}.* or compression.*)
|
||||||
3. Config file (auxiliary.{task}.* or compression.*)
|
3. Env var overrides (backward-compat: AUXILIARY_{TASK}_*, CONTEXT_{TASK}_*)
|
||||||
4. "auto" (full auto-detection chain)
|
4. "auto" (full auto-detection chain)
|
||||||
|
|
||||||
Returns (provider, model, base_url, api_key, api_mode) where model may
|
Returns (provider, model, base_url, api_key, api_mode) where model may
|
||||||
@@ -2012,10 +2008,11 @@ def _resolve_task_provider_model(
|
|||||||
_sbu = comp.get("summary_base_url") or ""
|
_sbu = comp.get("summary_base_url") or ""
|
||||||
cfg_base_url = cfg_base_url or _sbu.strip() or None
|
cfg_base_url = cfg_base_url or _sbu.strip() or None
|
||||||
|
|
||||||
|
# Env vars are backward-compat fallback only — config.yaml is primary.
|
||||||
env_model = _get_auxiliary_env_override(task, "MODEL") if task else None
|
env_model = _get_auxiliary_env_override(task, "MODEL") if task else None
|
||||||
env_api_mode = _get_auxiliary_env_override(task, "API_MODE") if task else None
|
env_api_mode = _get_auxiliary_env_override(task, "API_MODE") if task else None
|
||||||
resolved_model = model or env_model or cfg_model
|
resolved_model = model or cfg_model or env_model
|
||||||
resolved_api_mode = env_api_mode or cfg_api_mode
|
resolved_api_mode = cfg_api_mode or env_api_mode
|
||||||
|
|
||||||
if base_url:
|
if base_url:
|
||||||
return "custom", resolved_model, base_url, api_key, resolved_api_mode
|
return "custom", resolved_model, base_url, api_key, resolved_api_mode
|
||||||
@@ -2023,19 +2020,23 @@ def _resolve_task_provider_model(
|
|||||||
return provider, resolved_model, base_url, api_key, resolved_api_mode
|
return provider, resolved_model, base_url, api_key, resolved_api_mode
|
||||||
|
|
||||||
if task:
|
if task:
|
||||||
|
# Config.yaml is the primary source for per-task overrides.
|
||||||
|
if cfg_base_url:
|
||||||
|
return "custom", resolved_model, cfg_base_url, cfg_api_key, resolved_api_mode
|
||||||
|
if cfg_provider and cfg_provider != "auto":
|
||||||
|
return cfg_provider, resolved_model, None, None, resolved_api_mode
|
||||||
|
|
||||||
|
# Env vars are backward-compat fallback for users who haven't
|
||||||
|
# migrated to config.yaml yet.
|
||||||
env_base_url = _get_auxiliary_env_override(task, "BASE_URL")
|
env_base_url = _get_auxiliary_env_override(task, "BASE_URL")
|
||||||
env_api_key = _get_auxiliary_env_override(task, "API_KEY")
|
env_api_key = _get_auxiliary_env_override(task, "API_KEY")
|
||||||
if env_base_url:
|
if env_base_url:
|
||||||
return "custom", resolved_model, env_base_url, env_api_key or cfg_api_key, resolved_api_mode
|
return "custom", resolved_model, env_base_url, env_api_key, resolved_api_mode
|
||||||
|
|
||||||
env_provider = _get_auxiliary_provider(task)
|
env_provider = _get_auxiliary_provider(task)
|
||||||
if env_provider != "auto":
|
if env_provider != "auto":
|
||||||
return env_provider, resolved_model, None, None, resolved_api_mode
|
return env_provider, resolved_model, None, None, resolved_api_mode
|
||||||
|
|
||||||
if cfg_base_url:
|
|
||||||
return "custom", resolved_model, cfg_base_url, cfg_api_key, resolved_api_mode
|
|
||||||
if cfg_provider and cfg_provider != "auto":
|
|
||||||
return cfg_provider, resolved_model, None, None, resolved_api_mode
|
|
||||||
return "auto", resolved_model, None, None, resolved_api_mode
|
return "auto", resolved_model, None, None, resolved_api_mode
|
||||||
|
|
||||||
return "auto", resolved_model, None, None, resolved_api_mode
|
return "auto", resolved_model, None, None, resolved_api_mode
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ _ENV_VAR_NAME_RE = re.compile(r"^[A-Za-z_][A-Za-z0-9_]*$")
|
|||||||
_EXTRA_ENV_KEYS = frozenset({
|
_EXTRA_ENV_KEYS = frozenset({
|
||||||
"OPENAI_API_KEY", "OPENAI_BASE_URL",
|
"OPENAI_API_KEY", "OPENAI_BASE_URL",
|
||||||
"ANTHROPIC_API_KEY", "ANTHROPIC_TOKEN",
|
"ANTHROPIC_API_KEY", "ANTHROPIC_TOKEN",
|
||||||
"AUXILIARY_VISION_MODEL",
|
|
||||||
"DISCORD_HOME_CHANNEL", "TELEGRAM_HOME_CHANNEL",
|
"DISCORD_HOME_CHANNEL", "TELEGRAM_HOME_CHANNEL",
|
||||||
"SIGNAL_ACCOUNT", "SIGNAL_HTTP_URL",
|
"SIGNAL_ACCOUNT", "SIGNAL_HTTP_URL",
|
||||||
"SIGNAL_ALLOWED_USERS", "SIGNAL_GROUP_ALLOWED_USERS",
|
"SIGNAL_ALLOWED_USERS", "SIGNAL_GROUP_ALLOWED_USERS",
|
||||||
|
|||||||
Reference in New Issue
Block a user