mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-07 08:02:23 +00:00
feat(agent): allow declaring supports_vision via user config
Custom/local provider models absent from models.dev get classified as
non-vision and have their image content stripped before reaching the
upstream API. Surface a user-facing override:
model:
supports_vision: true
providers:
my-vllm:
models:
my-llava:
supports_vision: true
The override short-circuits the models.dev lookup in
_model_supports_vision(), which is the single gate guarding image-strip
preprocessing on every transport path.
Refs #8731.
This commit is contained in:
parent
b4afc6546e
commit
24c7ce0fb8
2 changed files with 41 additions and 4 deletions
|
|
@ -168,3 +168,28 @@ class TestModelSupportsVision:
|
|||
agent = _make_agent()
|
||||
with patch("agent.models_dev.get_model_capabilities", side_effect=RuntimeError("boom")):
|
||||
assert agent._model_supports_vision() is False
|
||||
|
||||
def test_top_level_model_override_wins(self):
|
||||
agent = _make_agent()
|
||||
agent.provider = "custom"
|
||||
agent.model = "my-llava"
|
||||
with patch("hermes_cli.config.load_config", return_value={"model": {"supports_vision": True}}), \
|
||||
patch("agent.models_dev.get_model_capabilities", return_value=None):
|
||||
assert agent._model_supports_vision() is True
|
||||
|
||||
def test_per_provider_per_model_override_wins(self):
|
||||
agent = _make_agent()
|
||||
agent.provider = "custom"
|
||||
agent.model = "my-llava"
|
||||
cfg = {"providers": {"custom": {"models": {"my-llava": {"supports_vision": True}}}}}
|
||||
with patch("hermes_cli.config.load_config", return_value=cfg), \
|
||||
patch("agent.models_dev.get_model_capabilities", return_value=None):
|
||||
assert agent._model_supports_vision() is True
|
||||
|
||||
def test_override_false_disables_vision_for_models_dev_models(self):
|
||||
agent = _make_agent()
|
||||
fake_caps = MagicMock()
|
||||
fake_caps.supports_vision = True
|
||||
with patch("hermes_cli.config.load_config", return_value={"model": {"supports_vision": False}}), \
|
||||
patch("agent.models_dev.get_model_capabilities", return_value=fake_caps):
|
||||
assert agent._model_supports_vision() is False
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue