自恋一下
2026 年了,用 PHP 写 AI Agent,可能比 Python 更香。
Neuron AI
什么是 Neuron?
Neuron 是面向 PHP 的「Agentic 框架」,用来创建与编排 AI Agent,并提供 LLM 接口、数据加载、多 Agent 编排、RAG、监控与调试等完整生命周期支持。 说白了,它就是 PHP 的「LangChain/LlamaIndex 级存在」,但专为 PHP 工程师设计。
支持多 LLM:Anthropic、OpenAI、Gemini、XAI、Bedrock、Azure 等,一行代码切换提供商 内置工具包:计算器、SQL 查询、API 集成等,也支持自定义工具 兼容主流 PHP 框架:Laravel、Symfony、WordPress,或你自己的 MVC
为什么选 Neuron?
| Neuron(PHP) | 低 | 与 PHP 代码同仓库同部署 | 中低 |
我们选 Neuron 的理由很简单:
不用在 Python/PHP 间切换技术栈; Agent 和业务逻辑共用数据库、缓存、鉴权、中间件; 团队都是 PHP 工程师,上手成本几乎为 0。
webman + Neuron
webman 是什么?
webman 是基于 Workerman 的高性能 PHP Web 框架,支持 HTTP / WebSocket / TCP / UDP,并采用常驻内存、协程、连接池等技术,把 PHP 的性能天花板抬高了不止一个档次。 关键特性:
常驻内存:避免 PHP-FPM 请求—重启的重复开销; 高性能:官方与第三方压测显示,带 DB 查询时,webman 的单机吞吐可达数十万 QPS,远超传统 PHP-FPM 框架; 自定义进程:可以在同一进程组里跑监听、队列、定时任务、Agent 调度等长期进程; 二进制打包:支持打包成 phar,甚至在部分场景可以“不依赖 PHP 源码运行”。 把这些能力用在 AI Agent 上,意味着: Agent 和 HTTP API、WebSocket、业务系统可以“同居一个进程/服务器”; 工具调用、RAG、多 Agent 编排可以直接访问本地 ORM/Redis,无跨服务延迟; 扩容方式与普通 Web 服务一致,运维几乎无新增心智负担。
项目结构示例
下面这个结构是你可以直接照抄的“最小可用项目骨架”。
php-neuron-agent/├── app/│ ├── controller/│ │ └── AgentController.php # HTTP 入口│ ├── agent/│ │ ├── Orchestrator.php # 多 Agent 编排/调度│ │ └── agents/│ │ ├── CustomerServiceAgent.php│ │ ├── DataAnalysisAgent.php│ │ └── ToolsAgent.php│ └── middleware/├── config/│ ├── neuron.php│ ├── database.php│ └── redis.php├── public/│ └── index.php├── process/│ └── AgentMonitor.php # webman 自定义进程(可选:Agent 监控/队列)├── composer.json├── Dockerfile└── docker-compose.yml第一步:引入 Neuron
composer require neuron-core/neuron-aiNeuron 提供了一个 Agent 基类,你只需要继承并实现:
provider():指定 LLM 提供商和模型instructions():设置系统提示(角色、背景、规则)tools():注册可用工具/工具包
第二步:写一个“客服 Agent”的示例
// app/agent/agents/CustomerServiceAgent.phpnamespace app\agent\agents;use NeuronAI\Agent;use NeuronAI\Chat\Messages\UserMessage;use NeuronAI\SystemPrompt;use NeuronAI\Providers\Anthropic\Anthropic;use NeuronAI\Providers\AIProviderInterface;use NeuronAI\Tools\Toolkits\CalculatorToolkit;classCustomerServiceAgentextendsAgent{protectedfunctionprovider(): AIProviderInterface{// 一行切换 Anthropic/OpenAI/Gemini 等returnnew Anthropic( env('ANTHROPIC_API_KEY'),'claude-4-5-sonnet' ); }publicfunctioninstructions(): string{return (string) new SystemPrompt( background: ['你是一个友好的客服助手。'.'基于公司知识库与订单数据回答问题,语气专业且简洁。' ] ); }publicfunctiontools(): array{return [ CalculatorToolkit::make(), // 计算类工具// OrderToolkit::make(), // 自定义订单查询工具// KnowledgeBaseToolkit::make(), // 自定义 RAG 工具 ]; }}第三步:在 webman 控制器里调用 Agent
// app/controller/AgentController.phpnamespace app\controller;use support\Request;use app\agent\agents\CustomerServiceAgent;use NeuronAI\Chat\Messages\UserMessage;classAgentController{publicfunctionchat(Request $request){ $q = $request->input('question', ''); $agent = CustomerServiceAgent::make(); $response = $agent->chat(new UserMessage($q));return json(['answer' => $response->getMessage()->getContent(), ]); }}如果你愿意,也可以通过 webman 的自定义进程,把 Agent 调度做成后台长期服务(监听队列、定时触发等),与 HTTP 服务共享同一套基础设施。
多 Agent 协作架构(Orchestrator)
当业务变复杂时,通常需要多个“专职 Agent + 编排层”。
架构图
┌───────────────────────────────────────────────────┐│ Claude Code(主 Agent) ││ - 任务拆解 ││ - 最终审核 & 输出 │└──────┬───────────────────────────────┬─────────────┘ │ │┌──────▼──────────┐ ┌─────────▼──────────┐│ DataAnalysis │ │ CustomerService ││ Agent │ │ Agent ││ - SQL 查询 │ │ - 订单查询 ││ - 报表生成 │ │ - 知识库问答 │└─────────────────┘ └────────────────────┘ │ │ └───────────────┬───────────────┘ │ ┌────────▼─────────┐ │ Tools Agent │ │ - 通用计算 │ │ - 外部 API │ └──────────────────┘Orchestrator 示意(伪代码)
// app/agent/Orchestrator.phpnamespace app\agent;use app\agent\agents\DataAnalysisAgent;use app\agent\agents\CustomerServiceAgent;use NeuronAI\Chat\Messages\UserMessage;classOrchestrator{publicfunctionrun(string $userRequest): array{// 1)用主 Agent 拆解任务(可用 Claude/GPT 等)// 2)根据任务类型,分发给不同子 Agent// 3)并行/串行执行// 4)汇总结果,交给主 Agent 再做最终审核 & 输出// 示例:简单串行 $serviceAgent = CustomerServiceAgent::make(); $analysisAgent = DataAnalysisAgent::make(); $serviceRes = $serviceAgent->chat(new UserMessage($userRequest)); $analysisRes = $analysisAgent->chat(new UserMessage($userRequest));return ['customer_service' => $serviceRes->getMessage()->getContent(),'data_analysis' => $analysisRes->getMessage()->getContent(), ]; }}真实项目里,你可以用 webman 的异步/队列能力把子任务做成并行,以提升整体吞吐。
实战场景
场景 1:数据问答 + 自动出报表
用户输入:
帮我统计最近 30 天的每日销售额,并找出销量 Top 3 的商品。执行流程:
Claude Code(主 Agent):把用户需求拆成“查询 + 计算 + 排序 + 总结”几个子任务; DataAnalysis Agent:用 SQL 工具访问订单库,拿到原始数据; Tools Agent:完成聚合、Top3 计算与格式化; Claude Code:把结果整理成自然语言报表返回。 关键点:所有 Agent 都可以直接通过 ORM/Redis 访问同一个业务库,避免了“Python 调 PHP 接口”的网络往返和鉴权问题。
场景 2:客服 + 工单流转
用户输入:
我的订单 #12345 发货了吗?如果没发,帮我催一下。执行流程:
CustomerService Agent:调用订单/物流工具,查询状态; Tools Agent:根据规则触发内部 API 创建“催单工单”; Claude Code:根据返回结果,生成“人话”回复给用户。 因为所有逻辑都在同一个 PHP 项目里,你可以直接复用原有的事件/消息队列体系,不需要为 Agent 单独造一套。
性能对比
为什么说“PHP 也能很能打”?
webman 官方与第三方压测:带 DB 查询时,webman 的单机吞吐可达 39 万 QPS,比传统 PHP-FPM 架构高出近 80 倍; webman 还宣称在部分场景下,性能高于 Go 的 gin/echo 等框架约 1 倍; PHP 8.x 的 JIT 在 CPU 密集型计算上也有明显提升。 结合 Neuron 的多 Agent 编排与工具管理,这套栈完全可以撑住中小规模的生产流量。
一个“风格对标”的对比表
坦白讲,Python 在“原型验证 & 生态丰富度”上依旧有优势。但在生产环境,尤其是已有大量 PHP 业务资产的团队,PHP + webman + Neuron 明显更舒服。
夜雨聆风