generate description for cached action (#3603)

This commit is contained in:
Shuchang Zheng
2025-10-02 18:53:08 -07:00
committed by GitHub
parent dd235e6ce4
commit 1cfa23ae38
4 changed files with 110 additions and 5 deletions

View File

@@ -0,0 +1,20 @@
Generating a user-facing description for an browser action to help users understand what the action is doing and why.
Action Information:
- Action Type: {{ action_type }}
{% if intention %}- Intention: {{ intention }}{% endif %}
{% if text %}- Text/Value: {{ text }}{% endif %}
{% if select_option %}- Selected Option: {{ select_option }}{% endif %}
{% if file_url %}- File URL: {{ file_url }}{% endif %}
{% if data_extraction_goal %}- Data Extraction Goal: {{ data_extraction_goal }}{% endif %}
{% if data_extraction_schema %}- Data Extraction Schema: {{ data_extraction_schema }}{% endif %}
MAKE SURE YOU OUTPUT VALID JSON. No text before or after JSON, no trailing commas, no comments (//), no unnecessary quotes, etc.
Respond with the following JSON format:
```
{
"reasoning": str // A clear, user-friendly explanation (one sentence, 20 words max) of what this action is doing. Use present tense like "Clicking the submit button" or "Entering the email address". Focus on the action and its purpose.
}
```

View File

@@ -2673,6 +2673,25 @@ class AgentDB:
await session.refresh(new_action)
return Action.model_validate(new_action)
async def update_action_reasoning(
self,
organization_id: str,
action_id: str,
reasoning: str,
) -> Action:
async with self.Session() as session:
action = (
await session.scalars(
select(ActionModel).filter_by(action_id=action_id).filter_by(organization_id=organization_id)
)
).first()
if action:
action.reasoning = reasoning
await session.commit()
await session.refresh(action)
return Action.model_validate(action)
raise NotFoundError(f"Action {action_id}")
async def retrieve_action_plan(self, task: Task) -> list[Action]:
async with self.Session() as session:
subquery = (