FLOW.md•2.17 kB
# Agent Flow
## Complete Workflow
```
Initial State:
{
  action_description: "search for repositories on GitHub"
  website_url: "https://github.com"
}
↓ action_agent
{
  action_description: "search for repositories on GitHub"
  website_url: "https://github.com"
  function_metadata: { function_name, parameters, returns, description }
}
↓ input_agent
{
  action_description: "search for repositories on GitHub"
  website_url: "https://github.com"
  function_metadata: { ... }
  test_inputs: [ {query: "python async"}, {query: "react"}, ... ]
}
↓ task_agent
{
  action_description: "search for repositories on GitHub"
  website_url: "https://github.com"
  function_metadata: { ... }
  test_inputs: [ ... ]
  task_description: "Navigate to GitHub, search for X, extract Y..."
}
↓ browser_loop_agent (for each test_input)
  FOR EACH test_input:
    attempt = 1
    current_task = task_description
    LOOP (max 3 attempts):
      ↓ browser_agent(website_url, current_task)
      ↓ scoring_agent(current_task, browser_result)
      IF score >= 8:
        ✓ PASS → break loop
      IF attempt < 3:
        ↓ feedback_agent(website_url, current_task, evaluation)
        current_task = improved_task
        attempt++
      ELSE:
        ✗ FAIL → break loop
Final State:
{
  action_description: "search for repositories on GitHub"
  website_url: "https://github.com"
  function_metadata: { ... }
  test_inputs: [ ... ]
  task_description: "..."
  test_results: [
    {
      test_input: {query: "python async"},
      attempts: 2,
      final_score: 9,
      final_reasoning: "...",
      final_result: "...",
      status: "pass"
    },
    ...
  ]
}
```
## Agent Responsibilities
1. **action_agent**: Natural language action → structured function metadata
2. **input_agent**: Generate realistic test inputs based on function parameters
3. **task_agent**: Function metadata → browser automation instructions
4. **browser_loop_agent**: Execute browser tests with feedback loop
   - **browser_agent**: Execute browser automation
   - **scoring_agent**: Evaluate result (0-10)
   - **feedback_agent**: Generate improved task (if score < 8)