How robyvn/k5-l3-day4-nguyenngochieu-2a202603502-reactloopagent works
This repository is a Python learning lab for building a status-investigation agent. Its intended user workflow is to submit a question through the CLI, let an LLM request status tools, and return a sourced answer; the agent loop is currently an unimplemented exercise. Users can also run evaluation cases that grade answers and traces, and optionally investigate five providers with paginated incident details. The graph reflects documented and excerpted relationships; the main loop’s runtime calls are described in the README but not implemented in the sampled agent source.
Main entry points: run_evals.py Eval Runner · tools.py Bonus Tools · status_tools.py Status Tools · run.py Run CLI
Components 15
User Interface
- Run CLI
run.py
Agent Runtime
- Agent Loop
agent.py - LLM Adapter
providers.py
Status Investigation
- Status Tools
status_tools.py - Core Snapshots
fixtures - Bonus Tools
bonus/tools.py - Bonus Snapshots
bonus/fixtures
Evaluation
- Eval Runner
evals/run_evals.py - Eval Scenarios
evals/scenarios.py - LLM Grader
evals/grading.py - Eval Cases
evals/cases.json - Bonus Cases
bonus/cases.json
Other components
- User
- LLM API
- Status APIs
Connections 24
- User → Run CLI: asks
README.md - Run CLI → Agent Loop: runs
run.py - Run CLI → LLM Adapter: configures
run.py - Run CLI → Status Tools: selects
run.py - Run CLI → Bonus Tools: optionally selects
run.py - Agent Loop → LLM Adapter: requests completion
README.md - Agent Loop → Status Tools: executes tools
README.md - Agent Loop → Bonus Tools: optionally executes
README.md - LLM Adapter → LLM API: sends requests
providers.py - Status Tools → Core Snapshots: reads snapshots
status_tools.py - Status Tools → Status APIs: fetches live data
status_tools.py - Bonus Tools → Core Snapshots: reads core snapshots
bonus/tools.py - Bonus Tools → Bonus Snapshots: reads bonus snapshots
bonus/tools.py - Bonus Tools → Status APIs: fetches live data
bonus/tools.py - Bonus Tools → Status Tools: uses schema
bonus/tools.py - User → Eval Runner: runs evals
README.md - Eval Runner → Eval Cases: loads cases
evals/run_evals.py - Eval Runner → Bonus Cases: optionally loads
evals/run_evals.py - Eval Runner → Agent Loop: runs cases
evals/run_evals.py - Eval Runner → LLM Adapter: configures models
evals/run_evals.py - Eval Runner → Eval Scenarios: selects tools
evals/run_evals.py - Eval Scenarios → Status Tools: delegates
evals/scenarios.py - Eval Runner → LLM Grader: grades results
evals/run_evals.py - LLM Grader → LLM Adapter: requests judge completion
evals/grading.py