57 lines
1.2 KiB
Plaintext
57 lines
1.2 KiB
Plaintext
<?php
|
|
|
|
namespace {{ namespace }};
|
|
|
|
use Illuminate\Contracts\JsonSchema\JsonSchema;
|
|
use Laravel\Ai\Contracts\Agent;
|
|
use Laravel\Ai\Contracts\Conversational;
|
|
use Laravel\Ai\Contracts\HasStructuredOutput;
|
|
use Laravel\Ai\Contracts\HasTools;
|
|
use Laravel\Ai\Contracts\Tool;
|
|
use Laravel\Ai\Messages\Message;
|
|
use Laravel\Ai\Promptable;
|
|
use Stringable;
|
|
|
|
class {{ class }} implements Agent, Conversational, HasStructuredOutput, HasTools
|
|
{
|
|
use Promptable;
|
|
|
|
/**
|
|
* Get the instructions that the agent should follow.
|
|
*/
|
|
public function instructions(): Stringable|string
|
|
{
|
|
return 'You are a helpful assistant.';
|
|
}
|
|
|
|
/**
|
|
* Get the list of messages comprising the conversation so far.
|
|
*
|
|
* @return Message[]
|
|
*/
|
|
public function messages(): iterable
|
|
{
|
|
return [];
|
|
}
|
|
|
|
/**
|
|
* Get the tools available to the agent.
|
|
*
|
|
* @return Tool[]
|
|
*/
|
|
public function tools(): iterable
|
|
{
|
|
return [];
|
|
}
|
|
|
|
/**
|
|
* Get the agent's structured output schema definition.
|
|
*/
|
|
public function schema(JsonSchema $schema): array
|
|
{
|
|
return [
|
|
'value' => $schema->string()->required(),
|
|
];
|
|
}
|
|
}
|