Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
agency:anatomy_of_an_agent [2023/03/13 00:02] optrixagency:anatomy_of_an_agent [2025/12/18 22:50] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====The Anatomy of an Agent====
  
 +In AI, an **agent** is a single, self-contained and independent artificial intelligence (either [[weak|weak]] or [[strong|strong]]) that performs a task.
 +
 +In Agency, each alert you create is powered by an agent. 
 +
 +Each agent has several key parts...
 +
 +===Inputs===
 +
 +The //inputs// to your agent is the live data pulled from ARDI. An agent requires one or more inputs to function. You can combine properties from any assets that you like.
 +
 +===Algorithm===
 +
 +The //algorithm// is the 'brain' of the AI - this will point to a [[weak|weak]] or a [[strong|strong]] AI that will make any decisions the AI needs to make (ie. if the alert condition has been met).
 +
 +Although you can [[Creating your Own Algorithm|create your own]], most users can use one of the [[algorithm|standard algorithms]].
 +
 +===Data/Settings===
 +
 +These are the options used to control the behaviour of the //algorithm//. In a weak (rules-based) AI, these will be the rules you want to follow, the setpoints and thresholds you want to use as the basis for your alert.
 +
 +In machine-learning AIs, these will be the options to control the creation of your ML model, the place to save the trained AI, and other options that effect the generation and use of your artificial intelligence.
 +
 +===Outputs===
 +
 +Most Agents have a single alert output, but it is possible for a single agent to have several different outputs if required.
 +
 +===Attachment===
 +
 +The //attachment// controls how your AI **attaches** to ARDI assets.
 +
 +There are several [[Styles of Attachment|styles of attachment]], each of which connects your new Agent to your ARDI assets in different ways.
 +
 +An agent may attach to a //single// asset, or may instead make hundreds of copies of itself and attach them to every asset of a particular type, across your entire ARDI database.
 +
 +===Bindings===
 +
 +Rules for how ARDI can connect the //inputs// to the properties of the //attached asset//
 +
 +===Format===
 +
 +Each of these are set in an //agent// file - this is an XML file containing values for each of the sections covered above.
 +
 +An empty Agent file looks like this...
 +
 +<code>
 +{
 +   "name": "Agent Name",
 +   "style": "Algorithm Name",
 +   "data": { },
 +   "inputs": [ ],
 +   "outputs": [ ],
 +   "binding": { },
 +   "attachment": [ { } ]
 +}
 +</code>
 +
 +Next, we'll [[Agent Walkthrough - Design|design a new agent]] and walk through the steps of creating one.