Agent Skills in Odoo 20: How Topics Became Skills

Odoo 20 renames one of the core building blocks of its AI system. What earlier versions called agent “topics” are now called “skills.” The Odoo 20 release notes define the term in one sentence: topics — collections of instructions and tools that define how an AI agent behaves within a specific context — are now called skills. That sounds like a cosmetic label change. It is not. The new name describes what these objects actually do in Odoo 20, where agents no longer only answer questions: they create records, update records, work from uploaded files, generate images, respond to voice dictation, and run inside automated and scheduled actions. When an agent acts, the bundle of instructions and tools you hand it matters far more than the subject it chats about.

What a topic was — and why the name stopped fitting

In a question-and-answer assistant, “topic” makes sense. A topic suggests a subject area: billing questions, product questions, delivery questions. The assistant stays inside the subject, retrieves relevant information, and replies. The risk of a badly scoped topic is a bad answer — annoying, but recoverable.

Odoo 20 agents break that model in three ways, all confirmed in the release notes:

  • They write. You can ask an agent to create records — including by uploading a file of instructions such as a PDF — and to update existing records.
  • They run unattended. Agents can be summoned by automated actions and scheduled actions, and you review how they handled a task afterwards in the automation chats.
  • They work across inputs. Agents can answer questions about a file while you preview it, accept uploaded files and linked documents in chat, reprocess their sources when you ask them to use the most up-to-date version, filter by time period when building views, and take dictated requests by voice.

A bundle that tells an acting system what it may do, which tools it may use, and how it should behave in a given context is not really a “topic.” It is closer to a job description plus a toolkit. “Skill” is the more honest word, and using it changes how you should design these objects.

What a skill contains

Per the release-notes definition, a skill is a collection of two things:

  1. Instructions — how the agent should behave within a specific context: what it is for, what a good result looks like, what it should check, and what it should avoid.
  2. Tools — the capabilities the agent can actually invoke in that context, such as creating or updating records, working with files, or generating images.

That pairing is the whole point. Instructions without tools produce advice nobody can act on without copy-pasting. Tools without instructions produce an agent that can act but has no guidance about when it should, in what order, or to what standard. A well-built skill keeps the two together, scoped to one context, so the agent’s behaviour is predictable when the same situation recurs.

Two neighbouring features in the release notes complete the picture. Default prompts can now carry context and dynamic values, which is how a skill’s standing instructions stay current instead of freezing the day they were written. And model-bound agents formalise the link between context and behaviour: when an agent is asked to interact with a specific model, it suggests becoming the default agent of that model. In other words, Odoo 20 expects agents and skills to be attached to the work — a model, a process, a recurring task — not floating as general chat personalities.

Why the rename matters in practice

It changes what you write

Under a “topic” mindset, administrators tend to write subject descriptions: “This topic covers vendor bills.” Under a “skill” mindset, you write operating instructions: what the agent should extract, which fields it should fill, which values it must never guess, and when it should stop and ask. Odoo 20 supports that stopping behaviour directly — agent responses are interactive, so you can respond to an agent’s questions, permission requests, and suggestions by clicking buttons, and if an agent reaches its maximum tool call limit, it prompts the user for confirmation before proceeding. Skills should be written assuming those checkpoints exist: instruct the agent to surface uncertainty rather than improvise past it.

It changes how you scope

A topic could sprawl across a whole department. A skill should not. Because a skill bundles tools, an over-broad skill hands the agent more capability than any single job needs. The safer pattern in Odoo 20 is several narrow skills, each bound to one context — one for triaging incoming requests, one for drafting records from a document, one for summarising a period — rather than one mega-skill that can do everything. Narrow skills are also easier to test, easier to review in the automation chats, and easier to retire when a process changes.

It changes how agents improve

The release notes add two feedback loops that fit the skills framing. Agents now show specific, live updates on what they are doing instead of a generic “AI is thinking” message, so you can see which part of a skill is being exercised. And agents can update themselves to best serve their use cases. Treat that second capability with respect: a self-updating agent is effectively editing its own instructions over time, which makes periodic human review of the skill — not just of individual outputs — part of routine administration. Conversations with agents are stored for up to 30 days after the last message, which gives you a review window, but not a permanent archive; export anything you need for a longer audit trail.

Designing a good Odoo 20 skill

Whether you are converting an existing topic or starting fresh, the same checklist applies:

  • Name it as a capability, not a subject. “Draft vendor bills from uploaded PDFs” tells everyone — including the agent — more than “Payables.”
  • Write instructions as steps and limits. State the sequence to follow, the fields or values that must come from the source document, and the conditions under which the agent must ask instead of acting.
  • Attach only the tools the job needs. If the skill never needs to create records, do not include record creation. Tool scope is access scope.
  • Feed it current sources. If the skill depends on reference material, use the reprocess-sources option when that material changes so the agent works from the latest version.
  • Decide how it will be triggered. A skill used interactively in chat can tolerate more ambiguity than the same skill summoned by an automated or scheduled action, where nobody is watching in real time. Tighten instructions for unattended runs.
  • Plan the review. Know where you will inspect runs — the automation chats for triggered work, the stored conversations for interactive work — and who checks them, and how often.

What to check when you upgrade

If you built topics in an earlier version, the rename itself should be the least of your work, but it is a good moment for an audit. Inventory every existing topic-turned-skill and ask three questions. First, does its instruction text still describe a chat subject, rather than an acting procedure? Rewrite those. Second, does its tool set match what the agent actually needs in Odoo 20, now that agents can be triggered by automations and can create and update records? Remove anything unused. Third, who can invoke it, and from where — chat, a model, an automated action, a schedule? A skill that was harmless as a chat helper deserves a second look before it runs unattended.

Budget belongs in the same audit. The release notes are explicit that all AI features in Odoo 20 require credits bought via IAP, and no plan bundles them in. Every skill you keep active — especially one attached to a frequent automated trigger — is a recurring cost line, not a one-time configuration. Odoo selects the AI model automatically per task once you choose a provider, so you cannot tune cost by picking a cheaper model yourself; you tune it by scoping skills tightly and triggering them deliberately.

The bottom line

“Topics became skills” is a one-line release note that signals Odoo 20’s larger shift: agents are workers embedded in the ERP, not chatbots bolted onto it. Skills are where you define what kind of worker each agent is — its instructions, its tools, and its context. Teams that rename their topics and move on will get the old behaviour with a new label. Teams that rewrite them as real skills — narrow, procedural, tool-scoped, and reviewed — will get the benefit Odoo is actually shipping.

Further reading

Leave a Comment