From b9c33d54755064a96032ac6e15f83ead18ec05bf Mon Sep 17 00:00:00 2001 From: Christopher Hertel Date: Thu, 11 Sep 2025 20:42:45 +0200 Subject: [PATCH] Fix Indexer & Agent usage in examples --- examples/anthropic/toolcall.php | 2 +- examples/bedrock/toolcall-claude.php | 2 +- examples/bedrock/toolcall-nova.php | 2 +- examples/gemini/server-tools.php | 2 +- examples/gemini/structured-output-clock.php | 2 +- examples/gemini/structured-output-math.php | 2 +- examples/gemini/toolcall.php | 2 +- examples/memory/mariadb.php | 3 ++- examples/mistral/structured-output-math.php | 2 +- examples/mistral/toolcall-stream.php | 2 +- examples/mistral/toolcall.php | 2 +- examples/ollama/structured-output-math.php | 2 +- examples/ollama/toolcall.php | 2 +- examples/openai/structured-output-math.php | 2 +- examples/openai/toolcall-stream.php | 2 +- examples/openai/toolcall.php | 2 +- examples/rag/cache.php | 9 +++++---- examples/rag/chromadb.php | 9 +++++---- examples/rag/clickhouse.php | 9 +++++---- examples/rag/cloudflare.php | 9 +++++---- examples/rag/in-memory.php | 9 +++++---- examples/rag/mariadb-gemini.php | 9 +++++---- examples/rag/mariadb-openai.php | 9 +++++---- examples/rag/meilisearch.php | 9 +++++---- examples/rag/milvus.php | 9 +++++---- examples/rag/mongodb.php | 9 +++++---- examples/rag/neo4j.php | 7 ++++--- examples/rag/pinecone.php | 9 +++++---- examples/rag/postgres.php | 9 +++++---- examples/rag/qdrant.php | 9 +++++---- examples/rag/surrealdb.php | 7 ++++--- examples/rag/typesense.php | 9 +++++---- examples/rag/weaviate.php | 9 +++++---- examples/toolbox/brave.php | 2 +- examples/toolbox/clock.php | 2 +- examples/toolbox/mapbox-geocode.php | 2 +- examples/toolbox/mapbox-reverse-geocode.php | 2 +- examples/toolbox/serpapi.php | 2 +- examples/toolbox/tavily.php | 2 +- examples/toolbox/weather-event.php | 2 +- examples/vertexai/server-tools.php | 2 +- examples/vertexai/structured-output-clock.php | 2 +- examples/vertexai/structured-output-math.php | 2 +- examples/vertexai/toolcall.php | 2 +- 44 files changed, 111 insertions(+), 93 deletions(-) diff --git a/examples/anthropic/toolcall.php b/examples/anthropic/toolcall.php index 926c05767..06a37a835 100644 --- a/examples/anthropic/toolcall.php +++ b/examples/anthropic/toolcall.php @@ -26,7 +26,7 @@ $wikipedia = new Wikipedia(http_client()); $toolbox = new Toolbox([$wikipedia], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser('Who is the current chancellor of Germany?')); $result = $agent->call($messages); diff --git a/examples/bedrock/toolcall-claude.php b/examples/bedrock/toolcall-claude.php index 6914151f8..16b23403b 100644 --- a/examples/bedrock/toolcall-claude.php +++ b/examples/bedrock/toolcall-claude.php @@ -32,7 +32,7 @@ $wikipedia = new Wikipedia(http_client()); $toolbox = new Toolbox([$wikipedia]); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser('Who is the current chancellor of Germany?')); $result = $agent->call($messages); diff --git a/examples/bedrock/toolcall-nova.php b/examples/bedrock/toolcall-nova.php index 1f1f7e7cc..2b361b9f4 100644 --- a/examples/bedrock/toolcall-nova.php +++ b/examples/bedrock/toolcall-nova.php @@ -32,7 +32,7 @@ $wikipedia = new Wikipedia(http_client()); $toolbox = new Toolbox([$wikipedia]); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::ofUser('Who is the current chancellor of Germany? Use Wikipedia to find the answer.') diff --git a/examples/gemini/server-tools.php b/examples/gemini/server-tools.php index 2a47ebaf8..1bd27da41 100644 --- a/examples/gemini/server-tools.php +++ b/examples/gemini/server-tools.php @@ -27,7 +27,7 @@ $toolbox = new Toolbox([new Clock()], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $llm, [$processor], [$processor], logger()); +$agent = new Agent($platform, $llm, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::ofUser( diff --git a/examples/gemini/structured-output-clock.php b/examples/gemini/structured-output-clock.php index cc6b1e717..b25a2fd2c 100644 --- a/examples/gemini/structured-output-clock.php +++ b/examples/gemini/structured-output-clock.php @@ -29,7 +29,7 @@ $toolbox = new Toolbox([$clock]); $toolProcessor = new ToolProcessor($toolbox); $structuredOutputProcessor = new StructuredOutputProcessor(); -$agent = new Agent($platform, $model, [$toolProcessor, $structuredOutputProcessor], [$toolProcessor, $structuredOutputProcessor], logger()); +$agent = new Agent($platform, $model, [$toolProcessor, $structuredOutputProcessor], [$toolProcessor, $structuredOutputProcessor], logger: logger()); $messages = new MessageBag(Message::ofUser('What date and time is it?')); $result = $agent->call($messages, ['response_format' => [ diff --git a/examples/gemini/structured-output-math.php b/examples/gemini/structured-output-math.php index 549b4ce24..8e77e8328 100644 --- a/examples/gemini/structured-output-math.php +++ b/examples/gemini/structured-output-math.php @@ -23,7 +23,7 @@ $model = new Gemini(Gemini::GEMINI_1_5_FLASH); $processor = new AgentProcessor(); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('You are a helpful math tutor. Guide the user through the solution step by step.'), Message::ofUser('how can I solve 8x + 7 = -23'), diff --git a/examples/gemini/toolcall.php b/examples/gemini/toolcall.php index e9355312d..71ee714cd 100644 --- a/examples/gemini/toolcall.php +++ b/examples/gemini/toolcall.php @@ -25,7 +25,7 @@ $toolbox = new Toolbox([new Clock()], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $llm, [$processor], [$processor], logger()); +$agent = new Agent($platform, $llm, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser('What time is it?')); $result = $agent->call($messages); diff --git a/examples/memory/mariadb.php b/examples/memory/mariadb.php index f54213727..e6f724bad 100644 --- a/examples/memory/mariadb.php +++ b/examples/memory/mariadb.php @@ -20,6 +20,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\MariaDb\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -59,7 +60,7 @@ // create embeddings for documents as preparation of the chain memory $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); $vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); // Execute a chat call that is utilizing the memory diff --git a/examples/mistral/structured-output-math.php b/examples/mistral/structured-output-math.php index 65b054d69..822e1e8d8 100644 --- a/examples/mistral/structured-output-math.php +++ b/examples/mistral/structured-output-math.php @@ -28,7 +28,7 @@ $serializer = new Serializer([new ObjectNormalizer()], [new JsonEncoder()]); $processor = new AgentProcessor(new ResponseFormatFactory(), $serializer); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('You are a helpful math tutor. Guide the user through the solution step by step.'), Message::ofUser('how can I solve 8x + 7 = -23'), diff --git a/examples/mistral/toolcall-stream.php b/examples/mistral/toolcall-stream.php index 475cc8225..b13a54ab7 100644 --- a/examples/mistral/toolcall-stream.php +++ b/examples/mistral/toolcall-stream.php @@ -26,7 +26,7 @@ $transcriber = new YouTubeTranscriber(http_client()); $toolbox = new Toolbox([$transcriber], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser('Please summarize this video for me: https://www.youtube.com/watch?v=6uXW-ulpj0s')); $result = $agent->call($messages, [ diff --git a/examples/mistral/toolcall.php b/examples/mistral/toolcall.php index 7ab6b7a01..44ee8aea7 100644 --- a/examples/mistral/toolcall.php +++ b/examples/mistral/toolcall.php @@ -25,7 +25,7 @@ $toolbox = new Toolbox([new Clock()], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser('What time is it?')); $result = $agent->call($messages); diff --git a/examples/ollama/structured-output-math.php b/examples/ollama/structured-output-math.php index 02003e4f1..56b3c27f9 100644 --- a/examples/ollama/structured-output-math.php +++ b/examples/ollama/structured-output-math.php @@ -23,7 +23,7 @@ $model = new Ollama(); $processor = new AgentProcessor(); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('You are a helpful math tutor. Guide the user through the solution step by step.'), Message::ofUser('how can I solve 8x + 7 = -23'), diff --git a/examples/ollama/toolcall.php b/examples/ollama/toolcall.php index d57fbe3c6..2d6b12a81 100644 --- a/examples/ollama/toolcall.php +++ b/examples/ollama/toolcall.php @@ -25,7 +25,7 @@ $toolbox = new Toolbox([new Clock()], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser('What time is it?')); $result = $agent->call($messages); diff --git a/examples/openai/structured-output-math.php b/examples/openai/structured-output-math.php index a05cce0ce..9fa376611 100644 --- a/examples/openai/structured-output-math.php +++ b/examples/openai/structured-output-math.php @@ -23,7 +23,7 @@ $model = new Gpt(Gpt::GPT_4O_MINI); $processor = new AgentProcessor(); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('You are a helpful math tutor. Guide the user through the solution step by step.'), Message::ofUser('how can I solve 8x + 7 = -23'), diff --git a/examples/openai/toolcall-stream.php b/examples/openai/toolcall-stream.php index d5e8d0f41..bba5bd6d2 100644 --- a/examples/openai/toolcall-stream.php +++ b/examples/openai/toolcall-stream.php @@ -26,7 +26,7 @@ $wikipedia = new Wikipedia(http_client()); $toolbox = new Toolbox([$wikipedia], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser(<<call($messages); diff --git a/examples/rag/cache.php b/examples/rag/cache.php index 500f963b4..eebdfe3bf 100644 --- a/examples/rag/cache.php +++ b/examples/rag/cache.php @@ -20,6 +20,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\Local\CacheStore; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -43,16 +44,16 @@ // create embeddings for documents $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/chromadb.php b/examples/rag/chromadb.php index 27e0526b8..676d464e0 100644 --- a/examples/rag/chromadb.php +++ b/examples/rag/chromadb.php @@ -20,6 +20,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\ChromaDb\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -50,16 +51,16 @@ // create embeddings for documents $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/clickhouse.php b/examples/rag/clickhouse.php index 4b4e9fb52..f6556c10c 100644 --- a/examples/rag/clickhouse.php +++ b/examples/rag/clickhouse.php @@ -20,6 +20,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\ClickHouse\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -51,16 +52,16 @@ // create embeddings for documents $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/cloudflare.php b/examples/rag/cloudflare.php index 0423be412..4516058e6 100644 --- a/examples/rag/cloudflare.php +++ b/examples/rag/cloudflare.php @@ -20,6 +20,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\Cloudflare\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -51,16 +52,16 @@ // create embeddings for documents (keep in mind that upserting vectors is asynchronous) $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/in-memory.php b/examples/rag/in-memory.php index 35a7bd4c8..169620dd6 100644 --- a/examples/rag/in-memory.php +++ b/examples/rag/in-memory.php @@ -20,6 +20,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\Local\InMemoryStore; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -42,16 +43,16 @@ // create embeddings for documents $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/mariadb-gemini.php b/examples/rag/mariadb-gemini.php index 1cf81cb51..fa82ebe1b 100644 --- a/examples/rag/mariadb-gemini.php +++ b/examples/rag/mariadb-gemini.php @@ -23,6 +23,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\MariaDb\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -53,16 +54,16 @@ // create embeddings for documents $platform = PlatformFactory::create(env('GEMINI_API_KEY'), http_client()); $embeddings = new Embeddings(options: ['dimensions' => 768, 'task_type' => TaskType::SemanticSimilarity]); -$vectorizer = new Vectorizer($platform, $embeddings); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gemini(Gemini::GEMINI_2_FLASH_LITE); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/mariadb-openai.php b/examples/rag/mariadb-openai.php index e68156522..e50870152 100644 --- a/examples/rag/mariadb-openai.php +++ b/examples/rag/mariadb-openai.php @@ -22,6 +22,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\MariaDb\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -51,16 +52,16 @@ // create embeddings for documents $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/meilisearch.php b/examples/rag/meilisearch.php index 5c0e192c6..b4bd8d7ca 100644 --- a/examples/rag/meilisearch.php +++ b/examples/rag/meilisearch.php @@ -20,6 +20,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\Meilisearch\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -51,16 +52,16 @@ // create embeddings for documents $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/milvus.php b/examples/rag/milvus.php index d49a83376..f9f849fa5 100644 --- a/examples/rag/milvus.php +++ b/examples/rag/milvus.php @@ -20,6 +20,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\Milvus\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -52,16 +53,16 @@ // create embeddings for documents $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/mongodb.php b/examples/rag/mongodb.php index 3d0886665..a3abca415 100644 --- a/examples/rag/mongodb.php +++ b/examples/rag/mongodb.php @@ -21,6 +21,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\MongoDb\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -49,8 +50,8 @@ // create embeddings for documents $platform = PlatformFactory::create(env('OPENAI_API_KEY')); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); // initialize the index @@ -58,10 +59,10 @@ $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/neo4j.php b/examples/rag/neo4j.php index 39fbb56e2..9010fff62 100644 --- a/examples/rag/neo4j.php +++ b/examples/rag/neo4j.php @@ -20,6 +20,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\Neo4j\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -54,13 +55,13 @@ // create embeddings for documents $platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); $agent = new Agent($platform, $model, [$processor], [$processor]); diff --git a/examples/rag/pinecone.php b/examples/rag/pinecone.php index 43cb308f7..881a115be 100644 --- a/examples/rag/pinecone.php +++ b/examples/rag/pinecone.php @@ -21,6 +21,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\Pinecone\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -43,16 +44,16 @@ // create embeddings for documents $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/postgres.php b/examples/rag/postgres.php index 520378418..06ac859b2 100644 --- a/examples/rag/postgres.php +++ b/examples/rag/postgres.php @@ -22,6 +22,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\Postgres\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -51,16 +52,16 @@ // create embeddings for documents $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/qdrant.php b/examples/rag/qdrant.php index 4a105cd18..5f5725f0e 100644 --- a/examples/rag/qdrant.php +++ b/examples/rag/qdrant.php @@ -20,6 +20,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\Qdrant\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -50,16 +51,16 @@ // create embeddings for documents $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/surrealdb.php b/examples/rag/surrealdb.php index 5cef91641..8f10780ad 100644 --- a/examples/rag/surrealdb.php +++ b/examples/rag/surrealdb.php @@ -20,6 +20,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\SurrealDb\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -54,13 +55,13 @@ // create embeddings for documents $platform = PlatformFactory::create($_SERVER['OPENAI_API_KEY']); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); $agent = new Agent($platform, $model, [$processor], [$processor]); diff --git a/examples/rag/typesense.php b/examples/rag/typesense.php index 1dfa3924f..85b8b4985 100644 --- a/examples/rag/typesense.php +++ b/examples/rag/typesense.php @@ -20,6 +20,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\Typesense\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -51,16 +52,16 @@ // create embeddings for documents $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/rag/weaviate.php b/examples/rag/weaviate.php index 131332b20..d1c017bc4 100644 --- a/examples/rag/weaviate.php +++ b/examples/rag/weaviate.php @@ -20,6 +20,7 @@ use Symfony\AI\Platform\Message\Message; use Symfony\AI\Platform\Message\MessageBag; use Symfony\AI\Store\Bridge\Weaviate\Store; +use Symfony\AI\Store\Document\Loader\InMemoryLoader; use Symfony\AI\Store\Document\Metadata; use Symfony\AI\Store\Document\TextDocument; use Symfony\AI\Store\Document\Vectorizer; @@ -51,16 +52,16 @@ // create embeddings for documents $platform = PlatformFactory::create(env('OPENAI_API_KEY'), http_client()); -$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings()); -$indexer = new Indexer($vectorizer, $store, logger()); +$vectorizer = new Vectorizer($platform, $embeddings = new Embeddings(), logger()); +$indexer = new Indexer(new InMemoryLoader($documents), $vectorizer, $store, logger: logger()); $indexer->index($documents); $model = new Gpt(Gpt::GPT_4O_MINI); -$similaritySearch = new SimilaritySearch($platform, $embeddings, $store); +$similaritySearch = new SimilaritySearch($vectorizer, $store); $toolbox = new Toolbox([$similaritySearch], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('Please answer all user questions only using SimilaritySearch function.'), diff --git a/examples/toolbox/brave.php b/examples/toolbox/brave.php index 21672778f..f0729733e 100644 --- a/examples/toolbox/brave.php +++ b/examples/toolbox/brave.php @@ -28,7 +28,7 @@ $crawler = new Crawler(http_client()); $toolbox = new Toolbox([$brave, $crawler], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser('What was the latest game result of Dallas Cowboys?')); $result = $agent->call($messages); diff --git a/examples/toolbox/clock.php b/examples/toolbox/clock.php index 4b12af2c7..12b886c27 100644 --- a/examples/toolbox/clock.php +++ b/examples/toolbox/clock.php @@ -28,7 +28,7 @@ ->addTool(Clock::class, 'clock', 'Get the current date and time', 'now'); $toolbox = new Toolbox([new Clock()], $metadataFactory, logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser('What date and time is it?')); $result = $agent->call($messages); diff --git a/examples/toolbox/mapbox-geocode.php b/examples/toolbox/mapbox-geocode.php index 1319a7650..5ed906e3f 100644 --- a/examples/toolbox/mapbox-geocode.php +++ b/examples/toolbox/mapbox-geocode.php @@ -26,7 +26,7 @@ $mapbox = new Mapbox(http_client(), env('MAPBOX_ACCESS_TOKEN')); $toolbox = new Toolbox([$mapbox], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser('What are the coordinates of Brandenburg Gate in Berlin?')); $result = $agent->call($messages); diff --git a/examples/toolbox/mapbox-reverse-geocode.php b/examples/toolbox/mapbox-reverse-geocode.php index 62f571027..d9f14403f 100644 --- a/examples/toolbox/mapbox-reverse-geocode.php +++ b/examples/toolbox/mapbox-reverse-geocode.php @@ -26,7 +26,7 @@ $mapbox = new Mapbox(http_client(), env('MAPBOX_ACCESS_TOKEN')); $toolbox = new Toolbox([$mapbox], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser('What address is at coordinates longitude -73.985131, latitude 40.758895?')); $result = $agent->call($messages); diff --git a/examples/toolbox/serpapi.php b/examples/toolbox/serpapi.php index d9aa65244..393c3b15e 100644 --- a/examples/toolbox/serpapi.php +++ b/examples/toolbox/serpapi.php @@ -26,7 +26,7 @@ $serpApi = new SerpApi(http_client(), env('SERP_API_KEY')); $toolbox = new Toolbox([$serpApi], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser('Who is the current chancellor of Germany?')); $result = $agent->call($messages); diff --git a/examples/toolbox/tavily.php b/examples/toolbox/tavily.php index 42c2f2885..6e5ec1682 100644 --- a/examples/toolbox/tavily.php +++ b/examples/toolbox/tavily.php @@ -26,7 +26,7 @@ $tavily = new Tavily(http_client(), env('TAVILY_API_KEY')); $toolbox = new Toolbox([$tavily], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser('What was the latest game result of Dallas Cowboys?')); $result = $agent->call($messages); diff --git a/examples/toolbox/weather-event.php b/examples/toolbox/weather-event.php index e7efa7a14..fbd136f07 100644 --- a/examples/toolbox/weather-event.php +++ b/examples/toolbox/weather-event.php @@ -30,7 +30,7 @@ $toolbox = new Toolbox([$openMeteo], logger: logger()); $eventDispatcher = new EventDispatcher(); $processor = new AgentProcessor($toolbox, eventDispatcher: $eventDispatcher); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); // Add tool call result listener to enforce chain exits direct with structured response for weather tools $eventDispatcher->addListener(ToolCallsExecuted::class, function (ToolCallsExecuted $event): void { diff --git a/examples/vertexai/server-tools.php b/examples/vertexai/server-tools.php index 083fe7ec9..fc44fbb20 100644 --- a/examples/vertexai/server-tools.php +++ b/examples/vertexai/server-tools.php @@ -20,7 +20,7 @@ $platform = PlatformFactory::create(env('GOOGLE_CLOUD_LOCATION'), env('GOOGLE_CLOUD_PROJECT'), adc_aware_http_client()); $model = new Model(Model::GEMINI_2_5_PRO, ['server_tools' => ['url_context' => true]]); -$agent = new Agent($platform, $model, [], [], logger()); +$agent = new Agent($platform, $model, [], [], logger: logger()); $messages = new MessageBag( Message::ofUser( diff --git a/examples/vertexai/structured-output-clock.php b/examples/vertexai/structured-output-clock.php index 0e97cff86..6bee34c8b 100644 --- a/examples/vertexai/structured-output-clock.php +++ b/examples/vertexai/structured-output-clock.php @@ -29,7 +29,7 @@ $toolbox = new Toolbox([$clock]); $toolProcessor = new ToolProcessor($toolbox); $structuredOutputProcessor = new StructuredOutputProcessor(); -$agent = new Agent($platform, $model, [$toolProcessor, $structuredOutputProcessor], [$toolProcessor, $structuredOutputProcessor], logger()); +$agent = new Agent($platform, $model, [$toolProcessor, $structuredOutputProcessor], [$toolProcessor, $structuredOutputProcessor], logger: logger()); $messages = new MessageBag(Message::ofUser('What date and time is it?')); $result = $agent->call($messages, ['response_format' => [ diff --git a/examples/vertexai/structured-output-math.php b/examples/vertexai/structured-output-math.php index 01df76bab..2cb3affca 100644 --- a/examples/vertexai/structured-output-math.php +++ b/examples/vertexai/structured-output-math.php @@ -23,7 +23,7 @@ $model = new Model(Model::GEMINI_2_5_FLASH_LITE); $processor = new AgentProcessor(); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag( Message::forSystem('You are a helpful math tutor. Guide the user through the solution step by step.'), Message::ofUser('how can I solve 8x + 7 = -23'), diff --git a/examples/vertexai/toolcall.php b/examples/vertexai/toolcall.php index 52cd8cbfb..8eb98f9a2 100644 --- a/examples/vertexai/toolcall.php +++ b/examples/vertexai/toolcall.php @@ -25,7 +25,7 @@ $toolbox = new Toolbox([new Clock()], logger: logger()); $processor = new AgentProcessor($toolbox); -$agent = new Agent($platform, $model, [$processor], [$processor], logger()); +$agent = new Agent($platform, $model, [$processor], [$processor], logger: logger()); $messages = new MessageBag(Message::ofUser('What time is it?')); $result = $agent->call($messages);