定制 maestroerror/laragent 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

maestroerror/laragent

Composer 安装命令:

composer require maestroerror/laragent

包简介

Power of AI Agents in your Laravel project

README 文档

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

"The easiest way to create and maintain AI agents in your Laravel projects."

LarAgent is an AI agent development framework for Laravel
Officially powered by Redberry, a Diamond-tier Laravel partner.

WebsiteDocsDiscordBlogAI Dev Sprint

🚀 What is LarAgent?

LarAgent is an open-source framework that lets you create powerful AI agents in Laravel with minimal configuration and maximum extensibility.

LarAgent brings Laravel-grade productivity to AI agent development. That’s why Laravel + LarAgent is the most productive stack out there for building AI agents.

Whether you're looking to automate internal operations or build conversational experiences for your product, LarAgent offers developer-first tools:

  • Eloquent-style API for building real AI agents - define agents, tools, memories, and workflows
  • First-class tooling system with MCP server support
  • Pluggable memory & context management
  • Multi-agent workflows with queues, chainable tasks, and reasoning
  • Structured output for reliability and seamless integration
  • Multi-modal input and modular provider support
  • Extensive Event system for effortless customization and observability
  • Built-in API exposure via OpenAI-compatible schema

🧠 Backed by Redberry

LarAgent is officially powered by Redberry, one of only 10 Diamond-tier Laravel partners worldwide. This partnership ensures the continued evolution of LarAgent with increased engineering support, better documentation, and a growing ecosystem of AI-first Laravel tools.

Need help with building your AI agent? Talk to us about our 5-week PoC sprint for AI agent development.

📚 Documentation

Check out our full documentation to get started.

If you prefer article to get started, check it out: Laravel AI Agent Development Made Easy

💬 Community & Support

Join our Discord community to ask questions, suggest features, or share what you're building.

🧩 Ecosystem

  • MCP Client – a modular client for managing tools and resources from MCP servers

You can find tutorials here:

Each GitHub ⭐️ helps the community grow. Thanks for the support!

Any questions? Join our Discord server!

Table of Contents

Introduction

LarAgent brings the power of AI agents to your Laravel projects with an elegant syntax. Create, extend, and manage AI agents with ease while maintaining Laravel's fluent API design patterns.

What if you can create AI agents just like you create any other Eloquent model?

Why not?! 👇

php artisan make:agent YourAgentName

And it looks familiar, isn't it?

namespace App\AiAgents;

use LarAgent\Agent;

class YourAgentName extends Agent
{
    protected $model = 'gpt-4';

    protected $history = 'in_memory';

    protected $provider = 'default';

    protected $tools = [];

    public function instructions()
    {
        return "Define your agent's instructions here.";
    }

    public function prompt($message)
    {
        return $message;
    }
}

And you can tweak the configs, like history

// ...
protected $history = \LarAgent\History\CacheChatHistory::class;
// ...

Or add temperature:

// ...
protected $temperature = 0.5;
// ...

Even disable parallel tool calls:

// ...
protected $parallelToolCalls = false;
// ...

Or configure multi-provider fallback for automatic failover:

// Simple array of providers (first is primary, others are fallbacks in order)
protected $provider = ['default', 'gemini', 'claude'];

// With per-provider config overrides
protected $provider = [
    'default',
    'gemini' => ['model' => 'gemini-2.0-flash'],
    'claude',
];

Oh, and add a new tool as well:

// ...
#[Tool('Get the current weather in a given location')]
public function exampleWeatherTool($location, $unit = 'celsius')
{
    return 'The weather in '.$location.' is '.'20'.' degrees '.$unit;
}
// ...

And run it, per user:

Use App\AiAgents\YourAgentName;
// ...
YourAgentName::forUser(auth()->user())->respond($message);

Or use a custom name for the chat history:

Use App\AiAgents\YourAgentName;
// ...
YourAgentName::for("custom_history_name")->respond($message);

Let's find out more in documentation 👍

Features

  • Eloquent-like syntax for creating and managing AI agents
  • Laravel-style artisan commands
  • Flexible agent configuration (model, temperature, context window, etc.)
  • Structured output handling
  • Image input support
  • Easily extendable, including chat histories and LLM drivers
  • Multiple built-in chat history storage options (in-memory, cache, json, etc.)
    • Per-user chat history management
    • Custom chat history naming support
  • Custom tool creation with attribute-based configuration
    • Tools via classes
    • Tools via methods of AI agent class (Auto)
    • Tool facade for shortened tool creation
    • Parallel tool execution capability (can be disabled)
  • Extensive Event system for agent interactions (Nearly everything is hookable)
  • Multiple provider support (Can be set per model)
  • Multi-provider fallback with automatic failover
  • Support for both Laravel and standalone usage

Getting Started

Requirements

  • Laravel 10.x or higher
  • PHP 8.3 or higher

Installation

You can install the package via composer:

composer require maestroerror/laragent

You can publish the config file with:

php artisan vendor:publish --tag="laragent-config"

These are the contents of the published config file:

return [
    'default_driver' => \LarAgent\Drivers\OpenAi\OpenAiDriver::class,
    'default_chat_history' => \LarAgent\History\InMemoryChatHistory::class,

    'providers' => [

        'default' => [
            'label' => 'openai',
            'api_key' => env('OPENAI_API_KEY'),
            'default_truncation_threshold' => 50000,
            'default_max_completion_tokens' => 100,
            'default_temperature' => 1,
        ],
    ],
];

Configuration

You can configure the package by editing the config/laragent.php file. Here is an example of custom provider with all possible configurations you can apply:

    // Example custom provider with all possible configurations
    'custom_provider' => [
        // Just name for reference, changes nothing
        'label' => 'mini',
        'model' => 'gpt-3.5-turbo',
        'api_key' => env('CUSTOM_API_KEY'),
        'api_url' => env('CUSTOM_API_URL'),
        // Default driver and chat history
        'driver' => \LarAgent\Drivers\OpenAi\OpenAiDriver::class,
        'chat_history' => \LarAgent\History\InMemoryChatHistory::class,
        'default_truncation_threshold' => 15000,
        'default_max_completion_tokens' => 100,
        'default_temperature' => 1,
        // Enable/disable parallel tool calls
        'parallel_tool_calls' => true,
        // Store metadata with messages
        'store_meta' => true,
        // Save chat keys to memory via chatHistory
        'save_chat_keys' => true,
    ],

Provider just gives you the defaults. Every config can be overridden per agent in agent class.

OpenAI Responses API

For newer OpenAI models that require the Responses API (e.g. models using reasoning_effort), use the OpenAiResponsesDriver:

    'openai_responses' => [
        'label' => 'openai_responses',
        'api_key' => env('OPENAI_API_KEY'),
        'driver' => \LarAgent\Drivers\OpenAi\OpenAiResponsesDriver::class,
        'default_truncation_threshold' => 50000,
        'default_max_completion_tokens' => 10000,
        'default_temperature' => 1,
    ],

You can then use reasoning_effort via the agent's $extras property:

class MyReasoningAgent extends Agent
{
    protected $provider = 'openai_responses';
    protected $model = 'gpt-5.4-mini';
    protected $extras = ['reasoning_effort' => 'high'];
}

For third-party providers offering a Responses-API-compatible endpoint, use OpenAiResponsesCompatible with an api_url.

Contributing

We welcome contributions to LarAgent! Whether it's improving documentation, fixing bugs, or adding new features, your help is appreciated. Here's how you can contribute.

We aim to review all pull requests within a 2 weeks. Thank you for contributing to LarAgent!

Getting Help

  • Open an issue for bugs or feature requests
  • Join discussions in existing issues
  • Join community server on Discord
  • Reach out to maintainers for guidance

Testing

composer test

To run manual tests create files in testsManual\.gitignore with API keys and run:

./vendor/bin/pest testsManual

API key files looks like:

<?php

return 'YourApiKey';

Security

Please review our security policy on how to report security vulnerabilities.

Credits

Thanks to these people and projects, LarAgent would not be possible without them:

License

The MIT License (MIT). Please see License File for more information.

Roadmap

Please see GitHub Projects for more information on the future development of LarAgent.

maestroerror/laragent 适用场景与选型建议

maestroerror/laragent 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 165.46k 次下载、GitHub Stars 达 639, 最近一次更新时间为 2025 年 02 月 15 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「laravel」 「Agent」 「ai」 「rag」 「maestroerror」 「laragent」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 maestroerror/laragent 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 maestroerror/laragent 我们能提供哪些服务?
定制开发 / 二次开发

基于 maestroerror/laragent 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 165.46k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 639
  • 点击次数: 16
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 639
  • Watchers: 12
  • Forks: 58
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-02-15