test_compact_command.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import pytest
  2. from agency_swarm import Agent
  3. from agency_swarm.ui.demos.launcher import TerminalDemoLauncher
  4. from agency_swarm.utils.thread import ThreadManager
  5. class _Resp:
  6. output_text = "integration summary"
  7. class _Responses:
  8. def create(self, **kwargs):
  9. return _Resp()
  10. class _Client:
  11. responses = _Responses()
  12. class _Agency:
  13. def __init__(self) -> None:
  14. agent = Agent(name="Coordinator", instructions="test")
  15. agent._openai_client_sync = _Client()
  16. self.entry_points = [agent]
  17. self.thread_manager = ThreadManager()
  18. self.thread_manager.add_message({"role": "user", "content": "hello"})
  19. self.thread_manager.add_message({"role": "assistant", "agent": "Coordinator", "content": "hi"})
  20. @pytest.mark.asyncio
  21. async def test_compact_integration_minimal():
  22. agency = _Agency()
  23. TerminalDemoLauncher.set_current_chat_id("chat_integration_original")
  24. chat_id = await TerminalDemoLauncher.compact_thread(agency, [])
  25. assert chat_id.startswith("run_demo_chat_")
  26. msgs = agency.thread_manager.get_all_messages()
  27. assert len(msgs) == 1
  28. sys_msg = msgs[0]
  29. assert sys_msg["role"] == "system" and sys_msg["content"].startswith("System summary (generated via /compact")
  30. content = sys_msg["content"].lower()
  31. assert "rs_" not in content
  32. assert "msg_" not in content
  33. assert "agent_run_" not in content
  34. assert "parent_run_id" not in content
  35. assert "call_id" not in content