← Lesson
Plan and Execute
Joeven
Run
Reset
Python loads on first run
POLICY = {"window_days": 30} def lookup_order(oid): return {"id": oid, "days_ago": 12, "paid": 40} def planner(goal): return [ {"id": 1, "do": "lookup", "tool": "lookup_order"}, {"id": 2, "do": "check_window", "tool": None}, {"id": 3, "do": "decide", "tool": None}, ] def execute_plan(plan, oid): notes = {} for step in plan: if step["do"] == "lookup": notes["order"] = lookup_order(oid) elif step["do"] == "check_window": notes["ok"] = notes["order"]["days_ago"] <= POLICY["window_days"] elif step["do"] == "decide": if notes["ok"]: notes["answer"] = "approve " + str(notes["order"]["paid"]) else: notes["answer"] = "deny: outside window" print("step", step["id"], step["do"], notes.get("answer") or notes.get("ok") or notes.get("order")) return notes["answer"] print("RESULT", execute_plan(planner("refund 99"), "99"))
Run to execute this in your browser. Nothing is sent to a server.