mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
test(kimi): cover api.moonshot.cn direct-call regressions\n\n- add run_agent coverage for the Moonshot China endpoint\n- add sync/async trajectory compressor coverage for api.moonshot.cn
This commit is contained in:
parent
9b60ffc47f
commit
e485bc60cd
3 changed files with 63 additions and 0 deletions
|
|
@ -928,6 +928,16 @@ class TestBuildApiKwargs:
|
||||||
|
|
||||||
assert kwargs["temperature"] == 1.0
|
assert kwargs["temperature"] == 1.0
|
||||||
|
|
||||||
|
def test_public_moonshot_cn_kimi_k2_5_forces_temperature_1(self, agent):
|
||||||
|
agent.base_url = "https://api.moonshot.cn/v1"
|
||||||
|
agent._base_url_lower = agent.base_url.lower()
|
||||||
|
agent.model = "kimi-k2.5"
|
||||||
|
messages = [{"role": "user", "content": "hi"}]
|
||||||
|
|
||||||
|
kwargs = agent._build_api_kwargs(messages)
|
||||||
|
|
||||||
|
assert kwargs["temperature"] == 1.0
|
||||||
|
|
||||||
def test_kimi_coding_endpoint_keeps_kimi_k2_5_at_0_6(self, agent):
|
def test_kimi_coding_endpoint_keeps_kimi_k2_5_at_0_6(self, agent):
|
||||||
agent.base_url = "https://api.kimi.com/coding/v1"
|
agent.base_url = "https://api.kimi.com/coding/v1"
|
||||||
agent._base_url_lower = agent.base_url.lower()
|
agent._base_url_lower = agent.base_url.lower()
|
||||||
|
|
|
||||||
|
|
@ -78,6 +78,30 @@ def test_generate_summary_public_moonshot_kimi_k2_5_forces_temperature_1():
|
||||||
assert compressor.client.chat.completions.create.call_args.kwargs["temperature"] == 1.0
|
assert compressor.client.chat.completions.create.call_args.kwargs["temperature"] == 1.0
|
||||||
|
|
||||||
|
|
||||||
|
def test_generate_summary_public_moonshot_cn_kimi_k2_5_forces_temperature_1():
|
||||||
|
config = CompressionConfig(
|
||||||
|
summarization_model="kimi-k2.5",
|
||||||
|
base_url="https://api.moonshot.cn/v1",
|
||||||
|
temperature=0.3,
|
||||||
|
summary_target_tokens=100,
|
||||||
|
max_retries=1,
|
||||||
|
)
|
||||||
|
compressor = TrajectoryCompressor.__new__(TrajectoryCompressor)
|
||||||
|
compressor.config = config
|
||||||
|
compressor.logger = MagicMock()
|
||||||
|
compressor._use_call_llm = False
|
||||||
|
compressor.client = MagicMock()
|
||||||
|
compressor.client.chat.completions.create.return_value = SimpleNamespace(
|
||||||
|
choices=[SimpleNamespace(message=SimpleNamespace(content="[CONTEXT SUMMARY]: summary"))]
|
||||||
|
)
|
||||||
|
|
||||||
|
metrics = TrajectoryMetrics()
|
||||||
|
result = compressor._generate_summary("tool output", metrics)
|
||||||
|
|
||||||
|
assert result.startswith("[CONTEXT SUMMARY]:")
|
||||||
|
assert compressor.client.chat.completions.create.call_args.kwargs["temperature"] == 1.0
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# CompressionConfig
|
# CompressionConfig
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -169,3 +169,32 @@ async def test_generate_summary_async_public_moonshot_kimi_k2_5_forces_temperatu
|
||||||
|
|
||||||
assert result.startswith("[CONTEXT SUMMARY]:")
|
assert result.startswith("[CONTEXT SUMMARY]:")
|
||||||
assert async_client.chat.completions.create.call_args.kwargs["temperature"] == 1.0
|
assert async_client.chat.completions.create.call_args.kwargs["temperature"] == 1.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
async def test_generate_summary_async_public_moonshot_cn_kimi_k2_5_forces_temperature_1():
|
||||||
|
from trajectory_compressor import CompressionConfig, TrajectoryCompressor, TrajectoryMetrics
|
||||||
|
|
||||||
|
config = CompressionConfig(
|
||||||
|
summarization_model="kimi-k2.5",
|
||||||
|
base_url="https://api.moonshot.cn/v1",
|
||||||
|
temperature=0.3,
|
||||||
|
summary_target_tokens=100,
|
||||||
|
max_retries=1,
|
||||||
|
)
|
||||||
|
compressor = TrajectoryCompressor.__new__(TrajectoryCompressor)
|
||||||
|
compressor.config = config
|
||||||
|
compressor.logger = MagicMock()
|
||||||
|
compressor._use_call_llm = False
|
||||||
|
async_client = MagicMock()
|
||||||
|
async_client.chat.completions.create = MagicMock(return_value=SimpleNamespace(
|
||||||
|
choices=[SimpleNamespace(message=SimpleNamespace(content="[CONTEXT SUMMARY]: summary"))]
|
||||||
|
))
|
||||||
|
compressor._get_async_client = MagicMock(return_value=async_client)
|
||||||
|
|
||||||
|
metrics = TrajectoryMetrics()
|
||||||
|
result = await compressor._generate_summary_async("tool output", metrics)
|
||||||
|
|
||||||
|
assert result.startswith("[CONTEXT SUMMARY]:")
|
||||||
|
assert async_client.chat.completions.create.call_args.kwargs["temperature"] == 1.0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue