PHP code example of funkyoz / mulagent

1. Go to this page and download the library: Download funkyoz/mulagent library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

funkyoz / mulagent example snippets


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);

// 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);

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);