Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Neuron Ai Laravel Package

neuron-core/neuron-ai

Neuron is a PHP framework for building agentic apps: create and orchestrate AI agents, integrate LLM providers, load data, run multi-agent workflows, and monitor/debug behavior. Works well with Laravel and Symfony.

View on GitHub
Deep Wiki
Context7
3.16.6

Support Guzzle 8 - PR #640 by @simPod

3.16.5
  • Revert support for Guzzle 8
  • Default observer now accept ObserverInterface - PR #637 by @jremmurd
3.16.4

MediaType enum

This release introduces the MediaType enum to make it easier to define media type of content blocks acriss the framework:

use NeuronAI\Chat\Enum\MediaType;

$message->addContent(
    new ImageContent(
        source: 'https://placehold.co/600x400/EEE/31343C',
        sourceType: SourceType::URL,
        mediaType: MediaType::PNG
    )
);
3.16.3

Improve Chat History Consistency

This release fixes an issue where chat history would get stuck in an inconsistent state if the http request against the provider API fails.

Now the agent store the incoming user message in the chat hisotry after the http request, so it will be sure to save the pair user-assistant always consistent.

3.16.1
  • Fix workflow DatabasePersistence to work with Postgre and SQLite
  • Add --autoload-file option to neuron cli - PR #632 by @bytestream
  • Allow JSON-safe metadata types in RAG Document - PR #631 by @bytestream
3.16.0

Parallel Evaluations

This release ships the support or running your evaluations suite in parallel.

vendor/bin/neuron evaluations --concurrency=3 --path=evaluators

You only have to take care o how many concurrent connections your providers allows you to run.

3.15.30

Code fixes and performance improvements by @Denitz

  • #617
  • #618
  • #619
  • #620
  • #621
  • #623
  • #624
  • #625
  • #626
  • #627
3.15.29

Fix OpenAI providers on structured output strict mode

3.15.28

Fix rerankers to get a string query.

3.15.27

New AnthropicVertex provider

The new AnthropicVertex provider allows you to interact with Anthropic models on Google Vertex model garden.

Inspired by @specialtactics in discussion #569

class MyAgent extends Agent
{
    protected function provider(): AIProviderInterface
    {
        return new AnthropicVertex(
            pathJsonCredentials: 'GOOGLE_FILE_CREDENTIALS_PATH',
            location: 'GOOGLE_LOCATION',
            projectId: 'GOOGLE_PROJECT_ID',
            model: 'ANTHROPIC_MODEL',
            parameters: [], // Add custom params (temperature, logprobs, etc)
        );
    }
}

Documentation

3.15.26

Fix support for AG-UI protocol in AGUiAdapter - PR #607 by @lussoluca

3.15.24

Supporting topN argument in ToolSearchMiddleware.

3.15.23
  • Fix AWS Bedrock streaming - PR #601 by @campbellking
  • Fix Anthropic stream without system prompt - PR #602 by @campbellking
  • Fix OpenAIResponses to merge raw tool parameters - PR #603 by @AhVSag
  • Add custom filtering options for Qdrant and Meilisearch vector stores - PR #604 by @bytestream
3.15.22

Support OpenAILikeEmbeddings custom http client - PR #599 by @pcastellazzi

3.15.21

Support Gemini citations when streaming

3.15.20

Support mistral image content block for base64 format - Fix #596

3.15.19

Introducing the Regex validation rule for structured output:

namespace App\Neuron\Output;

use NeuronAI\StructuredOutput\Validation\Rules\Regex;

class Coupon
{
    #[Regex('/^[A-Z]{2}\d{4}$/')]
    public string $code;
}

Check it out in the documentation: https://docs.neuron-ai.dev/agent/structured-output#regex

3.15.18

improve doc-block in agent class

3.15.17
  • Ensure ToolResultMessage uses indexed tools array - PR #594 by @Tinywan
3.15.16

Make Gemini baseUri customizable

3.15.15

Make zai url customizable - PR #589 by @rafaelchavesfreitas

3.15.14

Deprecate the InspectorObserver, use the new observer from the Inspector PHP package - Inspector/Neuron/InspectorObserver

https://docs.inspector.dev/guides/neuron-ai

3.15.13

Fix MeilisearchVectorStore - PR #590 by @bytestream

3.15.12

Fix AGUIAdapter event format

3.15.11

Collect Cached Input Tokens, Reasoning Tokens across providers - PR #572 by @mattmilesi

3.15.10
  • Support nullable for Enum validation rule in structured output - PR #587 by @bytestream
3.15.9
  • Fix Gemini structured output collision with DTO properties named "$type" - by @ilvalerione
3.15.8
  • Fix AzureOpenAI usl format
3.15.7
  • Fix typo in README - by @meichuanyi
  • Extend NeuronException in HttpException - by @bytestream
  • Set response in HttpException when available - by @bytestream
  • Restore original parameters in AI Providers after structured output - by @ilvalerione
3.15.6
  • Make the LogObserver easy to extends - PR #582 by @bytestream
  • Docker configuration for local development and test
3.15.5

Fix Qdrant async ops

3.15.4

Improve streaming performance for Guzzle and Amp stream adapters

3.15.3

Improve streaming performance for Guzzle and Amp stream adapters

3.15.2

Improve streaming performance

3.15.1

Fix tracking request ID on MCP tool call

3.15.0

HttpClient & MCP Transport - Security & Performance Fixes

Security

  • Fixed: Null pointer dereference in HttpException::networkError()
  • Fixed: SSRF via MCP server endpoint redirect in SseHttpTransport
  • Fixed: CRLF header injection in SseHttpTransport::buildHeaderString()
  • Fixed: Unvalidated URIs in HttpRequest

Performance

  • Fixed: Guzzle Client recreated on every request
  • Fixed: Amp HTTP Client rebuilt on every request
  • Optimized: Byte-by-byte readLine() in stream adapters

Reliability

  • Fixed: Unbounded SSE buffer in SseHttpTransport
  • Fixed: Missing timeouts in AmpHttpClient multipart path
  • Removed: Dead catch block in AmpStream::readLine()
3.14.6

Optimize and secure RAG components (Vector similarity, text splitters)

3.14.5
  • Improve MCP components lifecycle - PR #575 by @tw2066
  • restrict to read permission on github actions
3.14.4

Fix tool array in ToolCallMessage

2.14.3
3.4.13

More efficient tool search with fuzzy and tokenized keywords

3.4.12

Tool search inject system prompt to ensure the agent behave as expected

3.4.11

Introducing Tool Search

By default every time the provider is invoked all tools are loaded and transmitted to the backend LLM. Complex production agents connected to email, calendar, drive, CRM, and and multiple MCP servers can easily reach hundreds of tools, each carrying its name, description, parameter schema, and usage hints.

This release introduces the global middleware ToolSearchMiddleware that you can attach to your agent:

class MyAgent extends Agennt
{
    ...
    
    /**
     * Define the global middleware.
     */
    protected function globalMiddleware(): array
    {
        return [
            new ToolSearchMiddleware([
                MyCustomTool::make(),
                ...CalculatorToolkit::make()->tools()
                ...MCPConnector::make([...])->tools()
            ]),
        ];
    }
    
    /**
     * Provide core tools to the agent.
     */
    protected function tools(): array
    {
        return [
            // A list of core tools that the model always has available
            TavilySearchTool::make(...),
        ];
    }
}

Here is the full documentation: https://docs.neuron-ai.dev/agent/middleware#tool-search

2.14.2
  • Fix OpenSearch vector store
  • Add gemoni models that support structured output with tool calls - PR #576 by @tecbay
3.4.9

Added new Gemini models with support for structured output with tools

3.4.8

support reasoning content in Deepseek and Alibaba providers - PR #573 - by @tw2066

3.4.7

fix Gemini function call with custom tools - PR #574 by @marceloandrader

3.4.6

Custom Tool Call Tracking for Max Runs - PR #566 by @tryvin

class MyCustomTool extends Tool implements HasRunKey
{
    ...

    public function getRunKey(): string
    {
        return $this->name . ':' . json_encode($this->inputs);
    }
}
3.4.3

Add Alibaba dash scope model platform provider - PR #560 by @tw2066

3.4.2

Improve the Workflow Executor design

3.4.1
3.4.0

Introducing Parallel Branches

This release introduce the ability of the workflow component to run parallel branches: https://docs.neuron-ai.dev/workflow/loops-and-branches#parallel-branches

When you want to call the execution of multiple branches in parallel, you need to return the special event ParallelEvent from your node.

use NeuronAI\Workflow\Events\ParallelEvent;

class DocumentProcessing extends Node
{
    public function __invoke(StartEvent $event, WorkflowState $state): ParallelEvent
    {
        // Node logic here...
	
        // Finally return a ParallelEvent
        return new ParallelEvent([
            'text' => new TextProcessEvent(),
            'image' => new ImageProcessEvent(),
        ]);
    }
}
3.3.14

Several improvements and fixes to the AWS Bedrock provider - PR #562 by @vitaliiivanovspryker

3.3.13

Make Http clients implementations ready for extension - Fix #557 #558

3.3.12
  • Fix Typesense vector store - #552
  • Fix OpenAI Responses message mapper - Fix #556 merging PR #559 by @iztok
3.3.11

Fix Tavily search tool - PR #561 by @AlexTr

3.3.10

Fix #554

3.3.9

Fix tool content deserialization in chat history - Fix #550 Add options argument to GuzzleHttpClient - Fix #551

3.3.8

Improve components serialization to better support workflow interruption - PR #543 by @tryvin

3.3.7

Merged:

3.3.6

Fix #544 - get schema in SQL Tools

3.3.5
  • Support Anthropic image as a file ID
  • Fix Ollama usage reporting when streaming
3.3.4

Fix Mistral token usage reporting

3.3.3

fix eloquent chat history

3.3.2
  • New Cohere embeddings provider
  • Support OpenSearch 3.6.0 or higher
3.3.1
  • Fix error handler in case MissingCallbackParameter
  • Improve chat history trim for better performance
3.3.0

Chat History improvements

In the process of fixing a bug ( #523 ) we worked on a more efficient algorithm to manage the cut of the message history if it goes out of the context window. The intent was to minimize the context loss when cutting.

The context window cut must be considered the last resort to prevent fatal errors with provider APIs. Before reaching the limit of the context window you should use summarization to compact the context into a single message as a new starting point.

In order to handle all edge cases, the internal trimmer can identify a cutting point slightly less aggressive than the initially identified. To make sure the agent conversation stays in the limit, you should configure the context window limit in the agent chat history with a margin of 5%-10% from the actual limit of the underlying model.

If your model works with a 200K context window, you should instantiate your chat history with 190K for example.

Evaluation improvements

We introduced a couple of built-in rules for Ai as a judge assertions:

https://docs.neuron-ai.dev/agent/evaluation#ai-as-a-judge

3.2.13

Evaluation score tracking

3.2.12

Support Anthropic prompt cache

PR #482 by @hudhaifas

class MyAgent extends Agent
{
    protected function provider(): AIProviderInterface
    {
        return new Anthropic(
            key: 'ANTHROPIC_KEY',
            model: 'ANTHROPIC_MODEL'
        )->systemPromptBlocks([
            ['type' => 'text', 'text' => 'Static instructions...', 'cache_control' => ['type' => 'ephemeral']],
            ['type' => 'text', 'text' => 'Dynamic context...']
        ]);
    }
}
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
calmfox/watch-sylius
damienfern/grpc-symfony-bundle
atoolo/index-bundle
atoolo/genai-bundle
coprotoai/laravel-ticket
davidjln/llm-carbon-bundle
cryonighter/valid-request-bundle
coolms/taxonomy-bundle
coolms/field-bundle
articulate-orm/symfony
aaix/laravel-tall-architect
ephoto/akeneo-connector
emmanuelballery/eb-plantumlbundle
emielburgman/symfony-visitor-beacon
emielburgman/symfony-visit-storage
emielburgman/symfony-security-headers
emielburgman/symfony-log-viewer
emarref/xdebug-bundle
emarref/pubnub-bundle
elriseio/finance-money-bundle