Back to Agno

Test Log: 16_agui

cookbook/05_agent_os/16_agui/TEST_LOG.md

2.8.25.6 KB
Original Source

Test Log: 16_agui

Tested on 2026-07-24 against Agno source commit a463d3be3563d30d11d32d4f0f9dc23ccefdb4d2.

Each checked-in server was first booted on its default port 7777. The sweep asserted GET /health, GET /config, every mounted AG-UI status route, and a clean shutdown. Capability-specific POST tests then used AGENT_OS_PORT=8877 so they could run independently of concurrent phase work; the checked-in examples retain the required default port.

basic.py

Status: PASS

Test mode: LIVE

Description: Booted the minimal AG-UI server, checked /health, /config, and /status, then sent a real RunAgentInput to POST /agui.

Result: Health returned ok; config returned OS agui-basic-os, agent agui-assistant, and one AG-UI interface at the empty prefix. The SSE stream started with RUN_STARTED, ended with RUN_FINISHED, and produced the text AG-UI stream verified.


agent_with_tools.py

Status: PASS

Test mode: LIVE

Description: Exercised one Python backend tool and one client-supplied frontend tool, including the external-execution resume round trip.

Result: Health and /tools/status passed; config returned agui-tools-os and agui-tools-agent. get_weather("London") emitted TOOL_CALL_START, TOOL_CALL_RESULT, and a final answer. A request-scoped change_background schema paused without a tool result at call fc_01fa1d4aa4e1af91006a62d93d320c8191bee4a9476e4a4eba; a trailing AG-UI tool message resumed the same thread and completed with Changed the background to navy.


structured_output.py

Status: PASS

Test mode: LIVE

Description: Requested a lunar mystery through the structured-output AG-UI route and parsed the streamed model response as JSON.

Result: Health and /structured-output/status passed; config returned agui-structured-output-os and agui-script-writer. The stream completed with the title The Mare Tranquillitatis Silence and exactly the schema fields characters, genre, setting, storyline, and title.


reasoning_agent.py

Status: PASS

Test mode: LIVE

Description: Sent the bat-and-ball problem to the reasoning AG-UI route and inspected both reasoning and answer events.

Result: Health and /reasoning/status passed; config returned agui-reasoning-os and agui-reasoning-agent. The stream contained REASONING_START, REASONING_MESSAGE_START, 660 characters of reasoning content, REASONING_MESSAGE_END, and REASONING_END, followed by the correct answer that the ball costs $0.05.


agent_with_media.py

Status: PASS

Test mode: LIVE

Description: Sent a generated 64-by-64 red PNG as an inline base64 AG-UI image part to the live Gemini agent.

Result: Health and /media/status passed; config returned agui-media-os and agui-media-agent. gemini-3.5-flash received the 186-byte image and the completed event stream answered The dominant color in this image is red.


shared_state.py

Status: PASS

Test mode: LIVE

Description: Supplied initial recipe state and asked the agent to update it through update_session_state.

Result: Health and /shared-state/status passed; config returned agui-shared-state-os and agui-recipe-agent. The stream emitted an initial STATE_SNAPSHOT, a STATE_DELTA after the tool result, and a final snapshot. Delta paths included /recipe/title, two ingredient paths, and two instruction paths; the final title was Quick Tomato Soup.


human_in_the_loop.py

Status: PASS

Test mode: LIVE

Description: Asked the live agent to call the backend send_email tool, confirmed the paused requirement through a trailing AG-UI tool message, and observed the continued run.

Result: Health and /human-in-the-loop/status passed; config returned agui-hitl-os and agui-email-agent. The first stream exposed confirmation tool call fc_0555339da3dade57006a62d9a7a6388191a2c63cd5b0cebfd6 without executing it. Sending {"accepted": true} resumed the persisted run, emitted the tool result, and completed with the recipient [email protected] and subject Test Alert.


research_team.py

Status: PASS

Test mode: LIVE

Description: Asked the Team to delegate current AG-UI research to the Researcher and synthesis to the Writer.

Result: Health and /research-team/status passed; config returned agui-research-team-os and team agui-research-team. The 604-event stream included delegation and web-search tool events, member output, source links, and a final two-fact brief before RUN_FINISHED.


multiple_instances.py

Status: PASS

Test mode: LIVE

Description: Booted both interface mounts, checked both status routes, and sent one request through each prefix.

Result: Health passed; config returned agui-multiple-os, agents agui-chat-agent and agui-analyst-agent, and AG-UI routes /chat and /analyst. Both status routes returned available. /chat/agui returned a one-sentence API definition, while /analyst/agui returned three labeled points, and both streams closed with RUN_FINISHED.


Validation

  • All 9 standalone files booted, exposed their expected /status route, and shut down cleanly.
  • All 9 files completed a real capability-specific AG-UI POST flow.
  • Recursive pattern validation checked exactly 9 Python files with 0 violations.
  • Targeted Ruff format and check passed.
  • Python compilation, banned-model, stale-route, scope, Unicode/emoji, non-PASS status, and git diff --check gates passed.
  • The legacy cookbook/05_agent_os/interfaces/agui/ implementation was fully consumed or deleted; no listener or generated bytecode was left behind.