Hyperf 本身没有多智能体模块,PHP 生态里做多智能体最成熟的是 https://github.com/neuron-core/neuron-ai,支持 Workflow +  多 Node(Agent)编排,可以在 Hyperf 里直接用。

  给你一个完整的多智能体案例:                                                                                          
  composer require neuron-core/neuron-ai                                                                                
  <?php
  // multi_agent.php
  require_once __DIR__ . '/vendor/autoload.php';

  use NeuronAI\Agent;
  use NeuronAI\SystemPrompt;
  use NeuronAI\Providers\Anthropic;
  use NeuronAI\Chat\Messages\UserMessage;
  use NeuronAI\Workflow\Workflow;
  use NeuronAI\Workflow\Node;
  use NeuronAI\Workflow\WorkflowState;
  use NeuronAI\Workflow\Edge;

  // ─── 公共 Provider 工厂 ───────────────────────────────────────────────────────

  function makeProvider(): Anthropic
  {
      return new Anthropic(
          apiKey: getenv('ANTHROPIC_API_KEY'),
          model:  'claude-sonnet-4-6',
      );
  }

  // ─── Agent 1:研究员 ──────────────────────────────────────────────────────────

  class ResearcherAgent extends Agent
  {
      protected function provider(): Anthropic
      {
          return makeProvider();
      }

      protected function instructions(): string
      {
          return new SystemPrompt(
              background: ['你是一名专业研究员,负责收集和整理信息。'],
              steps:      ['分析用户的问题', '提供详细的背景信息和关键要点'],
              output:     ['输出结构化的研究摘要,包含:背景、关键点、数据支撑'],
          );
      }
  }

  // ─── Agent 2:写作者 ──────────────────────────────────────────────────────────

  class WriterAgent extends Agent
  {
      protected function provider(): Anthropic
      {
          return makeProvider();
      }

      protected function instructions(): string
      {
          return new SystemPrompt(
              background: ['你是一名专业内容写作者,擅长将研究内容转化为易读文章。'],
              steps:      ['基于研究摘要撰写文章', '确保内容流畅、逻辑清晰'],
              output:     ['输出完整的文章,包含标题、正文、结论'],
          );
      }
  }

  // ─── Agent 3:审校者 ──────────────────────────────────────────────────────────

  class ReviewerAgent extends Agent
  {
      protected function provider(): Anthropic
      {
          return makeProvider();
      }

      protected function instructions(): string
      {
          return new SystemPrompt(
              background: ['你是一名严格的内容审校者。'],
              steps:      ['检查文章的准确性、逻辑性和可读性', '提出改进建议或直接优化'],
              output:     ['输出最终优化后的文章'],
          );
      }
  }

  // ─── Workflow Node 定义 ───────────────────────────────────────────────────────

  class ResearchNode extends Node
  {
      public function run(WorkflowState $state): WorkflowState
      {
          echo "[研究员] 正在研究: {$state->get('topic')}\n";

          $agent    = new ResearcherAgent();
          $response = $agent->chat(new UserMessage("请研究这个主题:{$state->get('topic')}"));

          $state->set('research', $response->getContent());
          echo "[研究员] 完成\n\n";

          return $state;
      }
  }

  class WriteNode extends Node
  {
      public function run(WorkflowState $state): WorkflowState
      {
          echo "[写作者] 正在撰写文章...\n";

          $agent    = new WriterAgent();
          $response = $agent->chat(new UserMessage(
              "基于以下研究内容撰写文章:\n\n{$state->get('research')}"
          ));

          $state->set('article', $response->getContent());
          echo "[写作者] 完成\n\n";

          return $state;
      }
  }

  class ReviewNode extends Node
  {
      public function run(WorkflowState $state): WorkflowState
      {
          echo "[审校者] 正在审校文章...\n";

          $agent    = new ReviewerAgent();
          $response = $agent->chat(new UserMessage(
              "请审校并优化以下文章:\n\n{$state->get('article')}"
          ));

          $state->set('final', $response->getContent());
          echo "[审校者] 完成\n\n";

          return $state;
      }
  }

  // ─── 构建并运行 Workflow ───────────────────────────────────────────────────────

  $topic = '人工智能在医疗诊断中的应用';

  echo "=== 多智能体写作流水线 ===\n";
  echo "主题:{$topic}\n\n";

  $finalState = Workflow::make(new WorkflowState(['topic' => $topic]))
      ->addNode(new ResearchNode())
      ->addNode(new WriteNode())
      ->addNode(new ReviewNode())
      ->addEdge(new Edge(ResearchNode::class, WriteNode::class))
      ->addEdge(new Edge(WriteNode::class, ReviewNode::class))
      ->run();

  echo "=== 最终文章 ===\n";
  echo $finalState->get('final') . "\n";

  流程:
  用户输入 → ResearcherAgent(研究) → WriterAgent(写作) → ReviewerAgent(审校) → 输出

  运行:
  ANTHROPIC_API_KEY=your_key php multi_agent.php

  说明:
  - 每个 Agent 是独立的智能体,有自己的 system prompt 和职责
  - WorkflowState 在节点间传递共享数据(研究结果 → 文章 → 最终稿)
  - Edge 定义节点执行顺序,支持条件分支(条件边)
  - 在 Hyperf 里直接 composer require 即可用,无需额外适配
Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐