Monday, April 20, 2026
3 changes · master
New functionality added to Odoo
AI agents can now help create one or multiple records in the database, with user confirmation required before anything is saved. This expands agent capabilities while keeping users in control through previews and approval steps.
Original PR description
This commit adds the tools and topics that allow the agents to create new records on the database. Specifically, it adds: - One tool "Create records", that allow to create one (or multiple) records at once. This tool must be confirmed by the user (similarly to the `Update records`. - One topic "Create records", that contains the instructions to use the new `Create records` tool. - Some utilities for previewing the records that are going to be created by the agent. task-5153871
A new AI assistant helps users edit website pages by adding and modifying content, images, headers, footers, and styling through conversational requests. This makes website creation and updates faster and more accessible for users without requiring manual page editing skills.
Original PR description
Introduction of an AI agent to edit the website page being edited. __What it can currently do__ - Add some snippets to the page and edit them on the fly. - Make any modifications on the header,…
Introduction of an AI agent to edit the website page being edited. __What it can currently do__ - Add some snippets to the page and edit them on the fly. - Make any modifications on the header, footer and wrap element. - Add some images given by the user or fetched from Unsplash - Read and write user_custom_rules.scss - Generate pictures __What it cannot currently do__ - Change theme and use tools from the editor - Add some JavaScript to the page - etc. __Basic flow__ Every time the user sends a message, the context given in the prompt is updated with the page information and content as well as the CSS variable values of the theme. When asking for a change on the page, the agent can use a tool to retrieve the HTML of standard snippets, it can also search for images. When it has everything it needs, it will call the tool to apply changes on the page. It has a lot of liberty to do so as it can add and replace any element with arbitrary (sanitized) HTML. Community PR: odoo/odoo#258133 task-5411100
AI agents and AI-powered server actions can now search the web to answer requests with more current information and include more reliable source links. The update also limits agent access to sensitive system models and makes AI server action logs shorter and easier to read.
Original PR description
Purpose: -------- Allow agents and AI server actions to search for info on the web when answering a user request. Since Gemini does not support web grounding with tool calls, one added a web…
Purpose: -------- Allow agents and AI server actions to search for info on the web when answering a user request. Since Gemini does not support web grounding with tool calls, one added a web grounding tool (and use it for every provider for consistency). This also allows to keep the web search in a separate context with more specific instructions. The tool will make an independent request to the LLM without any tools but with the web_grounding feature enabled. LLMs are really bad at recopying URLs and tend to hallucinate links. Therefore, the sources are inserted in the tool result using a uuid, and stored in the session state so that when the main agent references a source, it needs to reference a uuid instead of the source's url. These uuid's are then replaced by the source's urls manually using the mapping stored in the session state. Web Search can be added on AI agents by using the dedicated Web Search topic, and on server actions of type "AI" by adding the Web Search tool. The AI APIs request time out was increased to 90 seconds as the web searches might take some time. ### Models restrictions Some models are now non-accessible by the agents. For example, there's no reason to give the ability to the agent to access private keys; nor to allow it to edit views or access rights. If it is really necessary then these should be dedicated AI tools (eg. to avoid breaking views or to create attachments), or the agent should ask for confirmation to access some values. There is no real usecase at this moment so the access to these models is currently simply restricted. By default, every model starting with 'ir.' is restricted. Other models can be restricted by adding them in the AI_MODELS_BLOCKLIST set. To restrict access to these models, the AI tools **must** use the method `_parse_domain` method defined on `ai.agent`. Task-6025732