From 63d7539cc3809eac94c2acd126ffac830a64db67 Mon Sep 17 00:00:00 2001 From: joris Date: Thu, 23 Oct 2025 15:50:01 +0200 Subject: [PATCH] Feat: Add additional options to the ModelSettings allowing you to further configure model settings in the payload --- src/Model/ModelSettings.php | 7 +++++++ src/Transporters/ChatCompletionTransporter.php | 1 + src/Transporters/ResponsesTransporter.php | 1 + 3 files changed, 9 insertions(+) diff --git a/src/Model/ModelSettings.php b/src/Model/ModelSettings.php index 6f29722..73af11f 100644 --- a/src/Model/ModelSettings.php +++ b/src/Model/ModelSettings.php @@ -6,10 +6,17 @@ class ModelSettings { + /** + * @param string $modelName + * @param float $temperature + * @param int|null $maxTokens + * @param array|null $extraOptions + */ public function __construct( public string $modelName = '', public float $temperature = 1.0, public ?int $maxTokens = null, + public ?array $extraOptions = null, ) { if (empty($this->modelName)) { $this->modelName = EnvHelper::get('AGENTS_SDK_DEFAULT_MODEL') ?: 'gpt-4o'; diff --git a/src/Transporters/ChatCompletionTransporter.php b/src/Transporters/ChatCompletionTransporter.php index 2626627..5c7829a 100644 --- a/src/Transporters/ChatCompletionTransporter.php +++ b/src/Transporters/ChatCompletionTransporter.php @@ -51,6 +51,7 @@ protected function buildRequestPayload(Agent $agent, RunContext $context): array 'temperature' => $modelSettings->temperature, 'max_completion_tokens' => $modelSettings->maxTokens, 'messages' => $this->buildInputs($agent, $context), + ...$modelSettings->extraOptions ?? [], ]; $tools = $this->buildToolsPayload($agent->executableTools()); diff --git a/src/Transporters/ResponsesTransporter.php b/src/Transporters/ResponsesTransporter.php index db24497..941d014 100644 --- a/src/Transporters/ResponsesTransporter.php +++ b/src/Transporters/ResponsesTransporter.php @@ -55,6 +55,7 @@ protected function buildRequestPayload(Agent $agent, RunContext $context): array 'max_output_tokens' => $modelSettings->maxTokens, 'previous_response_id' => $context->previousResponseId(), 'input' => $this->buildInputs($agent, $context), + ...$modelSettings->extraOptions ?? [], ]; $tools = $this->buildToolsPayload($agent->executableTools());