Skip to content

Commit f022617

Browse files
committed
[ADD] AI: Using AI Agents
1 parent b9e95ba commit f022617

File tree

5 files changed

+188
-0
lines changed

5 files changed

+188
-0
lines changed

content/applications.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,4 @@ Discover our user guides and configuration tutorials per application.
2525
applications/productivity
2626
applications/studio
2727
applications/general
28+
applications/ai

content/applications/ai.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
==
2+
AI
3+
==
4+
5+
.. toctree::
6+
7+
ai/agents

content/applications/ai/agents.rst

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
=========
2+
AI agents
3+
=========
4+
5+
An AI agent is a smart assistant in Odoo that can understand natural language, perform tasks, and
6+
assist users by interacting with Odoo tools. Agents are a core component of the AI structure in
7+
Odoo. Each agent has a defined purpose, prompt, and a set of topics and tools that guide its
8+
behavior.
9+
10+
Agents are formed of two main components, *Topics* and *Sources*.
11+
12+
- *Topics* are the instructions and roles that inform the agent of what tasks they need to
13+
complete. *Tools* are assigned to topics, and are the actual functions the agent can utilize to
14+
perform tasks.
15+
- *Sources* provide the agent with the information they need to complete their tasks.
16+
17+
.. important::
18+
While many AI features can be used in Odoo without the *AI* application, creating and customizing
19+
agents requires that the *AI* application is installed.
20+
21+
AI prompts in Odoo
22+
==================
23+
24+
Before working with AI agents, it is important to understand some basics concepts regarding AI
25+
prompts.
26+
27+
An AI prompt is a set of written instructions or context given to an AI model that tells it how to
28+
respond to a request, or what role to take. Prompts can define:
29+
30+
- the tone, style, and persona of the AI model
31+
- the scope of what the model can do
32+
- the type of output expected from the request
33+
34+
In Odoo, each AI agent is assigned a :guilabel:`System Prompt`, which defines the agent's overall
35+
role, purpose, and behavior. It acts as the core mission statement of the agent, and drives all
36+
interactions.
37+
38+
Each :ref:`Topic <ai/topics>` also includes its own prompt-like component, called
39+
:guilabel:`Instructions`. Instructions are topic-specific guidelines that refine how the agent
40+
behaves within a certain context or workflow, and how it interacts within the Odoo framework.
41+
42+
Instructions often include:
43+
44+
- A purpose, or what the topic covers
45+
- Rules or constraints for the agent to follow when assigned this topic
46+
- Step-by-step workflows for how to complete a specfic action
47+
- Technical details needed to complete any actions
48+
49+
Agent structure
50+
===============
51+
52+
.. _ai/topics:
53+
54+
Topics
55+
------
56+
57+
*Topics* are a collection of instructions and :ref:`tools <ai/tools>` that define how an agent
58+
behaves within a specific context. Essentially, the topics define what an agent can do within the
59+
database.
60+
61+
.. important::
62+
If an agent is not assigned any Topics, it is only able to provide information, not complete
63+
tasks or make changes to the database.
64+
65+
Topics guide conversations, telling the agent what it can do, how it can do it, and when it should
66+
do it. Within each topic includes a detailed prompt, which provides the agent with more in-depth
67+
instructions on how to perform the
68+
69+
The following topics are preconfigured in the *AI* app:
70+
71+
- :guilabel:`Natural Language Search`: supports the interpretation of a user query to open the
72+
appropriate Odoo view with a set of tools necessary to perform the search.
73+
- :guilabel:`Information retrieval`: a collection of tools to retrieve information about the models.
74+
- :guilabel:`Create Leads`: a collection of tools to support automated lead creation. This topic is
75+
**only** available if the *CRM* app is installed.
76+
77+
Within each topic is a set of :guilabel:`Instructions`, which act as a prompt and provide guidance
78+
for the structure of the interaction, and one or more :ref:`AI Tools <ai/tools>`, which indicate the
79+
functions the agent can perform.
80+
81+
.. _ai/tools:
82+
83+
Tools
84+
~~~~~
85+
86+
*Tools* are the functions the agent can perform in Odoo. These include actions like creating a lead
87+
or opening a view. Tools extend the purpose of the agent beyond conversations, they enable real
88+
actions. The available tools in a database vary based on the applications installed. Multiple
89+
:guilabel:`AI Tools` can be assigned to a single topic.
90+
91+
Sources
92+
-------
93+
94+
Sources are the data the agent can refer to when generating responses or completing tasks. Sources
95+
are indexed so the agent can retrieve relevant information when a user asks a question.
96+
97+
.. example::
98+
An agent designed to answer customer support questions has *Knowledge* articles included as
99+
sources, which include frequently asked questions.
100+
101+
Sources can be in the following formats:
102+
103+
- PDFs
104+
- Weblinks
105+
- Documents (uploaded in the *Documents* application)
106+
- *Knowledge* app articles
107+
108+
.. important::
109+
If the :guilabel:`Restrict to Sources` option is enabled on an agent, the agent can **only**
110+
utilize information from the uploaded and active sources.
111+
112+
Create a new agent
113+
==================
114+
115+
To create a new AI agent, navigate to the :menuselection:`AI app --> New`. Enter an :guilabel:`Agent
116+
Name`, then add a short description, if desired.
117+
118+
.. tip::
119+
Before creating a new agent, it is recommended to have a clear use case in mind. This helps when
120+
writing out the :guilabel:`System Prompt`, and assigning the :guilabel:`Topics` and :guilabel:`AI
121+
Tools`.
122+
123+
Select an :guilabel:`LLM Model` from the drop-down menu.
124+
125+
.. important::
126+
Odoo supports multiple versions of both ChatGPT and Gemini.
127+
128+
Next, select a :guilabel:`Response Style`. This manages the overall tone the agent uses when
129+
responding to an inquiry. Choose from one of the following options:
130+
131+
- :guilabel:`Analytical`: more mathematical, this option is more likely to give the same answer to
132+
the same question. This option is recommended for situations where accuracy is more important
133+
than diplomacy.
134+
- :guilabel:`Balanced`: a mix of both *Analytical* and *Creative*. This is an excellent option for
135+
situations with outside customers who would benefit from **both** accuracy and diplomacy.
136+
- :guilabel:`Creative`: approaches questions in a more human way, changes answers every time to
137+
react to the conversation. This option works best for times when the solutions often vary based
138+
on the situation.
139+
140+
Tick the :guilabel:`Restrict to Sources` checkbox to limit the agent to **only** respond based on
141+
the provided resources.
142+
143+
Next, select one or more :guilabel:`Topics` for the agent. As explained above, :ref:`Topics
144+
<ai/topics>` include both instructions and tools that guide the agent in helping users complete a
145+
task.
146+
147+
Enter a :guilabel:`System Prompt` with detailed instructions for the agent as to their role and
148+
responsibilities.
149+
150+
.. tip::
151+
The specificity and length of the :guilabel:`System Prompt` can vary, depending on the use case
152+
for the agent. Use the preconfigured agents as an example of the possible information.
153+
154+
.. image:: agents/new-agent.png
155+
:alt: A new agent form with the required information.
156+
157+
If *Sources* are needed for the agent, scroll to the :guilabel:`Sources` tab, then click
158+
:guilabel:`Add a source`.
159+
160+
Select a format:
161+
162+
- PDFs: Select the appropriate file from the explorer window, and click :guilabel:`Open`
163+
- Weblinks: paste the URL. Multiple links can be added at once, paste one link per line. Click
164+
:guilabel:`Save`.
165+
- Documents (uploaded in the *Documents* application): Tick the checkbox next to one or more
166+
documents, then click :guilabel:`Select`.
167+
- *Knowledge* app articles: Tick the checkbox next to one or more articles, then click
168+
:guilabel:`Select`.
169+
170+
Once a source is added, the :guilabel:`Status` field updates to reflect its current status. The
171+
source is ready when the status changes from *Processing* to *Indexed*. Slide the :guilabel:`Active`
172+
toggle to activate the source.
173+
174+
.. image:: agents/sources.png
175+
:alt: A list of sources for an agent, each denoted with their format.
176+
177+
.. important::
178+
If a source fails to upload, it could be the result of a conflict with the selected LLM model.
179+
180+
Click the :guilabel:`Test` button to open a conversation window and test the new agent.
29.1 KB
Loading
11.8 KB
Loading

0 commit comments

Comments
 (0)