使用说明
MCP工作流编排器
使用模型上下文协议(MCP)的基于代理的请求分类系统。
演示3D资产生产工作流的验证、规划和分配功能的工作流编排。
特性
- MCP服务器 有4个工具和4个资源
- AI 代理 在Claude中使用ReAct模式
- 验证 预设配置(4通道纹理打包)
- 基于规则的工作流规划
- 容量感知艺术家分配
- 决策审计追踪 基于自然语言理论
- 可观测性 通过结构化日志记录
建筑
┌─────────────────────────────────────────────────────────────┐
│ Agent (run_agent.py) │
│ - Connects to MCP server via stdio │
│ - Uses Claude API for reasoning │
│ - Orchestrates tools: validate → plan → assign → record │
│ - Outputs decisions.json with rationale │
└────────────────┬────────────────────────────────────────────┘
│ MCP Protocol (stdio)
│
┌────────────────▼────────────────────────────────────────────┐
│ MCP Server (server.py) │
│ │
│ Tools: Resources: │
│ ├─ validate_preset() ├─ resource://requests │
│ ├─ plan_steps() ├─ resource://artists │
│ ├─ assign_artist() ├─ resource://presets │
│ └─ record_decision() └─ resource://rules │
│ │
│ Reads: data/*.json Writes: decisions.json │
└─────────────────────────────────────────────────────────────┘
设置
1.创建虚拟环境
python3 -m venv venv
source venv/bin/activate
2.安装依赖项
pip install -r requirements.txt
3.设置API密钥
从以下位置获取密钥:https://console.anthropic.com/settings/keys
创建一个 .env 文件:
ANTHROPIC_API_KEY=sk-ant-...your-key-here
用法
运行代理
python run_agent.py
使用来自的默认数据文件 data/ 目录并处理所有请求。
输出
decisions.json -一系列具有基本原理和工具调用跟踪的决策:
[{"request_id": "req-001", "validation_passed": true, "rationale": "...", "trace": [...]}]
mcp.log -包含工具调用、持续时间和失败的结构化日志:
{"timestamp": "...", "event": "tool.called", "tool": "validate_preset", "duration_ms": 12.5}
MCP工具
validate_preset(request_id)-验证命名配置和4通道纹理打包(r、g、b、a)。帐户来源于请求。plan_steps(request_id)-根据规则匹配请求属性以确定工作流步骤。assign_artist(request_id)-根据所需技能和可用容量分配艺术家。record_decision(request_id, decision_data)-通过decisions.json的审计跟踪来持久化决策。
MCP资源
resource://requests-工作流请求resource://artists-具有技能和能力的艺术家简介resource://presets-帐户预设配置resource://rules-有条件的工作流规则
测试
# Run test suite
pytest test_server.py -v
# Run agent with all requests
python run_agent.py
测试包括:
- 有效/无效的预设验证
- 工作流规则匹配
- 容量感知艺术家分配
- 决策ID幂等性
项目结构
mcp-workflow-orchestrator/
├── data/
│ ├── request.json
│ ├── artists.json
│ ├── presets.json
│ └── rules.json
├── server.py
├── run_agent.py
├── test_server.py
├── requirements.txt
├── .env.example
└── README.md