An agent in BrainSoup is a type of chatbot with a unique persona, settings, role, knowledge, and skills. These agents facilitate both user-to-agent and agent-to-agent interactions to accomplish particular objectives.

Agents are highly customizable through a range of settings, allowing them to undertake various roles within BrainSoup effectively. Whether it's a personal-assistant or a task-specific operator, an agent's role is versatile and heavily determined by its custom configuration.

Knowledge-wise, agents can source information from accessible documents and conversation histories, which are user-provided and stored in the Documents folder. Over time, this accumulation of Knowledge serves as a comprehensive reference enabling the agent to handle complex tasks competently.

One key characteristic of an agent is its sense of time. Agents have an awareness of the passing time during a conversation, including knowledge of the current hour and the timing of each message. Furthermore, if a conversation spans multiple days, the agent is cognizant of this.

Aside from their awareness of time, these agents also have real-time perception, both internally and externally to BrainSoup. This perception is largely enabled through Contexts, presenting dynamic or important data to the agent's working memory. Whether it's sensor data, time-sensitive information such as weather updates, or performance KPIs, this real-time input helps mimic an agent's sense of real-time awareness.

Agents also have the ability to respond to Events, which are special messages injected into chat rooms containing data. This interaction ability allows agents to effectively respond to specific triggers within their operating environment.

To accomplish tasks, agents can use Tools that enable them to call external services and act on the outside world. You can choose which tools an agent has access to.