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:
kshitijk4poor 2026-04-20 12:49:31 +05:30 committed by Teknium
parent 9b60ffc47f
commit e485bc60cd
3 changed files with 63 additions and 0 deletions

View file

@ -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()

View file

@ -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
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------

View file

@ -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