A hands-on PlatformCon workshop.
In 60 minutes, you'll build "PizzaOps", an agent that feeds the on-call team during a long incident and is never allowed to order pineapple. Everything runs on the free Orkes Conductor Developer Edition.
| File | Used in |
|---|---|
lab1.json |
Lab 1: the workflow definition |
pizza_data.py |
Labs 2–4: mock incident, team and restaurant data |
lab2.py |
Lab 2: PizzaOps as an agent |
lab3.py |
Lab 3: PizzaOps with a guardrail |
lab4.py |
Lab 4: PizzaOps as a LangGraph agent |
- Sign up at developer.orkescloud.com.
- Access Control → Applications → + Create application named
pizzaops-workshop, roles Worker and Admin. Create an access key and copy the ID and secret. - Integrations → + New integration → Anthropic, name it
anthropic, paste an API key, then + Add modelclaude-haiku-5-5. - Clone this repo and set up your environment:
git clone <repo-url> pizzaops-workshop && cd pizzaops-workshop
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
export CONDUCTOR_SERVER_URL=https://developer.orkescloud.com/api
export CONDUCTOR_AUTH_KEY=<your_key_id>
export CONDUCTOR_AUTH_SECRET=<your_key_secret>No AI and no code: a workflow with one decision and two built-in tasks.
- In the UI, go to Definitions → Workflow → + Define workflow, open the Code tab, paste the contents of
lab1.jsonand save. - Open the Run tab and run it with
{"hours_running": 3}, then with{"hours_running": 1}. Open each execution under Executions to see which path ran.
lab2.py defines PizzaOps: an agent with four read-only tools over pizza_data.py that plans an order for the team.
- Run it:
python lab2.py- Open the run under Executions: each LLM turn and tool call is its own task. Share your agent's order in the chat and compare.
lab3.py is lab2.py plus a place_order tool with a regex guardrail that blocks pineapple. Its agent is named pizzaops_guardrail. Run diff lab2.py lab3.py to see the changes.
- Run it. PizzaOps plans and places the order:
python lab3.py "Feed the on-call team for INC-1042."- Try to sneak in pineapple. The guardrail stops the order and the run fails; open it under Executions to see why:
python lab3.py "Feed INC-1042. Sam wants a Hawaiian from Crust Issues."lab4.py is a standard LangGraph agent with the same tools. Only its last three lines are Conductor-specific.
python lab4.pyOpen the run under Executions and compare it with Lab 2's.
| Symptom | Fix |
|---|---|
Connection refused to localhost:8080 |
Run the three export CONDUCTOR_... lines in this terminal |
| Model or provider not found | Integration named anthropic, model claude-haiku-5-5 active |
ImportError on conductor.ai.agents |
pip install -U -r requirements.txt |
ChatAnthropic wants an API key |
Export a placeholder ANTHROPIC_API_KEY |