mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-29 11:42:04 +00:00
124 lines
3.4 KiB
Python
124 lines
3.4 KiB
Python
from types import SimpleNamespace
|
|
|
|
from agent.agent_init import _merge_custom_provider_extra_body
|
|
|
|
|
|
def test_custom_provider_extra_body_merges_into_request_overrides():
|
|
agent = SimpleNamespace(
|
|
provider="custom",
|
|
model="google/gemma-4-31b-it",
|
|
base_url="https://example.test/v1",
|
|
request_overrides={"service_tier": "priority"},
|
|
)
|
|
|
|
_merge_custom_provider_extra_body(
|
|
agent,
|
|
[
|
|
{
|
|
"name": "gemma",
|
|
"base_url": "https://example.test/v1/",
|
|
"model": "google/gemma-4-31b-it",
|
|
"extra_body": {
|
|
"enable_thinking": True,
|
|
"reasoning_effort": "high",
|
|
},
|
|
}
|
|
],
|
|
)
|
|
|
|
assert agent.request_overrides == {
|
|
"service_tier": "priority",
|
|
"extra_body": {
|
|
"enable_thinking": True,
|
|
"reasoning_effort": "high",
|
|
},
|
|
}
|
|
|
|
|
|
def test_custom_provider_extra_body_preserves_caller_override():
|
|
agent = SimpleNamespace(
|
|
provider="custom",
|
|
model="google/gemma-4-31b-it",
|
|
base_url="https://example.test/v1",
|
|
request_overrides={
|
|
"extra_body": {
|
|
"reasoning_effort": "low",
|
|
"caller_only": True,
|
|
}
|
|
},
|
|
)
|
|
|
|
_merge_custom_provider_extra_body(
|
|
agent,
|
|
[
|
|
{
|
|
"name": "gemma",
|
|
"base_url": "https://example.test/v1",
|
|
"model": "google/gemma-4-31b-it",
|
|
"extra_body": {
|
|
"enable_thinking": True,
|
|
"reasoning_effort": "high",
|
|
},
|
|
}
|
|
],
|
|
)
|
|
|
|
assert agent.request_overrides["extra_body"] == {
|
|
"enable_thinking": True,
|
|
"reasoning_effort": "low",
|
|
"caller_only": True,
|
|
}
|
|
|
|
|
|
def test_custom_provider_extra_body_ignores_other_custom_models():
|
|
agent = SimpleNamespace(
|
|
provider="custom",
|
|
model="other-model",
|
|
base_url="https://example.test/v1",
|
|
request_overrides={},
|
|
)
|
|
|
|
_merge_custom_provider_extra_body(
|
|
agent,
|
|
[
|
|
{
|
|
"name": "gemma",
|
|
"base_url": "https://example.test/v1",
|
|
"model": "google/gemma-4-31b-it",
|
|
"extra_body": {"enable_thinking": True},
|
|
}
|
|
],
|
|
)
|
|
|
|
assert agent.request_overrides == {}
|
|
|
|
|
|
def test_named_custom_provider_extra_body_matches_provider_key():
|
|
agent = SimpleNamespace(
|
|
provider="custom:zai-coding-plan",
|
|
model="glm-5.2",
|
|
base_url="https://api.z.ai/api/coding/paas/v4",
|
|
request_overrides={},
|
|
)
|
|
|
|
_merge_custom_provider_extra_body(
|
|
agent,
|
|
[
|
|
{
|
|
"provider_key": "other-provider",
|
|
"name": "Other Provider",
|
|
"base_url": "https://api.z.ai/api/coding/paas/v4",
|
|
"model": "glm-5.2",
|
|
"extra_body": {"enable_thinking": True},
|
|
},
|
|
{
|
|
"provider_key": "zai-coding-plan",
|
|
"name": "Z.AI Coding Plan",
|
|
"base_url": "https://api.z.ai/api/coding/paas/v4/",
|
|
"model": "glm-5.2",
|
|
"extra_body": {"enable_thinking": False},
|
|
},
|
|
],
|
|
)
|
|
|
|
assert agent.request_overrides == {"extra_body": {"enable_thinking": False}}
|