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.

In terms of future enhancements, BrainSoup is planning the implementation of Skills, a functionality that allows agents to perform actions on external systems. This feature is currently under development and is expected to significantly expand the task range that agents can handle.