Skip to main content
A module can ship its own agents and skills, declared with defineAgent and defineSkill. They are installed with the module, updated with it and archived when it is removed.

Declare an agent with defineAgent

An agent is a label, instructions and a list of tools. The CRM’s Sales agent is an example. Its instructions describe the pipeline and its manners (“look a person up before creating one”), and its tool list is short: it can read, create and update records and write comments, and it has no tool to delete anything or change the data model. The tool list is the agent’s boundary. An agent only gets the tools listed, and a module’s agent never gets tools for workflows, API keys, members, modules or other agents. Tools are the actions in coreIds.actions (Devias’s own) and the actions your module declares. People can still set each tool to Ask first or Runs freely per agent in the studio.

Declare a skill with defineSkill

A skill is a short how-to written in Markdown: a label, a description that says when to use it, and a body. An agent loads a skill only when a request calls for it, so a skill costs nothing until it is needed.
An agent has access to a skill when the skill’s id is in the agent’s skillIds.