Agent Mesh
┌─────────────────────────────────────────────────────────────────────┐ │ DATACENTER (Zona Segura) │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ Agent: "DataGuardian" │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │ │ │ │ │ PostgreSQL │ │ Redis │ │ Internal APIs │ │ │ │ │ └──────┬──────┘ └──────┬──────┘ └──────────┬──────────┘ │ │ │ │ └────────────────┼────────────────────┘ │ │ │ │ ▼ │ │ │ │ ┌───────────────────────────────────────────────────────┐ │ │ │ │ │ A2A Server (gRPC + mTLS) │ │ │ │ │ │ Skills: │ │ │ │ │ │ • query_customers (read-only) │ │ │ │ │ │ • query_orders (read-only) │ │ │ │ │ │ • aggregate_metrics │ │ │ │ │ └───────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ gRPC/mTLS │ │ ▼ │ └────────────────────────────────────┼────────────────────────────────┘ │ ─────────┼───────── DMZ / Firewall │ ┌────────────────────────────────────┼────────────────────────────────┐ │ EDGE (Zona Periférica) │ │ │ │ │ ┌─────────────────────────────────▼───────────────────────────┐ │ │ │ Agent: "CustomerAssistant" │ │ │ │ ┌───────────────────────────────────────────────────────┐ │ │ │ │ │ A2A Client + Server │ │ │ │ │ │ Local Skills: │ │ │ │ │ │ • answer_questions (LLM) │ │ │ │ │ │ • generate_report (LLM) │ │ │ │ │ │ Remote Skills (via DataGuardian): │ │ │ │ │ │ • fetch_customer_data → delegates to DataGuardian │ │ │ │ │ └───────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ HTTPS/HTTP2 │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ End Users │ │ │ └─────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐ │ Orchestrator Agent │ │ (A2AClientMixin + BasicAgent) │ │ │ │ Tools: │ │ ├── python_repl (local) │ │ ├── ask_customer_support (remote → A2A) │ │ └── ask_data_analyst (remote → A2A) │ │ │ │ Methods: │ │ ├── ask() → Uses tools automatically │ │ ├── ask_remote_agent() → Direct A2A call │ │ └── invoke_remote_skill() → Specific skill call │ └──────────────────────┬──────────────────────────────────────┘ │ ┌──────────────┴──────────────┐ │ │ ▼ ▼ ┌───────────────────┐ ┌───────────────────┐ │ CustomerSupport │ │ DataAnalyst │ │ (A2AServer) │ │ (A2AServer) │ │ :8181 │ │ :8182 │ │ │ │ │ │ Skills: │ │ Skills: │ │ └── python_repl │ │ ├── analyze_data │ │ │ │ └── query_db │ └───────────────────┘ └───────────────────┘