funkyoz/mulagent 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

funkyoz/mulagent

最新稳定版本:1.1.0

Composer 安装命令:

composer require funkyoz/mulagent

包简介

LLM multi agent library

README 文档

README

MulAgent

GitHub Tests Packagist Downloads Latest Version License

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
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 8
  • Watchers: 3
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-12-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固