description and instructions and a number of other settings. These settings are used to build the system message that is sent to the language model.
Understanding how these prompts are created will help you build better Agents.
The 2 key parameters are:
- Description: A description that guides the overall behaviour of the agent.
- Instructions: A list of precise, task-specific instructions on how to achieve its goal.
Description and instructions only provide a formatting benefit, we do not alter or abstract any information and you can always set the
system_message to provide your own system prompt.System message
The system message is created usingdescription, instructions and a number of other settings. The description is added to the start of the system message and instructions are added as a list after Instructions. For example:
instructions.py
debug_mode=True to view the logs):
Set the system message directly
You can manually set the system message using thesystem_message parameter.
Some models via some model providers, like
llama-3.2-11b-vision-preview on Groq, require no system message with other messages. To remove the system message, set create_default_system_message=False and system_message=None. Additionally, if markdown=True is set, it will add a system message, so either remove it or explicitly disable the system message.User message
The inputmessage sent to the Agent.run() or Agent.print_response() functions is used as the user message.
Default system message
The Agent creates a default system message that can be customized using the following parameters:| Parameter | Type | Default | Description |
|---|---|---|---|
description | str | None | A description of the Agent that is added to the start of the system message. |
goal | str | None | Describe the task the agent should achieve. |
instructions | List[str] | None | List of instructions added to the system prompt in <instructions> tags. Default instructions are also created depending on values for markdown, output_model etc. |
additional_context | str | None | Additional context added to the end of the system message. |
expected_output | str | None | Provide the expected output from the Agent. This is added to the end of the system message. |
markdown | bool | False | Add an instruction to format the output using markdown. |
add_datetime_to_instructions | bool | False | If True, add the current datetime to the prompt to give the agent a sense of time. This allows for relative times like “tomorrow” to be used in the prompt |
system_message | str | None | System prompt: provide the system prompt as a string |
system_message_role | str | system | Role for the system message. |
create_default_system_message | bool | True | If True, build a default system prompt using agent settings and use that. |
Disable the default system message by setting
create_default_system_message=False.Default user message
The Agent creates a default user message, which is either the input message or a message with thecontext if enable_rag=True. The default user message can be customized using:
| Parameter | Type | Default | Description |
|---|---|---|---|
context | str | None | Additional context added to the end of the user message. |
add_context | bool | False | If True, add the context to the user prompt. |
resolve_context | bool | True | If True, resolve the context (i.e. call any functions in the context) before adding it to the user prompt. |
add_references | bool | False | Enable RAG by adding references from the knowledge base to the prompt. |
retriever | Callable | None | Function to get references to add to the user_message. This function, if provided, is called when add_references is True. |
references_format | Literal["json", "yaml"] | "json" | Format of the references. |
add_history_to_messages | bool | False | If true, adds the chat history to the messages sent to the Model. |
num_history_responses | int | 3 | Number of historical responses to add to the messages. |
user_message | Union[List, Dict, str] | None | Provide the user prompt as a string. Note: this will ignore the message sent to the run function. |
user_message_role | str | user | Role for the user message. |
create_default_user_message | bool | True | If True, build a default user prompt using references and chat history. |
Disable the default user message by setting
create_default_user_message=False.