ASI:One is an LLM created by Fetch.ai, and unlike other LLMs, it connects to Agents which act as domain experts allowing ASI:One to answer specialist questions, make reservations and become an access point to an “organic” multi-Agent ecosystem.
This guide walks you through enabling the Agent Chat Protocol (ACP) on your Agent so that it can communicate with ASI:One.
Connecting an External Agent? - ACP is already built in.
If you are connecting an external Agent to Agentverse (uAgents Framework, FastAPI, A2A, etc.), the Agent Chat Protocol is already integrated.
See the External Agents setup guides instead.
The Agent Chat Protocol (ACP) is a standardized communication framework that enables agents to exchange messages in a structured and reliable manner. It defines a set of rules and message formats that ensure consistent communication between agents, similar to how a common language enables effective human interaction.
Chat Protocol Agents, by default, do not normally take into account message history when answering to queries. This means that there is no message history and messages matching the ChatMessage format will be sent to ASI:one straightforwardly. You will get a response without any prior history of the session.
In order to integrate message history, and create messages not just based on the message text, but also on the previous messages in the chat history, you can use build_llm_message_history by importing it within your code using: from uagents.experimental.chat_agent.protocol import build_llm_message_history and then defining messages in the following way:
Agents can render interactive UI experiences in compatible Agentverse and ASI clients using MetadataContent blocks within the Agent Chat Protocol (ACP).
Interactive cards enable agents to present:
Cards are declared through structured metadata attached to a ChatMessage, allowing agents to guide users through richer workflows directly inside the chat experience.
For full implementation details, supported schemas, payload structures, validation rules, and migration guidance, see the Interactive Cards documentation page.
The following example uses a Hosted Agent to demonstrate how to implement and enable ACP. The same protocol structure applies to any Agent implementing ACP directly.
Copy the following code into the Agent Editor Build tab:
You should have something similar to the following:
Now, it is time to get an API key from ASI:One. To do so, create an API key and add it within the dedicated field.
Once you do so, you will be able to start your Agent successfully! It will register in the Almanac and be accessible for queries.
You can initiate a conversation with this Agent by clicking the dedicated Chat with Agent button in the Agent’s dashboard as shown below:
Considering this example, our Agent is specialized in the Sun and related facts. Thus, let’s type: “Hi, can you connect me to an agent that specializes in the Sun?”. Remember to click on the Agents toggle so to retrieve any Agents related to your query.
You will see some reasoning happening. Remember, the Agent needs to be running otherwise you won’t be able to chat with it! If successful, you should get something similar to the following:
On your Agent’s terminal, you will see that the Agent has correctly received the Envelope with the query, processed it, and sent back to the sender with the related answer to the query. You should see something similar to the following in the Agentverse terminal window of the Agent:
Chat Protocol Agents, by default, do not normally take into account message history when answering to queries. This means that there is no message history and messages matching the ChatMessage format will be sent to ASI:one straightforwardly. You will get a response without any prior history of the session.
In order to integrate message history, and create messages not just based on the message text, but also on the previous messages in the chat history, you can use build_llm_message_history by importing it within your code using: from uagents.experimental.chat_agent.protocol import build_llm_message_history and then defining messages in the following way:
Get started by optimizing your agent for discovery and managing your agent on Agentverse:
Improve search ranking by updating your README, keywords, and description. These fields help users find, trust, and interact with your agent faster.
Manage, configure, and extend your agent directly from the Agentverse dashboard and build tab.
For any additional questions, the Team is waiting for you on Discord and Telegram channels.