mcpField
A
ai-agent-orchestrator

ai-agent-orchestrator

github.com/dengineproblemAgent 工作流69 次安装
代码仓库

关于 ai-agent-orchestrator

面向多 Agent 系统设计与实现的技能,适用于构建协同 Agent 工作流的开发者。内容涵盖任务路由、Agent 通信,以及断路器和优雅降级等韧性模式。

主要功能

  1. 01分层 Agent 角色
  2. 02中心辐射与流水线模式
  3. 03按能力路由任务
  4. 04设计 Agent 间消息
  5. 05断路器与优雅降级
  6. 06日志、指标与追踪实践

适用场景

  1. 01组织研究与分析 Agent
  2. 02按能力将任务路由给 Agent
  3. 03规划 Agent 故障时的备用行为

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dengineproblem/agents-monorepo --skill ai-agent-orchestrator

安装后在 Claude Code 中输入/ai-agent-orchestrator确认已加载。

详细介绍

AI Agent 编排专家

多 Agent 系统设计与实现专家。

基本原则

Agent 层级
  • 编排器:主协调者,负责委派任务
  • 专用 Agent:面向特定领域(研究、分析、代码)
  • 实用 Agent:提供辅助功能(验证、格式化)
  • 监控:系统健康状况与错误处理

架构模式

集线器与辐射模式
class OrchestratorAgent:
    def __init__(self):
        self.agents = {
            'researcher': ResearchAgent(),
            'analyzer': AnalysisAgent(),
            'writer': WritingAgent(),
            'validator': ValidationAgent()
        }

    async def orchestrate_task(self, task):
        subtasks = self.decompose_task(task)

        results = []
        for subtask in subtasks:
            agent_type = self.route_task(subtask)
            result = await self.agents[agent_type].execute(subtask)
            results.append(result)

        return self.synthesize_results(results)
流水线模式
class AgentPipeline:
    def __init__(self):
        self.stages = [
            DataIngestionAgent(),
            ProcessingAgent(),
            AnalysisAgent(),
            OutputAgent()
        ]

    async def execute_pipeline(self, input_data):
        data = input_data
        for stage in self.stages:
            try:
                data = await stage.process(data)
            except Exception as e:
                return await self.handle_pipeline_error(stage, e, data)
        return data

任务路由

class TaskRouter:
    def __init__(self):
        self.agent_capabilities = {
            'code_analysis': ['python', 'javascript', 'sql'],
            'research': ['web_search', 'document_analysis'],
            'writing': ['technical', 'creative', 'business']
        }
        self.agent_load = {}

    def route_task(self, task):
        required_skills = self.extract_skills(task)

        capable_agents = [
            agent_id for agent_id, skills in self.agent_capabilities.items()
            if self.has_required_skills(skills, required_skills)
        ]

        return self.select_least_loaded_agent(capable_agents)

Agent 间通信

@dataclass
class AgentMessage:
    sender_id: str
    receiver_id: str
    message_type: MessageType
    payload: Dict[str, Any]
    correlation_id: str
    timestamp: float
    priority: int = 5

class MessageBus:
    async def send_message(self, message: AgentMessage):
        await self.validate_message(message)
        await self.route_message(message)
        await self.log_message(message)

错误处理

熔断器
class AgentCircuitBreaker:
    def __init__(self, failure_threshold=5, timeout=60):
        self.failure_count = 0
        self.failure_threshold = failure_threshold
        self.state = 'CLOSED'

    async def call_agent(self, agent, task):
        if self.state == 'OPEN':
            if time.time() - self.last_failure_time > self.timeout:
                self.state = 'HALF_OPEN'
            else:
                raise CircuitBreakerOpenError()

        try:
            result = await agent.execute(task)
            if self.state == 'HALF_OPEN':
                self.reset()
            return result
        except Exception as e:
            self.record_failure()
            raise
优雅降级
class ResilientOrchestrator:
    def __init__(self):
        self.agent_priorities = {
            'primary': ['gpt-4', 'claude-3'],
            'fallback': ['gpt-3.5', 'local-model'],
            'emergency': ['rule-based-agent']
        }

    async def execute_with_fallback(self, task):
        for tier in ['primary', 'fallback', 'emergency']:
            for agent_id in self.agent_priorities[tier]:
                try:
                    if await self.is_agent_healthy(agent_id):
                        return await self.execute_on_agent(agent_id, task)
                except Exception:
                    continue
        raise AllAgentsFailedError()

最佳实践

  • 实现包含关联 ID 的全面日志记录
  • 跟踪 Agent 性能指标
  • 对复杂工作流使用分布式追踪
  • 验证所有 Agent 间通信
  • 尽可能将 Agent 设计为无状态
  • 使用消息队列实现解耦

评论

支持 Markdown