К основному содержанию
скилл CX Codex

autogen-development — скилл для Claude Code: AutoGen-агенты

Подсказывает агенту, как писать код на Microsoft AutoGen: создание агентов, групповые чаты, инструменты, оркестрация.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Mindrally/skills --skill autogen-development -a claude-code
Открыть на GitHub

Что делает autogen-development

Скилл превращает вашего ассистента в консультанта по Microsoft AutoGen — фреймворку для мультиагентных систем на Python. Внутри готовые примеры: AssistantAgent, UserProxyAgent, RoundRobinGroupChat, SelectorGroupChat, Swarm. Агент отвечает коротко, с рабочими фрагментами кода и подсказками по типам.

Отдельно разобраны инструменты через FunctionTool из autogen_core.tools и выполнение кода: локально через LocalCommandLineCodeExecutor или в контейнере через DockerCommandLineCodeExecutor. Для связи агентов скилл советует async/await, обработку ошибок и логирование. Модель подключается через OpenAIChatCompletionClient, поэтому нужен ключ в переменной OPENAI_API_KEY.

Скилл даёт шаблоны, а не готовую архитектуру: условия остановки вроде TextMentionTermination и MaxMessageTermination придётся подбирать под свою задачу. Если вы не работаете с AutoGen, ставить нечего — материал узкий и целиком про этот фреймворк.

Какие задачи решает

  • собрать групповой чат из нескольких агентов с условием остановки
  • подключить свою функцию как инструмент агента
  • запустить выполнение кода в Docker-контейнере
  • описать передачу задач между агентами через handoffs
  • настроить клиент модели с ключом из переменной окружения

Примеры запросов агенту

  • Создай AssistantAgent с инструментом поиска по базе и пример вызова
  • Собери SelectorGroupChat из планировщика, разработчика и ревьюера
  • Как настроить DockerCommandLineCodeExecutor для агента-кодера?

Как установить autogen-development

1Через Skills CLI (Vercel)

npx skills add Mindrally/skills --skill autogen-development -a claude-code

2Вручную: положить файлы

~/.claude/skills/autogen-development/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/autogen-development/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о autogen-development

Как установить autogen-development в Claude?

Выполните npx skills add Mindrally/skills --skill autogen-development -a claude-code. Файл скилла окажется в ~/.claude/skills/autogen-development/SKILL.md.

Что делает скилл autogen-development?

Даёт агенту экспертизу по Microsoft AutoGen: создание агентов, групповые чаты, инструменты, оркестрация. Ответы приходят с примерами на Python.

Что нужно для работы скилла?

Python и установленные пакеты autogen-agentchat и autogen-ext. Для клиента модели нужен ключ в переменной OPENAI_API_KEY.

Исходный текст

SKILL.md · Apache-2.0
---
name: autogen-development
description: Expert guidance for Microsoft AutoGen multi-agent framework development including agent creation, conversations, tool integration, and orchestration patterns.
metadata:
  maintainer: Mindrally
  source: https://github.com/Mindrally/skills
---

# AutoGen Multi-Agent Development

You are an expert in Microsoft AutoGen, a framework for building multi-agent AI systems with Python, focusing on agent orchestration, tool integration, and scalable AI applications.

## Key Principles

- Write concise, technical responses with accurate Python examples
- Use async/await patterns for agent communication
- Implement proper error handling and logging
- Follow event-driven architecture patterns
- Use type hints for all function signatures

## Setup and Installation

### Environment Setup

```python
# Install AutoGen
# pip install autogen-agentchat autogen-ext

from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models.openai import OpenAIChatCompletionClient
```

### Model Configuration

```python
import os

# Configure the model client
model_client = OpenAIChatCompletionClient(
    model="gpt-4o",
    api_key=os.environ.get("OPENAI_API_KEY")
)
```

## Core Concepts

### Agent Types

AutoGen provides several agent types:

- **AssistantAgent**: AI-powered agent for conversations and task completion
- **UserProxyAgent**: Represents human users, can execute code
- **GroupChat**: Orchestrates multi-agent conversations
- **ConversableAgent**: Base class for custom agents

## Creating Agents

### Basic Assistant Agent

```python
from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient

model_client = OpenAIChatCompletionClient(model="gpt-4o")

assistant = AssistantAgent(
    name="assistant",
    model_client=model_client,
    system_message="""You are a helpful AI assistant.
    Provide clear, concise responses.
    Ask clarifying questions when needed."""
)
```

### Agent with Tools

```python
from autogen_agentchat.agents import AssistantAgent
from autogen_core.tools import FunctionTool

def search_database(query: str) -> str:
    """Search the database for information.

    Args:
        query: The search query string

    Returns:
        Search results as a string
    """
    # Implementation
    return f"Results for: {query}"

def calculate(expression: str) -> str:
    """Evaluate a mathematical expression.

    Args:
        expression: Mathematical expression to evaluate

    Returns:
        The result of the calculation
    """
    try:
        result = eval(expression)
        return str(result)
    except Exception as e:
        return f"Error: {str(e)}"

# Create tools
search_tool = FunctionTool(search_database, description="Search the database")
calc_tool = FunctionTool(calculate, description="Perform calculations")

# Create agent with tools
agent = AssistantAgent(
    name="tool_agent",
    model_client=model_client,
    tools=[search_tool, calc_tool],
    system_message="You are an assistant with access to search and calculation tools."
)
```

## Multi-Agent Conversations

### Two-Agent Chat

```python
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.conditions import TextMentionTermination
from autogen_agentchat.teams import RoundRobinGroupChat

# Create agents
researcher = AssistantAgent(
    name="researcher",
    model_client=model_client,
    system_message="You are a research assistant. Gather and analyze information."
)

writer = AssistantAgent(
    name="writer",
    model_client=model_client,
    system_message="You are a technical writer. Create clear documentation."
)

# Create termination condition
termination = TextMentionTermination("TASK_COMPLETE")

# Create group chat
team = RoundRobinGroupChat(
    [researcher, writer],
    termination_condition=termination
)

# Run the conversation
async def run_team():
    result = await team.run(task="Research and document Python best practices")
    return result
```

### Group Chat with Multiple Agents

```python
from autogen_agentchat.teams import SelectorGroupChat
from autogen_agentchat.conditions import MaxMessageTermination

# Create specialized agents
planner = AssistantAgent(
    name="planner",
    model_client=model_client,
    system_message="You are a project planner. Break down tasks and create plans."
)

coder = AssistantAgent(
    name="coder",
    model_client=model_client,
    system_message="You are a software developer. Write clean, efficient code."
)

reviewer = AssistantAgent(
    name="reviewer",
    model_client=model_client,
    system_message="You are a code reviewer. Review code for quality and best practices."
)

# Selector-based group chat
team = SelectorGroupChat(
    [planner, coder, reviewer],
    model_client=model_client,
    termination_condition=MaxMessageTermination(20)
)
```

## Code Execution

### Setting Up Code Execution

```python
from autogen_ext.code_executors.local import LocalCommandLineCodeExecutor
from autogen_agentchat.agents import AssistantAgent

# Create code executor
code_executor = LocalCommandLineCodeExecutor(
    work_dir="./workspace",
    timeout=60
)

# Agent that can execute code
coding_agent = AssistantAgent(
    name="coder",
    model_client=model_client,
    code_executor=code_executor,
    system_message="""You are a Python developer.
    Write code to solve problems.
    Test your code before providing final answers."""
)
```

### Docker-Based Execution

```python
from autogen_ext.code_executors.docker import DockerCommandLineCodeExecutor

# Secure code execution in Docker
docker_executor = DockerCommandLineCodeExecutor(
    image="python:3.11-slim",
    timeout=120,
    work_dir="./workspace"
)
```

## Conversation Patterns

### Sequential Workflow

```python
from autogen_agentchat.teams import Swarm
from autogen_agentchat.agents import AssistantAgent

# Define agents for each step
analyst = AssistantAgent(
    name="analyst",
    model_client=model_client,
    handoffs=["developer"],
    system_message="Analyze requirements and hand off to developer."
)

developer = AssistantAgent(
    name="developer",
    model_client=model_client,
    handoffs=["tester"],
    system_message="Implement the solution and hand off to tester."
)

tester = AssistantAgent(
    name="tester",
    model_client=model_client,
    system_message="Test the implementation and report results."
)

# Create swarm for handoff-based workflow
team = Swarm([analyst, developer, tester])
```

### Hierarchical Structure

```python
# Manager agent that coordinates others
manager = AssistantAgent(
    name="manager",
    model_client=model_client,
    system_message="""You are a project manager.
    Coordinate between team members.
    Delegate tasks appropriately.
    Synthesize results into final deliverables."""
)

# Worker agents
workers = [
    AssistantAgent(name="researcher", model_client=model_client, ...),
    AssistantAgent(name="analyst", model_client=model_client, ...),
    AssistantAgent(name="writer", model_client=model_client, ...)
]
```

## Memory and State

### Conversation Memory

```python
from autogen_agentchat.messages import TextMessage

# Agents maintain conversation history automatically
# Access through the team's message history
async def run_with_memory():
    result = await team.run(task="Initial task")

    # Continue with context
    result = await team.run(task="Follow-up question")

    # Access message history
    for message in result.messages:
        print(f"{message.source}: {message.content}")
```

## Event-Driven Architecture

### Custom Event Handling

```python
from autogen_core import Event

# Subscribe to events
async def on_message_received(event: Event):
    print(f"Message received: {event.data}")

# Events enable reactive patterns
# - Agent activation
# - Tool execution
# - Error handling
# - State changes
```

## Error Handling

### Robust Agent Design

```python
from autogen_agentchat.agents import AssistantAgent
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

async def safe_run_team(team, task: str, max_retries: int = 3):
    """Run team with error handling and retries."""
    for attempt in range(max_retries):
        try:
            result = await team.run(task=task)
            return result
        except Exception as e:
            logger.error(f"Attempt {attempt + 1} failed: {e}")
            if attempt == max_retries - 1:
                raise
    return None
```

## Best Practices

### Agent Design

- Give agents clear, focused responsibilities
- Use descriptive system messages
- Implement proper tool descriptions
- Set appropriate termination conditions
- Use handoffs for complex workflows

### Performance

- Use async patterns for concurrent operations
- Implement caching for repeated queries
- Set reasonable timeouts
- Monitor token usage
- Use appropriate model sizes for each agent

### Security

- Never execute untrusted code directly
- Use Docker for code execution
- Validate tool inputs
- Implement rate limiting
- Log all agent actions

### Testing

- Unit test individual agents
- Integration test multi-agent workflows
- Test termination conditions
- Validate tool execution
- Monitor conversation quality

## Dependencies

- autogen-agentchat
- autogen-core
- autogen-ext
- openai (or other LLM providers)
- python-dotenv
- docker (for secure code execution)

## Common Patterns

### Research and Writing

```python
# Pattern: Research -> Analyze -> Write -> Review
agents = [
    AssistantAgent(name="researcher", ...),
    AssistantAgent(name="analyst", ...),
    AssistantAgent(name="writer", ...),
    AssistantAgent(name="reviewer", ...)
]
```

### Code Generation

```python
# Pattern: Plan -> Code -> Test -> Review
agents = [
    AssistantAgent(name="architect", ...),
    AssistantAgent(name="developer", code_executor=executor, ...),
    AssistantAgent(name="tester", ...),
    AssistantAgent(name="reviewer", ...)
]
```

### Data Analysis

```python
# Pattern: Extract -> Transform -> Analyze -> Report
agents = [
    AssistantAgent(name="data_engineer", ...),
    AssistantAgent(name="analyst", tools=[calc_tools], ...),
    AssistantAgent(name="reporter", ...)
]
```

© Mindrally · Apache-2.0 · Mindrally/skills

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
multi-agent-orchestration qodex-ai Помогает проектировать совместную работу нескольких ИИ-агентов, распределять задачи между ними и объединять результаты. Пригодится при настройке сложных цепочек с разделением ролей. CX Codex +1 2 100установок agent-orchestration OrchestKit Скилл с паттернами автономных циклов, координации нескольких агентов и мультисценарных прогонов. Пригодится, когда строите агентные пайплайны и выбираете фреймворк. CX Codex +1 1 400установок microsoft-agent-framework официальный github Помогает создавать и разбирать приложения, агентов и рабочие процессы на Microsoft Agent Framework. Пригодится и для миграции с Semantic Kernel или AutoGen. 1 900установок graphical-apps-development-cursorrules-prompt-file PatrickJS Правило Cursor, которое задаёт агенту контекст проекта Pyllments: графовые LLM-приложения на Python с Panel и Langchain. ★ 41 011звёзд репо llm-council am-will Скилл собирает независимые планы от нескольких CLI-агентов, обезличивает их и сводит в один финальный план. Пригодится, когда нужен план без перекоса в сторону одной модели. CX Codex +1 1 200установок context-engineering mrgoonie Скилл помогает проектировать контекст ИИ-агентов, уменьшать расход токенов и устранять деградацию внимания в сложных пайплайнах. CX Codex +1 495установок

Из того же набора168

fastapi-microservices-serverless Скилл задаёт агенту правила проектирования FastAPI-микросервисов под serverless и cloud-native: без состояния, с Redis, API Gateway и OAuth2. CX Codex +1 724установок tanstack-query Скилл задаёт агенту правила работы с серверным состоянием в React: ключи запросов, queryOptions, мутации и переход с v4 на v5. CX Codex +1 724установок phoenix Задаёт агенту правила кода на Elixir и Phoenix: LiveView, Ecto, контексты, тесты. Пригодится, когда проект уже на Phoenix и нужен предсказуемый стиль. CX Codex +1 722установок solidity Скилл для написания и ревью Solidity-контрактов: паттерны защиты от reentrancy, оптимизация gas, тесты и связка с React-фронтендом. CX Codex +1 721установок vercel-development Набор правил для ИИ-агента: как писать код под Next.js App Router, React Server Components и Vercel AI SDK. Пригодится, когда агент лепит клиентские компоненты там, где хватило бы серверных. CX Codex +1 712установок rest-api-django Набор правил для ИИ-агента, который пишет Django REST API: структура проекта, сериализаторы, JWT-аутентификация, борьба с N+1. CX Codex +1 712установок rspec Задаёт агенту правила написания тестов на RSpec для Ruby и Rails: организация, данные, изоляция. Пригодится, когда спеки расползаются и дублируются. CX Codex +1 707установок angular-development Задаёт агенту правила Angular, SASS и TypeScript: строгая типизация, standalone-компоненты, сигналы. Пригодится, когда в проекте уже есть Angular. CX Codex +1 705установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой