Tag: Sentienta Agents

  • A Deep-dive into Agents: Tool Access

    An important feature of agents is their ability to utilize tools. Of course there are many examples of software components that use tools as part of their function, but what distinguishes agents is their ability to reason about when to use a tool, which tool to use and how to utilize the results.

    In this context, a ‘tool’ refers to a software component designed to execute specific functions upon an agent’s request. This broad definition includes utilities such as file content readers, web search engines, and text-to-image generators, each offering capabilities that agents can utilize in responding to queries from users or other agents.

    Sentienta agents can access tools through several mechanisms. The first is when an agent has been pre-configured with a specific set of tools. Several agents in the Agent Marketplace utilize special tools in their roles. For example, the Document Specialist agent (‘Ed’) which you can find in the Document and Content Access section, utilizes Amazon’s S3 to store and read files, tailoring its knowledge to the content you provide.

    Angie, another agent in the Document and Content Access category, enhances team discussions by using a search engine to fetch the latest web results. This is valuable for incorporating the most current data into a team dialog, addressing the typical limitation of LLMs, which lack up-to-the-minute information in their training sets.

    You have the flexibility to go beyond pre-built tools. Another option allows you to create custom tools or integrate third-party ones. If the tool you want to use exposes a REST API that processes structured queries, you can create an agent to call the API (see the FAQ page for more information). Agent ‘Ed’, mentioned earlier, employs such an API for managing files.

    Finally, Sentienta supports completely custom agents that embody their own tool use. You might utilize a popular agent framework such as LangChain, to orchestrate more complex functions and workflows. Exposing an API in the form we just discussed will let you integrate this more complex tool-use into your team. Check out the Developers page to see how you can build a basic agent in AWS Lambda. This agent doesn’t do much, but you can see how you might add specialized functions to augment your team’s capabilities.

    In each case, the power of agent tool-use comes from the agent deciding how to use the tool and how to integrate the tool’s results into the team’s dialog. Agents may be instructed by their team to use these tools, or they may decide alone when or if to use a tool.

    This too is a large subject, and much has been written by others on this topic (see for example here and here). We’ve touched on three mechanisms you can use in Sentienta to augment the power of your agents and teams.

    In a future post we’ll discuss how agents interact in teams and how you can control their interactions through tailored personas.

  • A Deep-dive into Agents: Memory

    There is a lot of buzz in the news about AI agents. I thought I’d take this opportunity to discuss what makes a Sentienta agent different from what you might have read.

    As this is a somewhat complex subject, I’ve decided to break it into several posts. This one is about the memory that drives agent behavior. Subsequent posts will discuss Tool Access, Task Delegation, Multi-agent Interaction and Autonomous Action.

    A Sentienta agent exists within an environment, consisting of interactions with users, other agents (Sentienta is a multi-agent platform), its local host and the internet.

    The core of the agent is an LLM. We use best-in class LLMs as engines that drive agentic functions. We constantly assess which LLMs are best suited for the behavior we expect from our agents, and given the rapid evolution in LLM capability, this is essential. Because the engine is an LLM, the fundamental communications of the agent both internally and with the environment are in natural language.

    The LLM is of little value without context, and this is provided by memory. Sentienta agents have two kinds of memory which we can loosely relate to the classes of memory known to be used by a brain region called the hippocampus. The first is semantic memory: derived from the agent’s interaction with other agents and the user, this is simply a record of LLM communications organized into the current dialog and past dialogs.

    The second kind of memory is episodic: each agent uses its persona and existing memory to filter and reframe the dialog to create new episodic memories. Note that this is bootstrapped from the persona (which you write when you create the agent) – a new agent builds this memory using the persona as the starting point.

    So how is all of this used by the LLM? The persona, and more general agent instructions, define the LLM system prompt. The memory (of both types), plus the communication from the environment form the query.

    Pretty simple right? But of course the devil is in the details.

    There are a few things to note about this architecture. The first is that the persona plays an important role: it both guides LLM responses because it is a part of the system prompt, and it helps model the evolving agent memory creating a distinct agent ‘personality’. This evolves as the agent participates in tasks and interacts with other agents.

    The second is that the episodic memory is retained by the agent. If an agent belongs to more than one team, the agent brings its memory with it across teams and tasks. For example if an agent manages a product design team and joins a marketing team, the agent brings with it the latest design decisions from the product team. And of course what it learns from marketing can drive product design.

    It’s important to note that the agents on your teams belong to you. Knowledge gained by an agent is never shared outside your account.

    That is a high-level summary of how Sentienta agents create context for their tasks. Stay-tuned to learn about how agents use tools to interact with their environment.