Throughout this course, you have built a complete REST API that launches, pauses, resumes, and collaborates with AI agents. You implemented persistent storage, lifecycle control, and human-in-the-loop workflows. In this final lesson, you will see all that work pay off by connecting a web-based user interface to your existing API — without changing a single line of backend code.
This demonstrates Factor 11 (Trigger from anywhere, meet users where they are). The principle states that well-designed agent APIs should work with any client interface. Whether your users prefer a command-line tool, a mobile app, a Slack bot, or a web dashboard, the same agent logic serves them all. You will watch a web UI solve a practical problem by calling the exact endpoints you have already built.
Before diving into the demonstration, let's review the complete 12-Factor Agents methodology. These principles guided every decision you made throughout this journey:
Throughout this learning path, you have implemented all twelve factors of the 12-Factor Agents methodology.
Now let's see everything you've built in action. We've created a simple web client that interacts with your REST API through the same endpoints you've been using all along. No special backend code. No modifications to your infrastructure. Just a clean, user-friendly interface calling the /agent/launch, /agent/state/{id}, /agent/pause, /agent/resume, and /agent/provide_input endpoints you designed.
Watch as this client sends a real garden-planning problem to your agent:
In this demonstration, you'll see the complete workflow unfold: the agent launches with a prompt about planning a rectangular garden bed. As it processes the problem, it realizes it needs additional information and invokes the ask_human tool, which automatically pauses the workflow. The web UI displays the agent's question to the user. The user provides the missing information, and the existing agent run resumes execution with that data. During processing, we demonstrate the pause/resume capability by manually pausing the execution mid-workflow using the /agent/pause endpoint, showing that you have complete control over agent execution at any moment. We then call the /agent/resume endpoint to continue execution, and the agent completes its work, with the final result appearing in the UI. From the agent's perspective, it doesn't matter whether the request came from a web browser, a Python script, or a mobile app. The API treats every client the same way.
Congratulations on completing this course! You have built a production-ready system for exposing AI agents through simple APIs. From FastAPI endpoints and SQLite persistence to pause/resume lifecycle control and human-in-the-loop collaboration, you now have a complete toolkit for creating agent systems that are flexible, testable, and maintainable.
In the following exercise, you will have the opportunity to try your own agent using this same web client. You'll launch a prompt, watch your agent process it, respond to any questions it asks, and see how each of the 12 factors you've learned about made this seamless experience possible. You've proven that when you own your prompts, your context window, and your control flow — when you build APIs thoughtfully and track state explicitly — you can create agent systems that work with any interface your users prefer.
