Система оркестровки агента MCP
Реализация на Python системы оркестровки агентов на основе состояний с использованием протокола контекста модели (MCP).
Что такое МКП?
Протокол контекста модели (MCP) позволяет приложениям предоставлять контекст для LLM стандартизированным способом, отделяя заботы предоставления контекста от фактического взаимодействия LLM. С помощью MCP вы можете создавать серверы, которые предоставляют:
Ресурсы : источники данных, предоставляющие информацию магистрам права
Инструменты : функции, позволяющие LLM выполнять действия.
Подсказки : шаблоны многократного использования для взаимодействия с LLM
Related MCP server: MCP-RAG
Установка
Предпосылки
Python 3.10 или выше
MCP Python SDK 1.2.0 или выше
Настройка вашей среды
Использование УФ (рекомендуется)
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create a new directory for our project
uv init mcp-agents-orchestra
cd mcp-agents-orchestra
# Create virtual environment and activate it
uv venv
source .venv/bin/activate # On Unix/macOS
.venv\Scripts\activate # On Windows
# Install dependencies
uv add "mcp[cli]" httpxИспользование пипа
# Create a new directory for our project
mkdir mcp-agents-orchestra
cd mcp-agents-orchestra
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Unix/macOS
venv\Scripts\activate # On Windows
# Install dependencies
pip install "mcp[cli]" httpxКлонировать или загрузить файлы проекта
Поместите файлы проекта в свой каталог:
orchestrator.py— основной сервер MCP, реализующий конечный автоматorchestrator_client.py— Клиент, демонстрирующий процесс оркестровкиrequirements.txt— Зависимости для проекта.gitignore— файл игнорирования Git
Структура проекта
orchestrator.py— основной сервер MCP, реализующий конечный автоматorchestrator_client.py— Клиент, демонстрирующий процесс оркестровкиrequirements.txt— Зависимости для проекта
Запуск системы оркестровки
Запустите сервер оркестровки напрямую для тестирования:
python orchestrator.pyВ отдельном терминале запустите клиент, чтобы увидеть оркестровку в действии:
python orchestrator_client.pyИнтеграция с Claude для рабочего стола
1. Установите Claude для рабочего стола
Убедитесь, что у вас установлен Claude for Desktop. Вы можете загрузить последнюю версию с сайта Anthropic .
2. Настройте Claude для рабочего стола
Откройте файл конфигурации Claude for Desktop:
macOS/Linux:
# Create or edit the configuration file code ~/Library/Application\ Support/Claude/claude_desktop_config.jsonОкна:
# Path may vary depending on your Windows version code %APPDATA%\Claude\claude_desktop_config.jsonДобавьте конфигурацию сервера оркестратора:
{ "mcpServers": { "agent-orchestrator": { "command": "python", "args": [ "/ABSOLUTE/PATH/TO/YOUR/PROJECT/orchestrator.py" ] } } }Замените путь на абсолютный путь к вашему файлу orchestrator.py.
Сохраните файл конфигурации и перезапустите Claude for Desktop.
3. Использование Orchestrator в Claude
После настройки вы сможете:
Открыть Claude для рабочего стола
Нажмите на значок сервера MCP на боковой панели.
Выберите «agent-orchestrator» из списка доступных серверов.
Начните взаимодействовать с системой оркестровки
Клод сможет:
Переход между различными состояниями агента
Хранить и извлекать информацию из базы знаний
Поддерживайте контекст разговора при переходах между состояниями
Доступ к подсказкам, специфичным для штата
Агентские Штаты
Система оркестровки реализует конечный автомат со следующими состояниями:
IDLE : Ожидание инструкций
ПЛАНИРОВАНИЕ : Создание структурированного плана для задачи
ИССЛЕДОВАНИЕ : Сбор информации, необходимой для выполнения задачи
ИСПОЛНЕНИЕ : Выполнение запланированных действий.
ОБЗОР : Оценка результатов и определение следующих шагов
ОШИБКА : Обработка ошибок или непредвиденных ситуаций
Настройка системы
Добавление новых штатов
Добавьте состояние в перечисление
AgentStateвorchestrator.pyСоздайте функцию подсказки для нового состояния
Обновите логику перехода в
_get_available_transitions()Добавить обработчики для нового состояния в функции доступа к ресурсам
Создание пользовательских инструментов
Добавьте новые инструменты, создав функции, декорированные @mcp.tool() :
@mcp.tool()
def my_custom_tool(arg1: str, arg2: int, ctx: Context) -> str:
"""Description of what this tool does
Args:
arg1: Description of arg1
arg2: Description of arg2
"""
# Implementation here
return "Result"Разработка и тестирование
Использование MCP CLI
MCP CLI предоставляет инструменты для разработки и тестирования:
# Install MCP CLI if you haven't already
pip install "mcp[cli]"
# Test your server with the MCP Inspector
mcp dev orchestrator.py
# Install in Claude Desktop
mcp install orchestrator.pyРучное тестирование с помощью Python
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async with stdio_client(StdioServerParameters(command="python", args=["orchestrator.py"])) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# Test state transitions
await session.call_tool("transition_state", arguments={"new_state": "PLANNING"})Ресурсы
Лицензия
Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.