Back to Workshops
Workshop Free

Building a Coding Agent: Python/Django Edition

August 14, 2025 Alexey Grigorev
ai-agents coding-agents django python llm-engineering

A newer, combined version of this workshop is available: Coding Agent with Skills.

We build a small project bootstrapper for Django: a coding agent that takes a plain-language app request, copies a working Django template, reads and writes files through tools, and iterates until the generated app runs. The first implementation uses the OpenAI Responses API through ToyAIKit, then we try the same idea with OpenAI Agents SDK, PydanticAI, Anthropic, and Z.AI.

Links

The main resources:

The app you will build

The coding agent is a notebook-based chat interface backed by an LLM and a small set of filesystem tools. You give it a request like to-do list. The agent edits a copied Django template and leaves you with a project you can run.

flowchart LR USER["You<br/>short app request"] CHAT["Jupyter chat UI<br/>ToyAIKit"] RUNNER["Agent runner<br/>Responses API or framework"] TOOLS["AgentTools<br/>read, write, tree, grep, bash"] DJANGO["Copied Django template<br/>project folder"] LLM["LLM provider<br/>OpenAI, Anthropic, Z.AI"] USER -->|type request| CHAT CHAT --> RUNNER RUNNER -->|tool calls| TOOLS TOOLS -->|modify files| DJANGO RUNNER -->|messages and tools| LLM DJANGO -->|make run| USER

Two screenshots show what the finished workshop output looks like. The first one shows the notebook chat after the agent plans and starts calling file tools:

Coding agent chat

The second one shows one of the generated Django todo apps:

Generated todo app

Result

The simplest version is intentionally small. It runs in Jupyter, uses local filesystem tools, and edits one copied Django project folder. That is enough to understand how larger coding agents work under the hood: prepare a template, expose the right tools, give the model precise instructions, and iterate on the generated code.