How fetchai/innovation-lab-examples works
1. This repository is a monorepo of independent agent examples rather than one unified application. The root level mainly provides repository-wide governance, contribution workflow, setup automation, CI, and documentation. The actual runtime architectures live inside many self-contained example folders.
2. The top-level structure is organized by agent framework or integration style: uAgents/Fetch.ai examples, OpenAI/Anthropic/Gemini/Google ADK examples, CrewAI/AG2, MCP agents, A2A integrations, payment-enabled agents, RAG/knowledge agents, and Web3 examples. Each subdirectory is effectively its own deployable unit with its own dependencies and entrypoint.
3. The common application pattern across most examples is a thin startup file plus domain modules. Typical entrypoints are named agent.py, main.py, run.py, or framework-specific variants, and they wire together prompts, tool adapters, state, and communication protocols. This makes the diagram for any single example usually “entrypoint → orchestration logic → tools/services → external APIs.”
4. A major boundary in the repo is agent orchestration versus tool execution. Many examples have dedicated orchestrators, planners, or workflow modules that decide what to do next, while separate modules handle scraping, search, extraction, rendering, or API calls. Examples include multi-agent teams, router agents, and orchestrator/worker patterns.
5. Several examples are explicitly multi-agent systems. For instance, the fetch-hackathon-quickstarter, a2a-uAgents-Integration, Crewai-agents, ag2-agents, and parts of openai-agent-sdk/Appliance Auto Whisperer split responsibilities across specialist agents such as research, analysis, synthesis, or task-specific workers. In diagrams, these should be shown as multiple internal agent nodes coordinated by a central planner or orchestrator.
6. Protocol and transport layers are a first-class architectural boundary in this repo. Many examples define chat, payment, or task protocols in dedicated modules such as chat_proto.py, payment_proto.py, protocols/, or uagents_protocol/. A2A examples add agent-to-agent communication contracts, while MCP examples separate agent logic from MCP server/client adapters.
7. External integrations are usually isolated behind service modules or client wrappers. Common integrations include LLM providers, search APIs, browser automation, financial/payment gateways like Stripe or Skyfire, Google services, GitHub/Gmail/Calendar via MCP, and data sources like NewsAPI, Tavily, Duffel, or BrightData. The repo favors adapters and clients rather than spreading API calls through core agent logic.
8. State management is localized per example and often persistent. Some examples use lightweight in-memory/session stores, while others use SQLite, JSON state files, or dedicated state services. When persistence matters, it is usually used for conversation/session continuity, cached results, payment/session tracking, or agent mailbox/routing metadata.
9. Several examples produce user-facing artifacts rather than just text responses. Examples include card-based news rendering, PDF or report generation, spreadsheet outputs, browser form filling, image/video/music generation, and frontend integration with a Next.js app. In those cases, the pipeline typically ends in a formatter, renderer, or response-composer module that converts internal agent output into a consumable artifact.
10. Testing and packaging are uneven but intentional where examples are more production-like. Some advanced examples include unit/integration tests, Dockerfiles, docker-compose files, and deployment scripts; simpler examples mostly rely on README-driven setup. For architecture diagrams, treat Docker and test artifacts as example-specific deployment/test boundaries, not as shared platform services.
11. The root repo tooling is oriented around contributor workflow and quality gates. GitHub workflows handle CI, label sync/bootstrap, and contributor badges; docs define template/readme standards; and setup.sh plus the root Docker support simplify running a chosen example. This means the repository has a strong governance layer, but no centralized runtime backend.
12. A useful mental model is: “one repository, many small agent systems.” The shared pattern is an agent entrypoint that coordinates domain logic, tool adapters, and external services, with protocols defining how agents communicate and optional state/persistence enabling continuity. Any accurate diagram should therefore be drawn at the example-folder level, not as a single repo-wide service graph.
Main entry points: coordinator.py Whisperer · duffel-agent/agent.py Duffel Agent · routing_agent.py A2A Host · orchestrator-agent/agent.py Job Agent
Components 23
Governance
Repo-wide setup, contribution, and CI
Browser Agents
Playwright and web scraping examples
- Job Agent · Playwright-driven application filler with payment and form rendering
Browser-based-agents/playwright/job-application-agent/orchestrator-agent/agent.py - Nike Agent · Thin entrypoint around product scraping and chat protocol
Browser-based-agents/Notte-labs-agent/Nike-products-agent/agent.py
Framework SDKs
OpenAI, Anthropic, Google ADK, CrewAI, AG2 examples
- Router Agent · Anthropic quickstart multi-agent coordination example
anthropic-quickstart/05-multi-agent-system/router_agent.py - Whisperer · OpenAI agent-sdk app with orchestrator, specialists, and services
openai-agent-sdk/Appliance Auto Whisperer/app/orchestration/coordinator.py - Sub Agents · Google ADK team built from shared runner and specialist agents
google-adk/sub-agents/shared/runner.py - Trip Planner · CrewAI trip planning example with tools and tasks
Crewai-agents/trip_planner/trip_agents.py - Payment Team · AG2 payment approval flow with executor and workflow
ag2-agents/payment-approval/payment_workflow.py
Protocols & Payments
A2A, MCP, chat/payment contracts, and billing flows
- A2A Host · Inbound A2A planner that routes to specialist agents
a2a-uAgents-Integration/a2a-Inbound-Communication/Multiagent-Planner/host_agent/routing_agent.py - TicketLens · MCP consumer with chat protocol and client adapter
mcp-agents/ticketlens-agent/mcp_client.py - Duffel Agent · Travel agent with chat and payment protocols plus state
duffel-agent/agent.py - Expense Agent · Stripe-enabled receipt and expense processing pipeline
stripe-payment-agents/expense-calculator-group/agent.py
Domain Apps
RAG, search, frontend, and specialized vertical agents
- RAG Agent · Document Q&A agent centered on retrieval and prompting
Rag-agent/ango/agent.py - Frontend App · Python backend plus Next.js frontend integration example
frontend-integration/frontend_app.py - News Cards · News summarization pipeline that outputs card-based artifacts
news-card-agent/agent.py - Security Scanner · Security scanning agent with model-backed analysis
security-scanner-agent/agent.py - Trends Agent · Google ADK agent using handlers, state, and payments
google-adk/google-trends-agent/agent.py
Web3
Internet Computer and SingularityNET examples
- IC Agent · Internet Computer frontend/backend example with fetch agent
web3/internet-computer/ic/src/backend/index.ts - Metta Agent · SingularityNET/MeTTa knowledge and RAG examples
web3/singularity-net-metta/agent.py
Research Teams
Orchestrated multi-agent research and synthesis systems
- Research Team · OpenClaw orchestrator plus planner, policy, and connector flows
openclaw/fetchai-openclaw-orchestrator/orchestrator/planner.py - Fetch Quickstart · Fetch.ai starter with orchestrator, workers, and state service
fetch-hackathon-quickstarter/agents/orchestrator/orchestrator_fetchai_wrapped_agent.py
Connections 20
- Repo CI → Setup: supports · Automation and setup shape contributor workflow
- Docs → Repo CI: guides · Docs and templates support repo governance
- Setup → Fetch Quickstart: launches · Bootstrap points users at a chosen example
- Job Agent → Nike Agent: same pattern · Both use thin entrypoints around browser/tool execution
- Router Agent → Whisperer: orchestrates · Representative multi-agent orchestration across SDK examples
- Whisperer → Sub Agents: teams · Central planner coordinating specialist workers
- Sub Agents → Trip Planner: specializes · Framework-specific agent teams and task wiring
- Trip Planner → Payment Team: routes · Crew and AG2 examples both separate planner and execution
- A2A Host → TicketLens: protocols · Agent-to-agent and MCP examples isolate transport adapters
- Duffel Agent → Expense Agent: payments · Payment-enabled agents share protocol and billing boundaries
- Duffel Agent → A2A Host: communicates · Both center on structured inter-agent contracts
- RAG Agent → News Cards: renders · User-facing artifact pipelines end in a formatter or renderer
- Frontend App → News Cards: integrates · Frontend-backed agent output becomes consumable UI content
- Security Scanner → RAG Agent: analyzes · Domain agents often pair LLM reasoning with retrieval or scanning
- Trends Agent → Frontend App: serves · Service-backed agents expose results through app boundaries
- IC Agent → Metta Agent: web3 stack · Web3 examples split app runtime from knowledge/RAG logic
- Research Team → Fetch Quickstart: shared shape · Both are orchestrator-led multi-agent systems with specialist workers
- Research Team → A2A Host: task routing · Orchestration patterns recur across agent-to-agent examples
- Whisperer → Duffel Agent: stateful flow · Examples combine orchestration with persistent session state
- Job Agent → Expense Agent: payments · Some browser workflows include payment and fulfillment steps