Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Microsoft Autogen Studio Default Gallery

From Leeroopedia
Knowledge Sources python/packages/autogen-studio/frontend/src/components/views/gallery/default_gallery.json
Domains Configuration, Component Library, Preset Definitions
Last Updated 2026-02-11

Overview

The Default Gallery JSON file provides a comprehensive collection of pre-configured AutoGen components including agents, models, tools, workbenches, terminations, and teams that serve as templates and examples for users.

Description

This JSON configuration file defines the default component gallery shipped with AutoGen Studio. The gallery contains:

Gallery Metadata:

  • ID: "gallery_default"
  • Name: "Default Component Gallery"
  • Author: "AutoGen Team"
  • Version: "1.0.0"
  • Category: "conversation"
  • Description: Basic components for human-in-loop conversations

Component Collections:

Agents (4):

  • AssistantAgent with calculator tool - Basic AI assistant with arithmetic capabilities
  • Web Surfer Agent - Headless browser agent for web scraping and navigation (uses gpt-4o-mini)
  • Verification Assistant - Agent specialized in verifying and summarizing information
  • UserProxyAgent - Human user proxy for interactive feedback

Models (4):

  • OpenAI GPT-4o Mini - Fast, cost-effective model for most tasks
  • Mistral-7B Local - Local model via LMStudio/Ollama
  • Anthropic Claude-3-7 - Advanced reasoning model (claude-3-7-sonnet-20250219)
  • Azure OpenAI GPT-4o-mini - Enterprise Azure-hosted variant

Tools (6):

  • Calculator Tool - Basic arithmetic operations (+, -, *, /)
  • Image Generation Tool - DALL-E 3 image generation (requires OpenAI API)
  • Fetch Webpage Tool - Convert webpages to markdown (requires requests, beautifulsoup4)
  • Bing Search Tool - Web search via Bing API (requires BING_SEARCH_KEY)
  • Google Search Tool - Web search via Google Custom Search (requires GOOGLE_API_KEY, GOOGLE_CSE_ID)
  • Python Code Execution Tool - Local code execution via LocalCommandLineCodeExecutor

Terminations (3):

  • TextMentionTermination - Terminate on "TERMINATE" keyword
  • MaxMessageTermination - Terminate after 10 messages
  • OR Termination - Combination of text mention OR max message (flexible termination)

Teams (4):

  • RoundRobin Team - Single AssistantAgent with calculator in round-robin pattern
  • Selector Team - Two agents (assistant + critic) with model-based selection
  • Web Agent Team (Operator) - Three-agent team with web surfer, verification assistant, and user proxy
  • Deep Research Team - Three-agent research team with research assistant (Google search + fetch webpage tools), verifier, and summary agent using GPT-4o

Workbenches (3):

  • Basic Tools Workbench - Static workbench with calculator and fetch webpage tools
  • Web Content Fetch Workbench - MCP workbench using mcp-server-fetch for web content
  • HTTP Streamable MCP Workbench - Example MCP workbench for HTTP-based MCP servers

The gallery demonstrates various component composition patterns, tool integration strategies, and team orchestration approaches. Many tools require external API keys (OpenAI, Bing, Google) documented in their descriptions.

Usage

This file is loaded by AutoGen Studio at startup to populate the default gallery. Users can import components from this gallery into their projects or use them as templates for creating custom components.

Data Structure Reference

Source Location: /tmp/kapso_repo_2mr4n2g4/python/packages/autogen-studio/frontend/src/components/views/gallery/default_gallery.json

Schema Structure:

interface DefaultGallery {
  id: string;
  name: string;
  url: string | null;
  metadata: {
    author: string;
    version: string;
    description: string;
    tags: string[];
    license: string;
    homepage: string | null;
    category: string;
    last_synced: string | null;
  };
  components: {
    agents: Component<AgentConfig>[];
    models: Component<ModelConfig>[];
    tools: Component<ToolConfig>[];
    terminations: Component<TerminationConfig>[];
    teams: Component<TeamConfig>[];
    workbenches: Component<WorkbenchConfig>[];
  };
}

Root Object:

{
  "id": "gallery_default",
  "name": "Default Component Gallery",
  "url": null,
  "metadata": {
    "author": "AutoGen Team",
    "version": "1.0.0",
    "description": "A default gallery containing basic components for human-in-loop conversations",
    "tags": ["human-in-loop", "assistant", "web agents"],
    "license": "MIT",
    "homepage": null,
    "category": "conversation",
    "last_synced": null
  },
  "components": {
    "agents": [ /* 4 agent configs */ ],
    "models": [ /* 4 model configs */ ],
    "tools": [ /* 6 tool configs */ ],
    "terminations": [ /* 3 termination configs */ ],
    "teams": [ /* 4 team configs */ ],
    "workbenches": [ /* 3 workbench configs */ ]
  }
}

Component Inventory

Agents

Label Provider Description Key Features
AssistantAgent autogen_agentchat.agents.AssistantAgent AI assistant with tool abilities Calculator tool, gpt-4o-mini, unbounded context
Web Surfer Agent autogen_ext.agents.web_surfer.MultimodalWebSurfer Web browsing agent Headless browser, Bing start page, vision capable
Verification Assistant autogen_agentchat.agents.AssistantAgent Information verifier and summarizer Verification-focused system message, no tools
UserProxyAgent autogen_agentchat.agents.UserProxyAgent Human user representation Simple name and description only

Models

Label Provider Model Description
OpenAI GPT-4o Mini autogen_ext.models.openai.OpenAIChatCompletionClient gpt-4o-mini Fast and cost-effective OpenAI model
Mistral-7B Local autogen_ext.models.openai.OpenAIChatCompletionClient TheBloke/Mistral-7B-Instruct-v0.2-GGUF Local model via LMStudio/Ollama
Anthropic Claude-3-7 autogen_ext.models.anthropic.AnthropicChatCompletionClient claude-3-7-sonnet-20250219 Anthropic's latest reasoning model
AzureOpenAI GPT-4o-mini autogen_ext.models.openai.AzureOpenAIChatCompletionClient gpt-4o-mini Azure-hosted enterprise variant

Tools

Label Provider Description Dependencies
Calculator Tool autogen_core.tools.FunctionTool Basic arithmetic (+, -, *, /) None
Image Generation Tool autogen_core.tools.FunctionTool DALL-E 3 image generation OpenAI, PIL, base64
Fetch Webpage Tool autogen_core.tools.FunctionTool Convert webpage to markdown requests, beautifulsoup4, html2text
Bing Search Tool autogen_core.tools.FunctionTool Bing Web Search API BING_SEARCH_KEY env var
Google Search Tool autogen_core.tools.FunctionTool Google Custom Search API GOOGLE_API_KEY, GOOGLE_CSE_ID env vars
Python Code Execution Tool autogen_ext.tools.code_execution.PythonCodeExecutionTool Execute Python code locally LocalCommandLineCodeExecutor

Teams

Label Type Agents Description
RoundRobin Team RoundRobinGroupChat 1 assistant Single agent with calculator tool
Selector Team SelectorGroupChat 2 (assistant + critic) Model-based speaker selection with critique loop
Web Agent Team (Operator) SelectorGroupChat 3 (web surfer + verifier + user proxy) Web research with human oversight
Deep Research Team SelectorGroupChat 3 (researcher + verifier + summarizer) Multi-agent research with Google search

Terminations

Label Provider Configuration Description
TextMentionTermination autogen_agentchat.conditions.TextMentionTermination text: "TERMINATE" Terminate on keyword
MaxMessageTermination autogen_agentchat.conditions.MaxMessageTermination max_messages: 10 Terminate after N messages
OR Termination autogen_agentchat.base.OrTerminationCondition conditions: [TextMention, MaxMessage] Terminate on either condition

Workbenches

Label Provider Description Configuration
Basic Tools Workbench autogen_core.tools.StaticWorkbench Calculator and webpage fetcher 2 function tools
Web Content Fetch Workbench autogen_ext.tools.mcp.McpWorkbench MCP server for web content StdioServerParams: uvx mcp-server-fetch
HTTP Streamable MCP Workbench autogen_ext.tools.mcp.McpWorkbench HTTP-based MCP server example StreamableHttpServerParams with auth

Usage Examples

Loading the Gallery

import defaultGalleryData from "./views/gallery/default_gallery.json";
import type { Gallery } from "./types/datamodel";

const defaultGallery: Gallery = {
  id: 1,
  config: defaultGalleryData,
  created_at: new Date().toISOString()
};

// Access components
const assistantAgent = defaultGallery.config.components.agents[0];
const calculatorTool = defaultGallery.config.components.tools[0];
const roundRobinTeam = defaultGallery.config.components.teams[0];

Extracting Specific Components

// Find the Web Surfer agent
const webSurfer = defaultGalleryData.components.agents.find(
  agent => agent.label === "Web Surfer Agent"
);

// Find OpenAI models
const openAIModels = defaultGalleryData.components.models.filter(
  model => model.provider.includes("OpenAIChatCompletionClient")
);

// Find tools requiring API keys
const apiTools = defaultGalleryData.components.tools.filter(
  tool => tool.description?.includes("requires") &&
          tool.description?.includes("env variable")
);

Using Team Templates

// Extract the Deep Research Team template
const researchTeam = defaultGalleryData.components.teams.find(
  team => team.label === "Deep Research Team"
);

if (researchTeam && isSelectorTeam(researchTeam)) {
  console.log(`Team has ${researchTeam.config.participants.length} participants`);
  console.log(`Selector prompt: ${researchTeam.config.selector_prompt}`);

  // Extract the research assistant with tools
  const researcher = researchTeam.config.participants[0];
  if (isAssistantAgent(researcher)) {
    const workbench = researcher.config.workbench?.[0];
    if (workbench && isAnyStaticWorkbench(workbench)) {
      console.log(`Researcher has ${workbench.config.tools.length} tools`);
    }
  }
}

Customizing Components

import { cloneDeep } from "lodash";

// Clone and customize the calculator tool
const customCalculator = cloneDeep(
  defaultGalleryData.components.tools.find(t => t.label === "Calculator Tool")
);

if (customCalculator && isFunctionTool(customCalculator)) {
  customCalculator.label = "Advanced Calculator";
  customCalculator.description = "Calculator with additional operations";
  customCalculator.config.source_code = `
    def calculator(a: float, b: float, operator: str) -> str:
        # Add power and modulo operations
        if operator == "**":
            return str(a ** b)
        elif operator == "%":
            return str(a % b)
        # ... existing operations
  `;
}

Building a Custom Team from Gallery Components

import type { Component, TeamConfig } from "./types/datamodel";

// Select components from gallery
const assistant = defaultGalleryData.components.agents[0]; // AssistantAgent
const webSurfer = defaultGalleryData.components.agents[1]; // Web Surfer
const termination = defaultGalleryData.components.terminations[2]; // OR termination
const model = defaultGalleryData.components.models[0]; // GPT-4o Mini

// Build custom team
const customTeam: Component<TeamConfig> = {
  provider: "autogen_agentchat.teams.SelectorGroupChat",
  component_type: "team",
  version: 1,
  label: "Custom Research Team",
  config: {
    participants: [assistant, webSurfer],
    model_client: model,
    termination_condition: termination,
    selector_prompt: "Select the best agent for the current task...",
    allow_repeated_speaker: true,
    max_selector_attempts: 3,
    emit_team_events: false,
    model_client_streaming: false
  }
};

Component Details

Calculator Tool Source Code

def calculator(a: float, b: float, operator: str) -> str:
    try:
        if operator == "+":
            return str(a + b)
        elif operator == "-":
            return str(a - b)
        elif operator == "*":
            return str(a * b)
        elif operator == "/":
            if b == 0:
                return "Error: Division by zero"
            return str(a / b)
        else:
            return "Error: Invalid operator. Please use +, -, *, or /"
    except Exception as e:
        return f"Error: {str(e)}"

Deep Research Team Selector Prompt

You are coordinating a research team by selecting the team member to speak/act next.
The following team member roles are available: {roles}.

The research_assistant performs searches and analyzes information.
The verifier evaluates progress and ensures completeness.
The summary_agent provides a detailed markdown summary of the research as a report to the user.

Given the current context, select the most appropriate next speaker.
Base your selection on:
1. Current stage of research
2. Last speaker's findings or suggestions
3. Need for verification vs need for new information

You should ONLY select the summary_agent role if the research is complete and it is time to generate a report.

Read the following conversation. Then select the next role from {participants} to play.
ONLY RETURN THE ROLE.

{history}

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment