@@ -181,7 +181,56 @@ for event in client.observe(intent["intent_id"]):
181181
182182---
183183
184- ## Approvals and Human-in-the-Loop
184+ ## Human-in-the-Loop (8 Task Types)
185+
186+ AXME supports 8 human task types. Each pauses the workflow and notifies a human via email with a link to a web task page.
187+
188+ | Task type | Use case | Default outcomes |
189+ | -----------| ----------| -----------------|
190+ | ` approval ` | Approve or reject a request | approved, rejected |
191+ | ` confirmation ` | Confirm a real-world action completed | confirmed, denied |
192+ | ` review ` | Review content with multiple outcomes | approved, changes_requested, rejected |
193+ | ` assignment ` | Assign work to a person or team | assigned, declined |
194+ | ` form ` | Collect structured data via form fields | submitted |
195+ | ` clarification ` | Request clarification (comment required) | provided, declined |
196+ | ` manual_action ` | Physical task completion (evidence required) | completed, failed |
197+ | ` override ` | Override a policy gate (comment required) | override_approved, rejected |
198+
199+ ``` python
200+ # Create an intent with a human task step
201+ result = client.create_intent(
202+ intent_type = " intent.budget.approval.v1" ,
203+ to_agent = " agent://agent_core" ,
204+ payload = {" amount" : 32000 , " department" : " engineering" },
205+ human_task = {
206+ " title" : " Approve Q3 budget" ,
207+ " description" : " Review and approve the Q3 infrastructure budget." ,
208+ " task_type" : " approval" ,
209+ " notify_email" : " approver@example.com" ,
210+ " allowed_outcomes" : [" approved" , " rejected" ],
211+ },
212+ )
213+ ```
214+
215+ Task types with forms use ` form_schema ` to define required fields:
216+
217+ ``` python
218+ human_task= {
219+ " title" : " Assign incident commander" ,
220+ " task_type" : " assignment" ,
221+ " notify_email" : " oncall@example.com" ,
222+ " form_schema" : {
223+ " type" : " object" ,
224+ " required" : [" assignee" ],
225+ " properties" : {
226+ " assignee" : {" type" : " string" , " title" : " Commander name" },
227+ " priority" : {" type" : " string" , " enum" : [" P1" , " P2" , " P3" ]},
228+ },
229+ },
230+ }
231+ ```
232+
233+ ### Programmatic approvals (inbox API)
185234
186235``` python
187236# Fetch pending approvals for an agent
@@ -191,7 +240,6 @@ for item in pending.get("items", []):
191240 thread_id = item.get(" thread_id" )
192241 if not thread_id:
193242 continue
194- # Approve the inbox thread with a note
195243 client.approve_inbox_thread(
196244 thread_id,
197245 {" note" : " LGTM" },
0 commit comments