This commit is contained in:
bracesproul
2025-01-14 10:39:57 -08:00
parent b52b32b38e
commit 0d50c62283
+31 -11
View File
@@ -13,10 +13,10 @@ class HumanInterruptConfig(TypedDict):
This controls the available interaction options when the graph is paused for human input.
Attributes:
allow_ignore (bool): Whether the human can choose to ignore/skip the current step
allow_respond (bool): Whether the human can provide a text response/feedback
allow_edit (bool): Whether the human can edit the provided content/state
allow_accept (bool): Whether the human can accept/approve the current state
allow_ignore: Whether the human can choose to ignore/skip the current step
allow_respond: Whether the human can provide a text response/feedback
allow_edit: Whether the human can edit the provided content/state
allow_accept: Whether the human can accept/approve the current state
"""
allow_ignore: bool
@@ -31,8 +31,8 @@ class ActionRequest(TypedDict):
Contains the action type and any associated arguments needed for the action.
Attributes:
action (str): The type or name of action being requested (e.g., "Approve XYZ action")
args (dict): Key-value pairs of arguments needed for the action
action: The type or name of action being requested (e.g., "Approve XYZ action")
args: Key-value pairs of arguments needed for the action
"""
action: str
@@ -45,9 +45,29 @@ class HumanInterrupt(TypedDict):
This is passed to the `interrupt` function when execution is paused for human input.
Attributes:
action_request (ActionRequest): The specific action being requested from the human
config (HumanInterruptConfig): Configuration defining what actions are allowed
description (Optional[str]): Optional detailed description of what input is needed
action_request: The specific action being requested from the human
config: Configuration defining what actions are allowed
description: Optional detailed description of what input is needed
Example:
```python
# Extract a tool call from the state and create an interrupt request
request = HumanInterrupt(
action_request=ActionRequest(
action="run_command", # The action being requested
args={"command": "ls", "args": ["-l"]} # Arguments for the action
),
config=HumanInterruptConfig(
allow_ignore=True, # Allow skipping this step
allow_respond=True, # Allow text feedback
allow_edit=False, # Don't allow editing
allow_accept=True # Allow direct acceptance
),
description="Please review the command before execution"
)
# Send the interrupt request and get the response
response = interrupt([request])[0]
```
"""
action_request: ActionRequest
@@ -59,12 +79,12 @@ class HumanResponse(TypedDict):
"""The response provided by a human to an interrupt, which is returned when graph execution resumes.
Attributes:
type (Literal['accept', 'ignore', 'response', 'edit']): The type of response:
type: The type of response:
- "accept": Approves the current state without changes
- "ignore": Skips/ignores the current step
- "response": Provides text feedback or instructions
- "edit": Modifies the current state/content
args (Union[None, str, ActionRequest]): The response payload:
arg: The response payload:
- None: For ignore/accept actions
- str: For text responses
- ActionRequest: For edit actions with updated content