Agent Design Workshop is a Streamlit demo that helps people understand how AI agents work internally.
It is a glass-box teaching tool, not a production assistant. The goal is to make planning, execution, memory, tools, validation, policy checks, approval gates, and failure handling visible. Instead of hiding the internal logic behind a chat interface, the app exposes the workflow step by step so students can see how an agent system reasons about a task.
This version is not connected to a live LLM. The behavior is driven by structured demo cases and local datasets so the experience stays predictable, inspectable, and easy to teach. That makes it useful for workshops, classroom demos, design reviews, and internal training sessions where the point is to understand agent architecture rather than to optimize model performance.
The app is designed as a live walkthrough of how an agent system can behave when it receives a user request such as scheduling a meeting.
It demonstrates:
- how a raw user request is turned into structured data
- how a planning loop builds and revises a plan
- how tool selection depends on workflow availability and risk
- how temporary state evolves during execution
- how central memory differs from task-scoped memory
- how validation differs from policy
- how high-risk actions require human approval
- how outputs can fail, retry, pause, or wait for user input
- how an agent system can be observable and auditable
The emphasis is on decisions and looping. The user does not just see the final answer. The user can click through each stage and inspect what changed, what was skipped, what was blocked, and why.
Most chatbot demos compress everything into one interaction: prompt in, answer out.
This workshop does the opposite. It treats the agent as a system composed of:
- planning
- workflow decisions
- tools
- memory
- quality checks
- policy and guardrails
- human approval
- execution state
- logs and traces
That makes it easier to teach a more realistic mental model of modern agent design.
The app uses a persistent chat panel on the left and a debugger-style teaching surface on the right.
The main tabs are:
Planning StatusExecutionDatasetMemoryToolsQuality ChecksPolicy / GuardrailsGraph LayerLogs / Trace
These tabs make the internal layers visible without requiring students to read code first.
The current implementation uses hard-coded scenario files and local data instead of a live model backend.
At a high level:
- A user enters a request in chat.
- The system moves through a staged planning flow.
- The user clicks
Next stepto reveal each internal transition. - The plan is reviewed against available tools, rules, and memory.
- Once planning is approved, execution begins.
- Each execution step updates task state, memory, and logs.
- Wait states such as
Wait for answerandWait for approvalare handled explicitly.
This design keeps the workshop deterministic enough for teaching while still feeling like a real agent debugger.
This project is meant to help people answer questions like:
- What is the difference between a tool and a workflow?
- When should the system ask the user instead of acting?
- What belongs in short-lived memory versus durable memory?
- Why is a plan revised before execution?
- What should happen when a tool fails or returns incomplete output?
- Why should approval be explicit for high-risk actions?
- How do we know what the system did and why?
In short, it teaches agent design as systems design.
Although this repo is a teaching demo, it is intentionally framed around patterns that matter in enterprise agent systems.
The system breaks work into explicit, named steps rather than allowing an opaque end-to-end jump from request to action. That supports inspection, replay, and controlled orchestration.
The flow is designed to help the user and pause often. It asks clarifying questions, waits for answers, and gates risky actions instead of assuming the system should act independently.
Read-only steps, draft-creation steps, and high-risk send steps are treated differently. This reinforces the principle that not all tools should have the same authority.
Even though this is a demo, the design treats checks, review logic, and outcome quality as part of the system rather than as an afterthought.
The app exposes plan state, tool usage, memory, checks, and trace events. A user can inspect the workflow instead of trusting a black box.
The workflow models retry, wait, skip, fail, block, and approval states directly. Failures are not hidden. They are part of the teaching surface.
The app distinguishes between task-scoped memory and central memory. This helps explain why some facts should change during a run while others should remain durable and curated.
Outputs are tied back to the tool, dataset, rule, or user reply that produced them. The point is to show where information came from and why it should be trusted.
The workflow requires explicit approval before send-like actions. This models a practical human-in-the-loop control point.
Validation and policy are separated on purpose. Something can be structurally valid but still blocked by policy. That distinction matters in real organizations.
The demo uses stepwise execution and local structured data so each stage is small, inspectable, and cheap to run. This also helps teach why not every problem should trigger a large autonomous loop.
The user controls progression. The system does not race ahead invisibly. That makes the demo easier to understand and reflects a safer design pattern for sensitive workflows.
The workshop models plan revision explicitly. Plans are reviewed, changed, and approved before execution, which mirrors the discipline needed in robust operational systems.
This is not a production agent framework.
It does not:
- connect to real Gmail, Calendar, Slack, or external APIs
- rely on a live LLM for reasoning
- manage enterprise auth, tenancy, or access control
- provide production-grade persistence or scale guarantees
- replace formal observability or governance infrastructure
That limitation is intentional. The workshop is optimized for clarity, not for deployment scale.
/Users/lfinger/Lutz_Dev/Workshop-Agents/app.py— main Streamlit app/Users/lfinger/Lutz_Dev/Workshop-Agents/cases/— hard-coded demo scenarios in markdown/Users/lfinger/Lutz_Dev/Workshop-Agents/datasets/contacts.json— local demo dataset/Users/lfinger/Lutz_Dev/Workshop-Agents/requirements.txt— minimal dependency list
Create and activate a virtual environment if needed, then install the dependency and run Streamlit:
cd /Users/lfinger/Lutz_Dev/Workshop-Agents
pip install -r requirements.txt
streamlit run app.pyThen open the local URL shown by Streamlit, usually:
For a short workshop, a good sequence is:
- Enter a simple request in chat.
- Walk through planning one click at a time.
- Compare the plan against tools and rules.
- Move into execution and inspect task memory changes.
- Show a wait state such as user input or approval.
- Highlight how policy, validation, and logs differ.
That gives students a usable mental model of agent architecture in one session.
This repo exists to answer a practical question:
How does an AI agent actually work when we make its internal system visible?
The answer is not just “it calls an LLM.” A useful agent depends on workflow structure, memory boundaries, tool design, approvals, validations, fallbacks, and observability. This workshop is a compact demo of those ideas.