CHECKS OF AGNO AGENTS
krueng.ai/agno_agents.html
The page says which Python library it chose and why, what each of its files printed,
how many tokens each run used, and where a small AI model gets a job wrong. None of
that was typed in from memory. Each part was printed by a file of the page or by a
script in this folder, and each output is saved as a *_output.txt file. The page
shows those files. Run them again and compare.
WHAT YOU NEED
1. Python 3.10 or newer, and a Python of the page's own:
python -m venv venv
venv\Scripts\python -m pip install agno ollama openai "sqlalchemy[asyncio]" aiosqlite "fastapi[standard]" requests
venv\Scripts\python -m pip install ddgs only for research.py, the last tutorial
On a Mac or Linux the second command begins with venv/bin/python. The page says
why openai and the SQLAlchemy extras are in that list.
2. Ollama, from ollama.com, running, with the two models the page uses:
ollama pull qwen2.5:3b 1.9 GB, the employees
ollama pull qwen2.5:14b 9.0 GB, the boss
No account, no key and no money are needed. Nothing leaves your computer except
in candidates.py, which asks GitHub and the Python Package Index for public numbers,
and in research.py, which sends its searches to public search engines.
3. The page's files in one folder (every code block on the page has a Download
button), and these scripts in a folder named "checks" inside it:
your folder/
hello.py cashier.py shop.py order.py team.py approve.py
budget.py runs.py serve.py client.py research.py paper.txt
checks/
README.txt own_words.py hook_trap.py leaders.py candidates.py
Run the page's files from your folder, and these scripts from the checks folder.
Each side keeps its own shop.db. Delete shop.db to start the books again.
THE SCRIPTS
candidates.py needs the internet, and any Python
Stars, licence, last change and newest version of eight Python libraries for
teams of agents, asked of GitHub and the Python Package Index. A few seconds.
-> candidates_output.txt
own_words.py needs the small model
A cashier whose model writes the reply itself, given the three messages of
order.py. For each: what the tool returned, what the cashier said, and whether
they agree. It is the reason shop.py marks its bill tool stop_after_tool_call.
-> own_words_output.txt
hook_trap.py needs the small model
Two hooks that always refuse, one raising StopAgentRun and one raising
InputCheckError, and what the run did in each case.
-> hook_trap_output.txt
leaders.py needs both models
The shop's team with the small model as the boss, then with the big one, on the
same six questions. Counts how often the boss chose the right employee. On our
laptop, with no graphics card, the big model's half takes a few minutes.
-> leaders_output.txt
page_config.py is not a check. It tells the site's own tools which files to run and
which words of the outputs the page quotes.
WHAT WE RAN, AND WHEN
Everything was run on 10 October 2026 on one laptop: Windows 11, an Intel Core Ultra 7
155H with 24 GB of memory and no graphics card the models could use, Python 3.12.10,
agno 3.1.2 and Ollama with qwen2.5:3b and qwen2.5:14b. timings.txt, beside the page's
files, has the seconds each file took.
THINGS TO KNOW
- A model's words can differ from ours. The models run at temperature 0, which makes
them repeat themselves on one computer, but another computer, or another version of
Ollama or of the model, can give other words.
- The sums cannot differ. They are done by Python, in the functions bill and
cooking_time, and the page's point is that this is where sums belong.
- Token counts should be close to ours, and times will not be: ours are from a
processor with no graphics card.