php方案 PHP 生态里做多智能体最成熟的
【代码】php方案 PHP 生态里做多智能体最成熟的。
·
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 即可用,无需额外适配
更多推荐




所有评论(0)