Agent Flow UI
The Agent Flow UI is a visual workflow editor for creating, managing, and executing A2A agent networks. It provides a drag-and-drop interface for connecting agents and defining workflows.
Overview
Agent Flow is built as an integral part of the python-a2a package, providing:
Visual workflow builder for agent networks
Agent management and discovery
MCP tool integration
Real-time workflow execution
Workflow storage and retrieval
Starting the UI
Starting the Agent Flow UI is simple:
# Start with default settings (opens browser automatically)
a2a ui
# Start with custom settings
a2a ui --port 9000 --host 0.0.0.0 --storage-dir ~/.my_workflows --debug --no-browser
Command-line options:
--port PORT: Port to run the server on (default: 8080)--host HOST: Host to bind the server to (default: localhost)--storage-dir DIR: Directory to store workflow files (default: ~/.agent_flow)--debug: Run in debug mode--no-browser: Don’t automatically open a browser--skip-port-check: Skip checking if the port is available (advanced)
The UI will be available at http://localhost:8080 (or your custom host/port) and will open automatically in your browser.
Building Workflows
The Agent Flow UI provides a visual canvas for building agent workflows:
Agents Tab: Discover and manage available agents
Tools Tab: Find and integrate MCP tools
Workflows Tab: Build, save, and run workflows
Workflow Components
Nodes: Represent agents, tools, or logic operations
Edges: Connect nodes to define the flow of data and control
Properties Panel: Configure node and edge properties
Node Types
Agent Nodes: Connect to A2A agents
Tool Nodes: Use MCP tools
Input Nodes: Define entry points and initial data
Condition Nodes: Implement branching logic
Transform Nodes: Modify data between nodes
Output Nodes: Collect and format results
Creating Your First Workflow
Open the Agent Flow UI with
a2a uiGo to the “Agents” tab and discover or add agents
Go to the “Workflows” tab and click “New Workflow”
Drag an Input node onto the canvas
Drag an Agent node and connect it to the Input node
Configure the Agent node to use one of your discovered agents
Add an Output node and connect it to the Agent node
Save your workflow by clicking “Save” in the toolbar
Run your workflow by clicking “Run” and providing any required input
Advanced Features
Agent Discovery
Agent Flow includes automated agent discovery:
Go to the “Agents” tab
Click “Discover Agents”
Configure discovery settings (port range, base URL)
View and add discovered agents
Tool Integration
Connect to MCP tools:
Go to the “Tools” tab
Add an MCP server URL
Discover and register available tools
Use tools in your workflows by adding Tool nodes
Conditional Branching
Create workflows with decision logic:
Add a Condition node to your workflow
Define the condition (e.g., text contains “weather”)
Connect the True and False outputs to different paths
Configure subsequent nodes for each branch
Workflow Storage
Agent Flow automatically stores workflows:
Default storage:
~/.agent_flow/workflowsCustom storage: Specify with
--storage-dirSave/load: Use the UI toolbar or CLI commands
API Access
The Agent Flow server provides a REST API:
/api/agents: Manage agent definitions/api/tools: Manage tool definitions/api/workflows: Manage workflows/api/executions: Run and monitor workflow executions
For detailed API documentation, visit http://localhost:8080/api/docs when the server is running.
CLI Commands
Agent Flow integrates with the A2A CLI:
# Start the UI
a2a ui
# List available agents
a2a agent list
# Discover agents
a2a agent discover
# Create a workflow from a JSON definition
a2a workflow create --file workflow.json
# Run a workflow
a2a workflow run WORKFLOW_ID --input '{"query": "What's the weather in Paris?"}'
# Export a workflow
a2a workflow export WORKFLOW_ID --output workflow.json
Programming Interface
You can also work with Agent Flow programmatically:
from python_a2a.agent_flow import (
Workflow, WorkflowNode, AgentRegistry, ToolRegistry,
WorkflowExecutor, FileWorkflowStorage
)
# Create components
agent_registry = AgentRegistry()
tool_registry = ToolRegistry()
workflow_storage = FileWorkflowStorage("~/.agent_flow/workflows")
executor = WorkflowExecutor(agent_registry, tool_registry)
# Discover agents
agent_registry.discover_agents("http://localhost", (5000, 6000))
# Create workflow
workflow = Workflow(name="Simple Workflow")
# Add nodes and edges
# ...
# Save workflow
workflow_id = workflow_storage.save_workflow(workflow)
# Execute workflow
results = executor.execute_workflow(workflow, {"query": "Hello world"})
print(results)
Customization
The Agent Flow UI can be customized by:
Creating custom node types
Adding custom tool adapters
Extending the UI with plugins
Creating specialized agent templates
For advanced customization, see the Agent Flow architecture documentation.
Conclusion
Agent Flow provides a powerful visual interface for building agent networks and workflows. It integrates seamlessly with the python-a2a package and offers intuitive tools for creating complex agent interactions without writing code.
For more advanced usage, refer to the API documentation and example workflows.