agent-ops-patterns / gallery / agno map / how it decides

How agno decides

In an ordinary agno agent, the AI model decides at every turn whether to call tools or answer, and plain code runs every tool call it asks for without asking a person unless the developer marked that tool. The run ends when the model replies without asking for a tool, and by default nothing checks that answer, so even a reply cut off by the token limit is reported as completed.

From agno-agi/agno at source version 9153aacd, mapped 2026-10-29. Each answer links the code where that decision is made.

What it does without asking you

How it decides it is done

Limits and memory

Other judgments

Three problems in the code

  1. 1. A reply cut off by the token limit is reported as completed

    The run ends as soon as the model replies without asking for a tool, and the shared run loop does not look at why the model stopped (some provider adapters only log a warning). So an answer cut short by the output-token limit, or refused, comes back as the answer with the run marked completed, and the caller cannot tell it from a finished one. An open pull request proposes reporting the provider's stop reason.

    Reported; a fix is proposed, not merged (#8630), checked 2026-11-01.

    Where: base.py:873-874, _run.py:665. How we checked: the code was re-read at the source version named above; the sentences were checked by an independent AI reviewer from another company (OpenAI Codex, read-only) on 2026-11-01; every sentence it found too wide was rewritten or removed, and every rewrite was checked again.

  2. 2. A structured answer that does not parse still counts as success

    When the developer asks for a structured answer and the model's text cannot be turned into it, agno keeps the raw text, logs a warning, and still marks the run completed. Code that expects the structured object gets plain text instead unless it checks the type itself. An open pull request proposes an opt-in way to report the failure.

    Reported; a fix is proposed, not merged (#10782), checked 2026-11-01.

    Where: _response.py:922-936, _run.py:665. How we checked: the code was re-read at the source version named above; the sentences were checked by an independent AI reviewer from another company (OpenAI Codex, read-only) on 2026-11-01; every sentence it found too wide was rewritten or removed, and every rewrite was checked again.

  3. 3. Later workflow steps can lose the user's original request

    From the second step of a workflow on, an agent or team step receives only the previous step's output, not what the user first asked; the original request reaches it only when the previous step produced nothing. The function's own description says it combines the two, so a step can end up working without the user's question in front of it.

    Not reported upstream, checked 2026-11-01.

    Where: step.py:2727-2737. How we checked: the code was re-read at the source version named above; the sentences were checked by an independent AI reviewer from another company (OpenAI Codex, read-only) on 2026-11-01; every sentence it found too wide was rewritten or removed, and every rewrite was checked again.

See the full map →

This card was taken from the published map of agno at one commit and covers only decisions shown there; it did not look at AgentOS, the server that runs agents, or at provider adapters beyond those the map names, and no agno code was run to make it.

Map: edition with 3 of 118 cards left out (published 2026-10-30) · taken from the full map · card data: gallery/cards/agno.json. Found something wrong? Use the correction form.