From b45771334ca678247eba5b0d1d920910e77e98ca Mon Sep 17 00:00:00 2001 From: jero-odoo Date: Mon, 27 Oct 2025 14:13:34 -0400 Subject: [PATCH] [ADD] AI: Using AI Agents --- content/applications/productivity.rst | 1 + content/applications/productivity/ai.rst | 7 + .../applications/productivity/ai/agents.rst | 180 ++++++++++++++++++ .../productivity/ai/agents/new-agent.png | Bin 0 -> 29827 bytes .../productivity/ai/agents/sources.png | Bin 0 -> 12051 bytes 5 files changed, 188 insertions(+) create mode 100644 content/applications/productivity/ai.rst create mode 100644 content/applications/productivity/ai/agents.rst create mode 100644 content/applications/productivity/ai/agents/new-agent.png create mode 100644 content/applications/productivity/ai/agents/sources.png diff --git a/content/applications/productivity.rst b/content/applications/productivity.rst index 60c9e3d682..0d3e43266b 100644 --- a/content/applications/productivity.rst +++ b/content/applications/productivity.rst @@ -19,3 +19,4 @@ Productivity productivity/whatsapp productivity/voip productivity/to_do + productivity/ai diff --git a/content/applications/productivity/ai.rst b/content/applications/productivity/ai.rst new file mode 100644 index 0000000000..42841fb8d6 --- /dev/null +++ b/content/applications/productivity/ai.rst @@ -0,0 +1,7 @@ +== +AI +== + +.. toctree:: + + ai/agents diff --git a/content/applications/productivity/ai/agents.rst b/content/applications/productivity/ai/agents.rst new file mode 100644 index 0000000000..a89a10b072 --- /dev/null +++ b/content/applications/productivity/ai/agents.rst @@ -0,0 +1,180 @@ +========= +AI agents +========= + +An AI agent is a smart assistant in Odoo that can understand natural language, perform tasks, and +assist users by interacting with Odoo tools. Agents are a core component of the AI structure in +Odoo. Each agent has a defined purpose, prompt, and a set of topics and tools that guide its +behavior. + +Agents are formed of two main components, *Topics* and *Sources*. + + - *Topics* are the instructions and roles that inform the agent of what tasks they need to + complete. *Tools* are assigned to topics, and are the actual functions the agent can utilize to + perform tasks. + - *Sources* provide the agent with the information they need to complete their tasks. + +.. important:: + While many AI features can be used in Odoo without the **AI** application, creating and + customizing agents requires that the **AI** application is installed. + +AI prompts in Odoo +================== + +Before working with AI agents, it is important to understand some basics concepts regarding AI +prompts. + +An AI prompt is a set of written instructions or context given to an AI model that tells it how to +respond to a request, or what role to take. Prompts can define: + +- the tone, style, and persona of the AI model +- the scope of what the model can do +- the type of output expected from the request + +In Odoo, each AI agent is assigned a :guilabel:`System Prompt`, which defines the agent's overall +role, purpose, and behavior. It acts as the core mission statement of the agent, and drives all +interactions. + +Each :ref:`Topic ` also includes its own prompt-like component, called +:guilabel:`Instructions`. Instructions are topic-specific guidelines that refine how the agent +behaves within a certain context or workflow, and how it interacts within the Odoo framework. + +Instructions often include: + +- A purpose, or what the topic covers +- Rules or constraints for the agent to follow when assigned this topic +- Step-by-step workflows for how to complete a specfic action +- Technical details needed to complete any actions + +Agent structure +=============== + +.. _ai/topics: + +Topics +------ + +*Topics* are a collection of instructions and :ref:`tools ` that define how an agent +behaves within a specific context. Essentially, the topics define what an agent can do within the +database. + +.. important:: + If an agent is not assigned any Topics, it is only able to provide information, not complete + tasks or make changes to the database. + +Topics guide conversations, telling the agent what it can do, how it can do it, and when it should +do it. Within each topic includes a detailed prompt, which provides the agent with more in-depth +instructions on how to perform the + +The following topics are preconfigured in the **AI** app: + +- :guilabel:`Natural Language Search`: supports the interpretation of a user query to open the + appropriate Odoo view with a set of tools necessary to perform the search. +- :guilabel:`Information retrieval`: a collection of tools to retrieve information about the models. +- :guilabel:`Create Leads`: a collection of tools to support automated lead creation. This topic is + **only** available if the **CRM** app is installed. + +Within each topic is a set of :guilabel:`Instructions`, which act as a prompt and provide guidance +for the structure of the interaction, and one or more :ref:`AI Tools `, which indicate the +functions the agent can perform. + +.. _ai/tools: + +Tools +~~~~~ + +*Tools* are the functions the agent can perform in Odoo. These include actions like creating a lead +or opening a view. Tools extend the purpose of the agent beyond conversations, they enable real +actions. The available tools in a database vary based on the applications installed. Multiple +:guilabel:`AI Tools` can be assigned to a single topic. + +Sources +------- + +Sources are the data the agent can refer to when generating responses or completing tasks. Sources +are indexed so the agent can retrieve relevant information when a user asks a question. + +.. example:: + An agent designed to answer customer support questions has **Knowledge** articles included as + sources, which include frequently asked questions. + +Sources can be in the following formats: + + - PDFs + - Weblinks + - Documents (uploaded in the **Documents** application) + - **Knowledge** app articles + +.. important:: + If the :guilabel:`Restrict to Sources` option is enabled on an agent, the agent can **only** + utilize information from the uploaded and active sources. + +Create a new agent +================== + +To create a new AI agent, navigate to the :menuselection:`AI app --> New`. Enter an :guilabel:`Agent +Name`, then add a short description, if desired. + +.. tip:: + Before creating a new agent, it is recommended to have a clear use case in mind. This helps when + writing out the :guilabel:`System Prompt`, and assigning the :guilabel:`Topics` and :guilabel:`AI + Tools`. + +Select an :guilabel:`LLM Model` from the drop-down menu. + +.. important:: + Odoo supports multiple versions of both ChatGPT and Gemini. + +Next, select a :guilabel:`Response Style`. This manages the overall tone the agent uses when +responding to an inquiry. Choose from one of the following options: + + - :guilabel:`Analytical`: more mathematical, this option is more likely to give the same answer to + the same question. This option is recommended for situations where accuracy is more important + than diplomacy. + - :guilabel:`Balanced`: a mix of both *Analytical* and *Creative*. This is an excellent option for + situations with outside customers who would benefit from **both** accuracy and diplomacy. + - :guilabel:`Creative`: approaches questions in a more human way, changes answers every time to + react to the conversation. This option works best for times when the solutions often vary based + on the situation. + +Tick the :guilabel:`Restrict to Sources` checkbox to limit the agent to **only** respond based on +the provided resources. + +Next, select one or more :guilabel:`Topics` for the agent. As explained above, :ref:`Topics +` include both instructions and tools that guide the agent in helping users complete a +task. + +Enter a :guilabel:`System Prompt` with detailed instructions for the agent as to their role and +responsibilities. + +.. tip:: + The specificity and length of the :guilabel:`System Prompt` can vary, depending on the use case + for the agent. Use the preconfigured agents as an example of the possible information. + +.. image:: agents/new-agent.png + :alt: A new agent form with the required information. + +If *Sources* are needed for the agent, scroll to the :guilabel:`Sources` tab, then click +:guilabel:`Add a source`. + +Select a format: + + - PDFs: Select the appropriate file from the explorer window, and click :guilabel:`Open` + - Weblinks: paste the URL. Multiple links can be added at once, paste one link per line. Click + :guilabel:`Save`. + - Documents (uploaded in the **Documents** application): Tick the checkbox next to one or more + documents, then click :guilabel:`Select`. + - **Knowledge** app articles: Tick the checkbox next to one or more articles, then click + :guilabel:`Select`. + +Once a source is added, the :guilabel:`Status` field updates to reflect its current status. The +source is ready when the status changes from *Processing* to *Indexed*. Slide the :guilabel:`Active` +toggle to activate the source. + +.. image:: agents/sources.png + :alt: A list of sources for an agent, each denoted with their format. + +.. important:: + If a source fails to upload, it could be the result of a conflict with the selected LLM model. + +Click the :guilabel:`Test` button to open a conversation window and test the new agent. diff --git a/content/applications/productivity/ai/agents/new-agent.png b/content/applications/productivity/ai/agents/new-agent.png new file mode 100644 index 0000000000000000000000000000000000000000..6919e8ab4585ad1d5370579fdb1f19c554a7d403 GIT binary patch literal 29827 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 D0&^#| literal 0 HcmV?d00001 diff --git a/content/applications/productivity/ai/agents/sources.png b/content/applications/productivity/ai/agents/sources.png new file mode 100644 index 0000000000000000000000000000000000000000..dac96a65ba268c5ee8e534d8fe56c2a7aa1f4962 GIT binary patch literal 12051 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 literal 0 HcmV?d00001