Files
opensquilla--opensquilla/tests/functional/test_live_agent_context_boundary_e2e.py
2026-07-13 13:12:33 +08:00

74 lines
2.2 KiB
Python

"""Opt-in live agent context-boundary smoke.
This test uses public synthetic text only and skips unless explicitly enabled
with local credentials.
"""
from __future__ import annotations
import os
import pytest
from opensquilla.engine import Agent, AgentConfig
from opensquilla.provider import Message
from opensquilla.provider.openai import OpenAIProvider
pytestmark = [pytest.mark.llm, pytest.mark.llm_smoke, pytest.mark.agent_context_boundary]
_EXPECTED_TOKEN = "opensquilla-agent-boundary-live-ok"
_INTERNAL_MARKERS = (
"opensquilla_compacted",
"tool_use_argument_projection",
"provider_request_compacted",
"invalid_provider_context_projection",
)
@pytest.mark.asyncio
async def test_live_openrouter_agent_boundary_smoke() -> None:
if os.environ.get("OPENSQUILLA_AGENT_CONTEXT_BOUNDARY_LIVE") != "1":
pytest.skip("set OPENSQUILLA_AGENT_CONTEXT_BOUNDARY_LIVE=1 to run live smoke")
api_key = os.environ.get("OPENROUTER_API_KEY")
if not api_key:
pytest.skip("OPENROUTER_API_KEY not set")
provider = OpenAIProvider(
api_key=api_key,
model=os.environ.get("LLM_TEST_MODEL", "openai/gpt-4o-mini"),
base_url=os.environ.get("OPENROUTER_BASE_URL", "https://openrouter.ai/api/v1"),
provider_kind="openrouter",
)
agent = Agent(
provider=provider,
config=AgentConfig(
context_window_tokens=200_000,
max_tokens=64,
provider_request_proof_max_chars=8_000,
flush_enabled=False,
max_iterations=1,
request_timeout=45.0,
),
)
agent.set_history(
[
Message(
role="user",
content="Public dummy archive context.\n" + ("alpha beta gamma\n" * 2000),
),
Message(
role="assistant",
content="Public dummy previous answer.\n" + ("delta epsilon\n" * 2000),
),
]
)
events = [
event
async for event in agent.run_turn(f"Reply with exactly {_EXPECTED_TOKEN}.")
]
text = "\n".join(str(getattr(event, "text", "")) for event in events).lower()
assert _EXPECTED_TOKEN in text
assert not any(marker in text for marker in _INTERNAL_MARKERS)