funkyoz/mulagent
最新稳定版本:1.1.0
Composer 安装命令:
composer require funkyoz/mulagent
包简介
LLM multi agent library
README 文档
README
MulAgent is a PHP package that provides a simple Multi-Agent implementation for LLM applications. It allows you to create and orchestrate multiple AI agents that can work together, each with their own specific tools and capabilities. The package currently supports OpenAI's API.
Inspired by OpenAI Swarm.
Key Features
- Multi-agent orchestration with routines and handoffs
- Simple tool-based architecture using PHP functors
- Simple integration with OpenAI's API
- Support for PHP 8.1+
- Type-safe implementation
Quick Examples
1. Basic Agent Without Tools
use MulAgent\Agent\Agent; use MulAgent\LLM\OpenAI\OpenAIConfig; use MulAgent\LLM\OpenAI\OpenAILLM; use MulAgent\Message\Message; use MulAgent\MulAgent; // Configure OpenAI $config = OpenAIConfig::create([ 'model' => 'gpt-4', 'temperature' => 1, 'api_key' => getenv('OPENAI_API_KEY'), ]); // Create LLM instance $llm = new OpenAILLM($config); // Create an agent $agent = new Agent( name: 'Assistant', llm: $llm, instruction: 'You are a helpful assistant.' ); // Initialize MulAgent $mulAgent = new MulAgent($agent); // Run a conversation $messages = [Message::user('What is the capital of France?')]; $response = $mulAgent->run($messages);
2. Agent with Custom Tools
// Create calculator tools using PHP functors $addTool = new class () { public string $name = 'add'; public function __invoke(float $first, float $second): string { return (string)($first + $second); } }; $multiplyTool = new class () { public string $name = 'multiply'; public function __invoke(float $first, float $second): string { return (string)($first * $second); } }; $divideTool = new class () { public string $name = 'divide'; public function __invoke(float $first, float $second): string { if (.0 === $second) { return 'Cannot divide by zero'; } return (string)($first / $second); } }; // Create and use the agent with calculator tools $agent = new Agent( name: 'Calculator', llm: $llm, instruction: 'You are a math assistant.', tools: [$addTool, $multiplyTool, $divideTool] ); $mulAgent = new MulAgent($agent);
3. Agent with Handoff Capability
use MulAgent\Tool\AgentTool; // Create two specialized agents $mathAgent = new Agent( name: 'Math Expert', llm: $llm, instruction: 'You are a mathematics expert.' ); $scienceAgent = new Agent( name: 'Science Expert', llm: $llm, instruction: 'You are a science expert.', tools: [new AgentTool($mathAgent)] // Science agent can hand off to math agent ); $mulAgent = new MulAgent($scienceAgent);
For more detailed examples and advanced usage, check out the examples directory.
统计信息
- 总下载量: 6
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 8
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-12-10
