| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import json
- import pytest
- from agent_lab.application.event_agent import EventAgent
- from agent_lab.application.tools import ToolDefinition, ToolRegistry
- from agent_lab.domain.events import ToolCallEvent
- @pytest.mark.asyncio
- async def test_event_agent_executes_enabled_tool_as_tool_reply_message():
- agent = EventAgent(enabled_tools=["handoff_note"])
- event = ToolCallEvent(
- id="call_1",
- name="handoff_note",
- arguments={"message": "inspect this event"},
- raw_arguments='{"message":"inspect this event"}',
- )
- reply = await agent.handle(event)
- assert reply.role == "tool"
- assert reply.tool_call_id == "call_1"
- assert reply.name == "handoff_note"
- assert json.loads(reply.content) == {
- "tool": "handoff_note",
- "message": "inspect this event",
- }
- @pytest.mark.asyncio
- async def test_event_agent_returns_registry_errors_for_disabled_and_unknown_tools():
- registry = ToolRegistry(
- [
- ToolDefinition(
- name="handoff_note",
- description="Send a note to the event agent.",
- parameters={"type": "object"},
- handler=lambda event: {"tool": event.name, "message": "handled"},
- )
- ]
- )
- disabled_reply = await EventAgent(
- enabled_tools=[],
- registry=registry,
- ).handle(
- ToolCallEvent(
- id="call_1",
- name="handoff_note",
- arguments={"message": "inspect this event"},
- raw_arguments='{"message":"inspect this event"}',
- )
- )
- unknown_reply = await EventAgent(
- enabled_tools=["missing_tool"],
- registry=registry,
- ).handle(
- ToolCallEvent(
- id="call_2",
- name="missing_tool",
- arguments={},
- raw_arguments="{}",
- )
- )
- assert json.loads(disabled_reply.content) == {
- "tool": "handoff_note",
- "error": "tool disabled",
- }
- assert json.loads(unknown_reply.content) == {
- "tool": "missing_tool",
- "error": "unknown tool",
- }
|