<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Aura – </title>
    <link>/docs/atria/technical-components/agents-server/</link>
    <description>Recent content on Aura</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    
	  <atom:link href="/docs/atria/technical-components/agents-server/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: </title>
      <link>/docs/atria/technical-components/agents-server/components/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/atria/technical-components/agents-server/components/</guid>
      <description>
        
        
        &lt;h1 id=&#34;agents-server-architecture-and-components&#34;&gt;Agents Server architecture and components&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Development architecture and technical components of the &lt;em&gt;&lt;strong&gt;agents-server&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;technical-foundations&#34;&gt;Technical foundations&lt;/h2&gt;
&lt;p&gt;The &lt;em&gt;&lt;strong&gt;agents-server&lt;/strong&gt;&lt;/em&gt; component will start a server that listens for incoming requests and executes the agent&amp;rsquo;s tasks based on the received input.&lt;/p&gt;
&lt;p&gt;The server can be configured to use an agent by specifying the agent package name.&lt;/p&gt;
&lt;p&gt;This server creates a REST API that can be used to interact with different agents. The API allows sending requests to the agent and receiving responses.&lt;/p&gt;
&lt;p&gt;Within the &lt;em&gt;&lt;strong&gt;agents-server&lt;/strong&gt;&lt;/em&gt;, the &lt;em&gt;&lt;strong&gt;agents package&lt;/strong&gt;&lt;/em&gt; component enables information processing tasks to be performed and acted upon to achieve specific objectives. This information can come from a database and respond to the user&amp;rsquo;s request based on that acquired information.&lt;/p&gt;
&lt;h2 id=&#34;architecture-overview&#34;&gt;Architecture overview&lt;/h2&gt;
&lt;p&gt;The following figure shows the main technical components of the &lt;em&gt;&lt;strong&gt;agents-server&lt;/strong&gt;&lt;/em&gt;, which are described below.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;img width=&#34;500&#34; height=&#34;500&#34; src=&#34;../../../../images/agents-server/agents-server-components.png&#34;&gt;&lt;br&gt;
  &lt;i&gt;agents-server components&lt;/i&gt;
&lt;/p&gt;
&lt;h3 id=&#34;http-server&#34;&gt;HTTP server&lt;/h3&gt;
&lt;p&gt;Microservice is implemented as an HTTP server (&lt;a href=&#34;https://fastapi.tiangolo.com&#34;&gt;fastapi&lt;/a&gt;) that exposes an API to receive the request to be validated.&lt;/p&gt;
&lt;h3 id=&#34;config-api-handler&#34;&gt;Config Api Handler&lt;/h3&gt;
&lt;p&gt;The &lt;em&gt;&lt;strong&gt;agents-server&lt;/strong&gt;&lt;/em&gt; uses the &lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt; to get the configuration of the agent.
This handler is responsible for retrieving the configuration of the agent from the &lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt; and providing it to the server.&lt;/p&gt;
&lt;h3 id=&#34;configurationmanager&#34;&gt;ConfigurationManager&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;ConfigurationManager&lt;/code&gt; is a handler for configuration, obtained through a configuration file or environment variables.&lt;/p&gt;
&lt;h3 id=&#34;agents-package&#34;&gt;Agents Package&lt;/h3&gt;
&lt;p&gt;The server is configured to use the agent of a specific agent package name. This package contains the agent&amp;rsquo;s code and its dependencies. The server will load the agent package and use it to execute the agent&amp;rsquo;s tasks.&lt;/p&gt;
&lt;h3 id=&#34;event-subscribers&#34;&gt;Event Subscribers&lt;/h3&gt;
&lt;p&gt;Event subscribers are implementations for managing event registration and handling in the &lt;em&gt;&lt;strong&gt;agents-server&lt;/strong&gt;&lt;/em&gt;. They allow the server to listen for events and trigger actions based on those events.&lt;/p&gt;
&lt;h4 id=&#34;redis-async-subscriber&#34;&gt;Redis Async Subscriber&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;RedisAsyncSubscriber&lt;/code&gt; is a handler for subscribing to Redis channels asynchronously. It allows the server to receive messages from Redis and process them in real time.&lt;/p&gt;
&lt;h4 id=&#34;dapr-async-subscriber&#34;&gt;DAPR Async Subscriber&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;DaprAsyncSubscriber&lt;/code&gt; is a handler for subscribing to DAPR topics asynchronously. It allows the server to receive messages from DAPR and process them in real time.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/atria/technical-components/agents-server/environment-variables/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/atria/technical-components/agents-server/environment-variables/</guid>
      <description>
        
        
        &lt;h1 id=&#34;agents-server-environment-variables&#34;&gt;Agents server environment variables&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;List of environment variables handled by the &lt;em&gt;&lt;strong&gt;agents-server&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The &lt;em&gt;&lt;strong&gt;agents-server&lt;/strong&gt;&lt;/em&gt; depends on these environment variables to be set. None of them are modifiable by the OBs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Property&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Type&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AGENT_PACKAGE_NAME&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Package names containing the agents to be deployed. They must be separated by &lt;code&gt;,&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_AGENT_DEPLOYMENT_NAME&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Deployment name, which is used to obtain the agents to be deployed at API level.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_CONFIG_API_API_KEY&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;number&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;APIKey for the &lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;. This key is used to authenticate requests to the &lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_CONFIG_API_BASE_URL&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Base URL for the &lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt; used to make requests to this component.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_LOGGING_CONFIG_PATH&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Path to the logging configuration file. This file is used to configure the logging settings for the server.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_LOGGING_MODULE_NAME&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Name of the logging module. This name is used to identify the logging module in the logging configuration.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_LOGGING_NAME&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Name of the logging instance. This name is used to identify the logging instance in the logging configuration.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_DATABASE&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;number&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Redis database number to be used by the server. This number is used to connect to the Redis database.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_HOSTS&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Redis hosts to be used by the server. This is a comma-separated list of Redis host names or IP addresses.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_MODE&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Mode of the Redis connection.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_PASSWORD&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;number&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Ppassword for the Redis connection. This password is used to authenticate the connection to the Redis database.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_POOL_SIZE&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;number&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Size of the Redis connection pool. This number is used to limit the number of connections to the Redis database.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_PREFIX_SUBSCRIBERS&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Prefix for the Redis subscribers. This prefix is used to identify the subscribers in the Redis database.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_CHANNELS_SUBSCRIBERS&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Channels (separated by &amp;lsquo;,&amp;rsquo;) for the Redis subscribers. Redis prefix is added to these channels at the beginning.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_P_CHANNELS_SUBSCRIBERS&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Pattern channels (separated by &amp;lsquo;,&amp;rsquo;) for the Redis subscribers. Redis prefix is added to these pattern channels at the beginning.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_DAPR_PUBSUB_NAME&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;DAPR pubsub component name. It is used to identify DAPR component to be used.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_DAPR_PREFIX_SUBSCRIBERS&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Prefix for the DAPR pubsub subscribers. This prefix is used to identify the subscribers in the configured database.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_DAPR_TOPICS_SUBSCRIBERS&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Topics (separated by &amp;lsquo;,&amp;rsquo;) for the DAPR pubsub subscribers. DAPR prefix is added to these topics at the beginning.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_MODEL_GW_BASE_URL&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Base URL for the &lt;em&gt;&lt;strong&gt;aura-model-gateway&lt;/strong&gt;&lt;/em&gt;. This URL is used to make requests to the &lt;em&gt;&lt;strong&gt;aura-model-gateway&lt;/strong&gt;&lt;/em&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_MONGODB_SSL&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;boolean&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;It indicates whether to use SSL for the MongoDB connection or not. This is a boolean value that can be set to &lt;code&gt;true&lt;/code&gt; or &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_MONGODB_URI&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;URI for the MongoDB connection. This URI is used to connect to the MongoDB database.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_MONGODB_USERNAME&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Username for the MongoDB connection. This username is used to authenticate the connection to the MongoDB database.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_MONGODB_PASSWORD&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Password for the MongoDB connection. This password is used to authenticate the connection to the MongoDB database.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;i class=&#34;fa-solid fa-triangle-exclamation fa-xl&#34; style=&#34;color: #f45815;&#34;&gt;&lt;/i&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The &lt;strong&gt;environment variables related to Redis&lt;/strong&gt; are used to connect to the Redis database. This database is used to refresh the agent&amp;rsquo;s configuration, because every time the configuration of an agent is changed, it publishes this change in the corresponding channel so we can detect this change in order to refresh it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;strong&gt;environment variables related to DAPR&lt;/strong&gt; are used to connect to the DAPR components. These components are used to refresh the agent&amp;rsquo;s configuration, because every time the configuration of an agent is changed, it publishes this change in a corresponding topic, so we can detect this change in order to refresh it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In order to use DAPR, it is necessary to have the DAPR pubsub component configured in the DAPR configuration file, besides the DAPR &lt;a href=&#34;https://docs.dapr.io/reference/environment/&#34;&gt;environment variables&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/atria/technical-components/agents-server/api-definition/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/atria/technical-components/agents-server/api-definition/</guid>
      <description>
        
        
        &lt;h1 id=&#34;agents-server-api-definition&#34;&gt;Agents Server API definition&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Description of Agents Server configuration API swagger&lt;/p&gt;
&lt;p&gt;This is an internal &lt;em&gt;&lt;strong&gt;AURA&lt;/strong&gt;&lt;/em&gt; API.
&lt;br&gt;&lt;br&gt;
&lt;i class=&#34;fa-regular fa-file-lines fa-xl&#34; style=&#34;color: #0d5de7;&#34;&gt;&lt;/i&gt; &lt;a href=&#34;../../../../techFiles/apis/atria-agents-server/atria-agents-server-swagger.yaml&#34;&gt;Download swagger file&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;


&lt;div id=&#34;ohpen_swagger_ui&#34;&gt;&lt;/div&gt;
&lt;script&gt;
  window.onload = function () {
    const ui = SwaggerUIBundle({
      url: &#34;/techFiles/apis/agents-server/agents-server-swagger.yaml&#34;,
      dom_id: &#39;#ohpen_swagger_ui&#39;,
      presets: [
        SwaggerUIBundle.presets.apis,
        SwaggerUIStandalonePreset
      ]
    });
    window.ui = ui;
  };
&lt;/script&gt;


      </description>
    </item>
    
  </channel>
</rss>
