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

For a newer, combined take, see Coding Agent with Skills.

We build a small project bootstrapper for Django, a coding agent that takes a plain-language app request and copies a working Django template. From there it reads and writes files through tools, iterating until the generated app runs. The first version 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

You chat with the coding agent in a notebook. It's backed by an LLM and a small set of filesystem tools. You give it a request like to-do list, and the agent edits a copied Django template and leaves you with a project you can run.

flowchart LR USER["You short app request"] CHAT["Jupyter chat UI ToyAIKit"] RUNNER["Agent runner Responses API or framework"] TOOLS["AgentTools read, write, tree, grep, bash"] DJANGO["Copied Django template project folder"] LLM["LLM provider 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's enough to understand how larger coding agents work under the hood.

The same four steps scale to any size of agent:

  • Prepare a template.
  • Expose the right tools.
  • Give the model precise instructions.
  • Iterate on the generated code.