Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Build a small agent WITHOUT a framework so you understand the primitives. Define 2-3 TOOLS (each with a name, a clear description, and a JSON parameter schema) — e.g. a calculator, a web/search lookup, a date helper. Implement the agent LOOP: send the goal + tools to an LLM, execute any tool calls it returns, feed the results back into the conversation (the assistant tool-call turn before each tool result), and repeat until the model answers — with a stopping condition AND a max-iteration cap. Pick a task that genuinely needs more than one tool call. Print the full trace of decisions.
A real reason-act-observe loop: tool calls executed, results fed back (assistant turn before each result), stopping condition + iteration cap; no infinite loop.
Tools have clear names/descriptions/JSON schemas; the model uses them correctly; errors returned to the model.
Built on raw API calls (not a heavy framework) so the primitives are understood; trace printed.
The chosen task genuinely needs multiple tool calls (not solvable by a single prompt).
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# A tool-using agent loop from scratch ## Goal Build a small agent WITHOUT a framework so you understand the primitives. Define 2-3 TOOLS (each with a name, a clear description, and a JSON parameter schema) — e.g. a calculator, a web/search lookup, a date helper. Implement the agent LOOP: send the goal + tools to an LLM, execute any tool calls it returns, feed the results back into the conversation (the assistant tool-call turn before each tool result), and repeat until the model answers — with a stopping condition AND a max-iteration cap. Pick a task that genuinely needs more than one tool call. Print the full trace of decisions. ## Acceptance criteria - [ ] Loop correctness: A real reason-act-observe loop: tool calls executed, results fed back (assistant turn before each result), stopping condition + iteration cap; no infinite loop. - [ ] Tool design: Tools have clear names/descriptions/JSON schemas; the model uses them correctly; errors returned to the model. - [ ] From scratch: Built on raw API calls (not a heavy framework) so the primitives are understood; trace printed. - [ ] Right task: The chosen task genuinely needs multiple tool calls (not solvable by a single prompt). ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.