New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

How to build with ASI tech stack I Kshipra Dhame

ETHGlobalSun, Nov 9, 2025, 12:00 AM

Kshipra Dhame from Fetch.ai’s DevRel team demonstrates how to build with the ASI tech stack, combining Fetch.ai and SingularityNET technologies under the Artificial Superintelligence (ASI) Alliance. The goal: create discoverable, interoperable AI agents that communicate autonomously. She explains how to build agents using uAgents, register and host them on Agentverse (AgentWars), and connect them with ASI1, Fetch.ai’s LLM that routes user queries to the best agent. Kshipra walks through the essentials of agent creation, inter-agent communication, and how to implement the Agent Chat Protocol, a requirement for hackathon eligibility. She also covers the three deployment types (Hosted, Local, Mailbox), shows how to integrate LangChain and CrewAI via adapters, and introduces the Agentverse MCP, a low-code management tool. In the final section, she demonstrates using SingularityNET’s Meta for knowledge graphs to enhance agents with reasoning, and gives tips for boosting rankings and visibility in the Agentverse marketplace. 00:11 Introduction & Agenda 01:26 Overview of the ASI Alliance (SingularityNET, Fetch.ai, Ocean, Cudos) 02:31 What Are AI Agents? (goal-oriented autonomous code) 03:44 Fetch.ai Ecosystem Overview: uAgents, Agentverse, and ASI1 04:50 Agent Search & Discovery with ASI1 and Agentverse 06:19 Hands-On: Creating Your First uAgent on Agentverse 08:20 Agent Address & Handlers (on_startup, on_message) 09:37 Agent Communication Example: Alice and Bob 11:56 Understanding the on_message Handler 14:32 Enabling the Agent Chat Protocol 15:41 Handling User Queries and API Calls 17:22 Building a Chat Protocol Agent with ASI1 LLM 19:49 Understanding ChatMessage & ChatAcknowledgement 21:48 Sending Responses and Ending Sessions 22:45 Handling Different Media Types (text, images, audio, video) 23:38 Chat Acknowledgement & Manifest Publishing 24:06 Making Agents Discoverable via ASI1 24:33 Writing Effective Agent READMEs (sample prompts, descriptions) 25:02 Improving Agent Ranking: avatars, handles, domains 25:43 Testing Agents in Chat and via ASI1 26:26 Example: Anime Image Generation Agent 28:21 Testing via Direct Address or Search 29:28 Hosted vs. Local vs. Mailbox Agents 32:02 Connecting Local Agents to Agentverse via Mailbox 33:07 Using LangChain or CrewAI with uAgents Adapters 34:28 Using Agentverse MCP for No-Code Development 35:58 Introducing SingularityNET Meta for Knowledge Graphs 37:37 Example: Medical Knowledge Agent Integrating Fetch.ai + Meta 41:49 Query Handling with Intent Detection and Meta Reasoning 43:34 Additional Examples: Financial Advisor & Document RAG Agents 44:08 Essential Hackathon Resources and Cheat Sheets 47:37 Hackathon Tips: More Chat Protocol Agents = More Points 48:23 Submission Best Practices & Ranking Optimization 48:40 Final Q&A and Closing Remarks _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 💻 ETHOnline 2025 This workshop is specifically for ETHOnline 2025, a 21-day hackathon held October 10 - 31, 2025, bringing together the most skilled web3 developers, designers and product builders from all around the globe for a weekend-long adventure to advance the Ethereum ecosystem! _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ✅ Follow ASI X: https://x.com/ASI_Alliance ✅ Follow ETHGlobal X: https://x.com/ETHGlobal​ Warpcast: https://warpcast.com/ethglobal Website: https://ethglobal.com YouTube: https://www.youtube.com/c/ETHGlobal _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Are you interested in Ethereum development and entrepreneurship?_ 👉 Sign up for the next ETHGlobal event: https://ethglobal.com/events 🎁 Get exclusive access and perks with ETHGlobal Plus! https://ethglobal.com/plus 📣 Want us to throw an event in your city? Tell us where! https://ethglobal.com/city

Transcript

Hello everyone and welcome to today's session. I'm Shepra, a part of the Devril team and today I will discuss about how to build with the ASI techstack. So first let's take a quick overview of the workshop agenda. So first I will be giving you a quick introduction to the ASI alliance. Then I will explain you what AI agents really are.

Followed by the Fetch AI ST stack and how agents can be searched and discovered within the Fetch AI ecosystem. Then we will do a quick hands-on where we will create a our first AI agent and we will also see how to AI agents can communicate with each other. Then we will discuss about the different approaches that you can take for creating your AI agent and the most important bit the chat protocol. So I will show you how you can enable agents with chat protocol as this is very crucial to be eligible for the prizes in the hackathon. So all of your agents must have the chat protocol enabled with them.

Next I'll give you a quick overview of singularity nets meta and how you can build smarter AI agents that can refer to knowledge graphs and show you a quick example around that. Finally, I will point you to some of the most important resources that you would need during the hackathon and also give you some tips and tricks to win the hackathon. So, first let's understand what is ASI alliance. The artificial super intelligent alliance in a nutshell. What we are trying to do here is we are trying to decentralize the entire AI ecosystem and for that singularity net fetch AI ocean kudos are coming together to achieve the single motive.

During this hackathon you are majorly expected to use singularity net and fetchai tech stack to build your solutions. So as in the course of this workshop I will be explaining you both the text and how you can use it for building your agents. Now first let's understand what are AI agents. So you can think of AI agents as pieces of code that can understand goals, make decisions and take actions on behalf of users. Now to give a simple example let's say there is a flight booking agent.

Okay. So now there could be a user who who will probably just type in a query saying please book me the cheapest flight from London to SF on so and so date. And what the agent is expected to do is the agent will then go and look for all of the flights. Then it will decide which one is the cheapest and best for the user and finally it will go ahead and book that flight. So that's an AI agent in a nutshell.

But during the course of this hackathon, you would be creating a lot of agents that could be doing different things such as one of your agents could just make a simple API call to get some information. Another agent could be something more complex that's actually running a machine learning model in the background to do some predictive analysis based on some users data. So the kind of agent that you would be building will strongly depend on the use case that you're trying to achieve. Now let us understand what is fetchai. Fetchai provides you a gateway to the agentic economy.

Fetchai gives you the platform to build your agents, deploy your agents and to make your agents discoverable. For these we have three core components. U agents, agent works and ASI1. So, U agents is a simple lightweight Python package with which you can build your agents and agent wars is a marketplace for AI agents. So, every U agent that is created is automatically registered on agent wars and people can check that agent and also talk with that agent through ASI1.

So, ASI1 is the first Asianic LLM developed by Fetch AI and the beauty of this LLM is it can do all of the tasks that a normal LLM can do such as do web search or create image and so on. But the beauty the real beauty is it can connect with any agent on agent to get a task done. So I'll be discussing more about it in the following slide. Agent search and discovery. Like I mentioned, you can build your agents using u agent or let's say you're already familiar with lang chain or crew AI or some other agentic framework.

You can still go ahead and build your agents using those frameworks and we have some adapters for it uh through which you can let's uh register a land chain agent or a crew crew AI agent onto agent wars. Now once these agents are registered on agent wars people can view these agents and people can also discover them through ASI1. So let's say I'm a normal user and I would like to probably uh generate an anime character. So I can go to ASI1 and say please can you create me an anime character with so and so description. So ASI1 natively can obviously generate images but it can actually go and look for an agent that is really really good at this particular task on agent wars.

So it will go to agent wars look for the best agent that can generate anime pass on your query to that agent. That agent will then execute the task and give back the response to ASI1. So now what happens is usually uh the LLM would be limited with its own knowledge base or the tools that it has at its dispos disposal. But with the ability to go and search on agent wars, it can pretty much do a lot of diverse tasks. It could do something as complex as analyzing an image for a broken bone or checking if someone has cancer and so on.

So that's the real beauty of ASIN. Now comes the interesting part where we will go ahead and build our first U agent on agent wars. So for that I will just open a new tab and type in agentwords.ai. I'm already logged in here but if not you should be able to easily log in using your Gmail accounts.

So, I'll click on launch an agent. And I just want to create a agent hosted agent. Now, I'm going to use one of these templates here, but you can obviously play around. Pick one of the blank agents or a skeleton agent or any of these. So, I'm just going to go ahead and create my first agent.

And let's just keep the name as my first agent. And there we go. Our agent is live on agent wars. Your agent has been successfully registered. Now let's go ahead take a look at the build.

So there are different sections and I will be talking about each one of these as we go ahead in this workshop. So first and foremost how do you build your agent? Like I mentioned for building your agents you can use the U agents library. So from U agents I will be importing two classes. One is agent and the other is context.

So first we will be initializing the agent and then the agent can have multiple handlers. So now in this case I'm using on event startup handler. So now what I want this agent to do on startup is I simply want it to print something like hello I'm an agent and my address is ctx.asent address. Now remember each agent on agent wars will have its own address and I will be talking more about it shortly.

So there could be there could be different agent handlers. There could be on startup there is on message on interval and so on. You can explore all of these handle uh handlers when you're building your examples. So now I'm just going to go ahead and start this agent. And we can see here it's printing starting agent.

Hello, I'm an agent and my address is so this is the agent's address. Now remember the agent address is very important for communication. Think of it as you're writing a letter to someone and you want to send that letter. So in that case you would need that person's address. Right?

Similarly when you want to send a message from one agent to another you need the other agent's address. and we will just take a look at that in a bit. So you can also copy your agent's address from the overview section here. So this is where you can get your agent's address from. Now let's take a look at another example which is agent communication.

So now we will see how can two agents communicate with each other. So I will go back, click on launch an agent, create a agent hosted agent and this time I'm going to select agent communication. So it will go ahead and create two agents for me. One is Alice and the second one is Bob. And it will show how messages get exchanged between these two agents.

So let's open Alice in a new tab and Bob in a new tab. First let's take a look at the code for Alice. So some of the bits are same here. So from U agents I'm importing something. I'm initializing the agent and there is the on agent startup handler.

But this time if you notice we are printing some message which is just about to send a message to Bob and then we are actually sending a message to Bob. So what this agent will do is when we start this agent it will go ahead and send a message to Bob. So for that it uses await ctx send and over here we need to verify we need to paste in Bob's address and this is the message that I'm going to send to Bob. So remember that this is very important because Bob needs to know what is the message that it is going it is going to have to handle or receive. So you can define that up here as a piantic model.

So in this case I have just created a class called request and in this class I'm just passing a message as a string. But in your case or your use case you could be passing numbers, integers, floats or you could even be passing dictionaries, lists, tpples and so on. So you just have to go ahead and mention that here. And similarly, this same data model also needs to exist with Bob which we will just see in a bit. So this is all that this agent is doing on startup.

And now I will go to Bob before I jump onto this bit. So now when Alice is sending the message to Bob, Bob has to handle this message or receive this message. So for that if you see again I have initialized the agent like I normally would and we have also defined the data model because Bob needs to know what is the kind of message that Bob needs to listen to and to listen to that message we have the onssage handler. So remember the onssage handler can enable the agent to receive messages from another agent. Okay.

So once the message message is received by Bob we are simply checking or we are simply logging received message from sender and we are printing that message and we are if let's say the sender is Alice. So we will check if this is Alice's address. If that's the case then we will send back a message saying hello there Alice. If not we will say hello there friend. So if I go back and if I just get Alice's address.

So I will go ahead copy Alice's address just to be sure. Remove this one. Replace it with Alice. And now I'm going to start Asian Bob. Now at this point, if you remember, Bob is sending a message to Alice.

So Alice also needs to handle this. I go back to Alice. And if I see here, this is the bit where Alice knows what kind of message Bob is going to send. then it will use the onssage handler to receive the message from Bob. So once it receives the message from Bob, it's simply going to lock that message saying received message from sender and the actual message.

So now let's go ahead and start Alice. So we can see it says starting agent then it is logged in saying just about to send a message to Bob and at this point it has sent a message to Bob. So if I go and look at the logs for Bob I can see that it has successfully started the agent and it received a message from Alice which says hello there Bob. And since it received a message from Alice, it is going to send back a message saying hello there Alice. So if I go to Alice and if I check the logs, eventually Alice has also received a message which says hello there Alice.

So this is how communication between two agents take place. So for that the key uh bits are you need to have the onssage handler defined on your agent. You need to know what is the data model that has been exchanged between the two agents and you can exchange messages using the ctx.end command. Now going ahead let's understand the agent chat protocol.

So now we saw how agents can exchange messages between each other. Now like I said ASI1 like users from ASI1 can actually query agents on agent wars. Now for that for those agents to handle the queries they need to have the agent chat protocol enabled. Now let's say I have a weather agent here which can simply give me the weather for any city and let's say there is a user who just types in a query saying what's the weather like in London today? So what ASI1 will do is first it in the background it will go to agents it will try and pick for the best weather agent out there and once it has picked it will forward that message to the weather agent.

So let's assume it has forwarded the message to this weather agent here and so to receive the message the weather agent needs to have a onssage handler which can accept a chat message. So in the previous example we had a on message handler which was accepting request as the data model but here we will have chat message and once it receives the message so now this message in PL is in plain text right so the message says what's the weather like in London so from this let let's say the next step is to make an API call which would actually give me the weather in London so for that what I can do is for extracting the parameter which is London from the query I can either call some other uh LLM agent. So, OpenAI agent which will extract the parameters and give that to me or I could have this logic in my agent using structured output to extract parameters uh in the query. And once I have the city as London, I can pass it on to the get weather function which makes the API call. Then we create the we get the response and we finally send that response back to ASI1 as a chat message again.

And remember for every message that is sent from ASI1 to the weather agent or from the weather agent to the ASI1 LLM there will always be a chat acknowledgement message. So what the chat acknowledgement message is all about is it confirms that the agent has received your message or the LLM has received the agent's message. Now let's take a quick look at one of the agents that can be built using the agent track protocol. So going back to agent war go to agents and let's say I click on launch an agent create a agent hosted agent and now I'm just going to pick this template here chat protocol using LLM and I want to call this as chat protocol test and click on create. So we can see our agent is live on agent tours.

I'm going to say view my agent. Take a look at the code. So we are importing quite a few things here. Some standard libraries, some classes from u Asians. And if you see I'm importing quite a few things from u Asian score specifically things related to the Asian chat protocol.

So over here if you see we have chat message, chat acknowledgement, text content and session content. All of these you can think of them as data models that we saw in our previous example but with a predefined set of parameters. Now in this example here we are uh all that we are doing is we are making an API call to the ASI1 LLM and that is going to act like a subject matter expert in birds. Now obviously all of these queries can be directly addressed through ASI1 but just for the purpose of explaining how chat protocol really works uh we're doing this uh example. So over here if you see I this is the base URL for ASI1 and ASI1 is compatible with the OpenAI package.

So you can go ahead and use the OpenAI package if you want to use ASI1 for general reasoning or thinking in your agent or you could straight up uh use post requests to uh get queries answered. And next we would need the API key. So if I just go to ASI1.ai and again I'm already already logged in but yeah if you guys aren't logged in you can login using your Google account. I will go ahead create a new key.

Let's say I just call this key as test and that's my API key. Now if I go back I would just replace that in here. So now we've replaced the API key. I've also initialized the agent like I normally would. Now I have initialized a protocol here.

So you can think of protocol as a set of rules defined for communication between two agents or in this case between ASI1 and the agent. So over here we are just saying that this agent can speak the chat protocol. And for to enable this correctly, we need to have two handlers, which is the onssage uh handler for chat message and another one for chat acknowledgement. So when a user will type in a query uh which we were discussing previously which for example uh let's say the user wants to know about pigeons. Uh so let's say the user just says can you help me learn more about pigeons and their habitats.

So that will be passed as a normal chat message to this agent. Now as soon as this agent gets a chat message, it's the duty of this agent to inform the ASI1 LLM that yes I have received your message. So for that it will send back an acknowledgement message. So in the chat acknowledgement message it will pass the time stamp of when it received the message and the message ID for it for which it actually uh is is received the acknowledgement. Okay.

And once we have that, that's that's when we will actually have the core implementation of the agent. So in this case, since I'm just sending a text message, I will extract that text from the message. And all that I'm doing at this point is making an API call to ASI1. So I'm telling ASI1 that you're a subject matter expert about birds and you should answer uh user's questions only on this topic and no other topic. And once we have the response from the LLM, what we will then do is we will pass this on as a chat message back to the user.

So that's like sending a chat message back to ASI1. So in this case again we will pass the time stamp then we will generate a unique ID for the message for obviously for reference if the message was received and so on and then the actual content. So remember in this case this is just going to be text content right? So I've used text content and set the type to text and I'm passing back the response which is generated by the LLM and I do not want to entertain any more questions from that particular user. So I'm just sending an end session message and the type is end session.

So this is how you would handle it if it were a text message. Now let's say you want to pass images, videos, audios to your agent. So in that case instead of text content you can use resource content and you will have to change the type with the standard mime types that exist. And I will also point you to some of the resources that show you how you can pass images to the agent or let's say you want if your agent is generating an image how you can send back the image to ASI1. And finally, you also need to have the chat acknowledgement handler.

So in this case, we're not doing much. We are just uh basically continuing once we get the chat acknowledgement. You could also log it or store it in memory just for confirmation. And lastly, when we say.incclude protocol, what we are doing here is we are just announcing and publish manifest equals true.

We are just announcing that this agent can communicate using the Asian chat protocol which means that this agent can be discovered via AI ASI1. So now if I start this agent real quick. So in the logs we can see starting agent successfully started agent. Now if we go to the overview tab this might take a few seconds. Once you've enabled chat protocol, now we can see over here uh in the protocol section agent chat protocol version 0.

3.0. So this indeed means that your agent is discoverable through ASI1. Now to make your agent more visible uh what you can do is you can edit the readme. Remember the readme is very crucial because this sort of tells ASI1 what this agent is capable capable of.

So make sure you mention in as much detail as possible you given some sample queries some out sample outputs from the agent as to what this agent what kind of queries the this agent can handle. So I can go ahead click on edit and I'm just going to say that this is a bird's expert agent and click on save. So in very few easy steps you can update the agent readme. So I will definitely say that make sure that you update your agent readme and then there is the ratings and analytics tab which can help you further enhance your agent ranking on the agent marketplace. So one of the key factors for getting your agent listed higher on the agent marketplace.

So as we can see over here there are 2.68 million agents. So if you want your agent to rank higher on this uh marketplace, what you have to do is first make sure that your agent has chat protocol which this one does have then you can also add like it's mentioned here add a custom agent avatar. You can add an agent handle for your agent. So you can go ahead there are some options to choose from or if you would like to upload one you can just go ahead do that.

Update your about section. add your add a domain to your agent and then there are a few other things over here which you can check. So what are the kind of queries this agent can handle? What are some similar agents? You can also check the interactions and so on.

And lastly, if you want to test your agent, you can just go to this chat uh click on the chat with agent button and you can type in your query over here and go ahead and see what how the agents respond. So, first of all, I will show you some of my pre-made agents and I will show you what a good agent readme looks like and then we will uh try out this agent. So, this is an anime generation agent. So, when you type in a query, this will give you uh an anime character. It will basically generate anomi character for you.

So if you see in this read me here, I have been as descriptive as possible as this is the best anime image generation agent. You can see that it has a higher uh interaction high very high rating as well. I have mentioned some of the features of the agent friendly how it works some sample prompts. So remember sample prompts are very very important because it not only helps ASI1 but for any person who wants to use your agent right they wouldn't know what kind of question this agent can answer. So if you provide some sample prompts people can just uh try them and basically uh use your agent.

So let's say um I want to try out this particular prompt and yeah this is mostly it and now if I go to ASI1.ai AI if I I'm already in a new chat and I'm just going to give a bit more context which is can you help me create the following anime and then pass in the query that we just copied and then turn on Asian search and hit send. So now what ASI1 should actually do is it should go to agent wars and it should pick uh the best anime agent. So I'm hoping that it's the one that I showed you because it has a fairly uh decent ranking and a good number of interactions. So let's just wait for it to complete reasoning.

We go. Initially it found about five agents and then luckily it picked the one that I was showing you and there we have the response from the agent. So during the hackathon you can obviously try out some custom queries. So this highly depends on your agent's readme and obviously in the beginning your agent might have lower rankings and if there's another agent that has higher ranking that agent might get picked automatically. So if you want to just test it through ASI1, if it if everything is working fine, what you can do is copy the agent's address, then go to ASI1 and paste your agents address and then type your query.

So what this will do is it will directly send a message to your agent instead of searching for agents on agents and then connecting to the agent and getting back the response. So this is how you basically create an agent with chat protocol. You can test your agent either using chat with agent or you can also test it directly through ASI1 just the way that I showed you here. So yeah, this is pretty much all about ASI1 and how you can chat with agents on ASI1. So now there are a few key things, right?

So when you create agents on agents, we call them as hosted agents. And when you create them on agent vers those agents will be running 24 by7 and you don't have to worry about anything at all. But there is one limitation due to security reasons. We've limited the number of Python packages that are supported by agent wars at this point because let's be honest there are so many and we cannot uh allow all the packages to be used on agent wars. So in that case what you can do is you can just go ahead and create a local agent.

So if I were to show you by local u agent all that I mean is uh you can basically run a u agent on your own machine or you can run it on a server. So if I just go to innovation lab resources and if you go to agent creation and agent creation so you can see all of them here. So this is the hosted u agent. Uh we saw one example around it. So I will just show you the local U agent.

So if you see nothing much changes really it's just the way you initialize the agent. So in this case I have initialized uh I need to mention like when you have a local agent you need to mention the name of the agent the port is very important where the agent will be listening to for messages the seed phrase. So now you can think of seed phrase uh as sort of a password to generate a unique address for your agent. So you can just keep the sephrase as unique as possible. And lastly, you need to mention the end point where the agent would be listening to messages.

So that's how you would run this agent locally. But and if you need any packages that are not supported on agent work, you can just go ahead and run this script like you would normally do in your ID such as VS code or PyCharm or so on. Now at this point when you create local agents the these agents are not connected to agent worst that's where the third approach comes in because this is the one you might have to use the most if you are creating some agents with chat protocol and they have some libraries that are not uh supported on agent words. You will have to create mailbox agents. So things remain similar.

So you still go ahead create a local agent on your machine. uh and all you have to do is you mention the port and you just set mailbox equals true. So the minute you set mailbox equals true, this sort of enables your agent to be connected to agent works. So in the logs you should see the agent inspector link. So if you use this agent inspector link, you just need to copy it, open it in a new tab uh on your browser.

So I would say use Google Chrome browser for it and then just click on connect then select mailbox and okay got it and that's it. That's just how your agent like your normal local agent which is running either on your machine or on your server can be connected to agents and you can still once you've done that and let's say if you have the chat protocol in your agent you can still go ahead and see the chat with agent button chat with that agent or the agent will also become discoverable through A51. So that's mostly how you can create different agents. So if you have all the packages you create a hosted agent. If you have limitation on packages, you create a local agent.

And if you want that agent to be connected to agent, you simply set mailbox equals true. Now let's say there are some of you who are familiar with other asentic frameworks such as lang chain, crew AI. So don't worry, we have a solution for that as well. So you just decide what is the problem you want to solve. You pick if you're using U agents, we just saw how you can just do it all.

But let's say if you're building with lang chain or crew AI, you can use the u agents adapter which will automatically enable chat protocol on your agent and all the other things that are needed for the agent to be discoverable through ASI1. So you can read more about uh how you can connect lang chain or crew AI agents uh to agent wars. In here we have got quite a few examples. So we have different adapters. We have the lang chain adapter, crew AI adapter, MCP server adapters, A2A adapters and there are some examples as well.

So if you go to example u agents adapter, you can find all of them and it's pretty simple. It's basically just a line of code that you need to add into your existing lang chain agent or your crewi agent. So now for those of you who are let's say new to coding or who just enjoy wipe coding in general we have launched the agent vers MCP. So the agent vers MCP can basically help you create agents uh deploy those agents on agents. You can pretty much manage your agents like you can start your agent, stop your agent or you want to update uh the agents readme or something you can do it using any MCP client.

So for that we've launched two MCP servers. So the agent war MCP has about 100 plus tools and the agent war MCP light is the one I would recommend for the hackathon because it has most of the important tools that you would need during the hackathon uh to build and deploy your agent using any MCP client and we have also uh created some wipe coding tools. So let's say you want to create an agent with agent chat protocol. If you just uh let me just show you the documentation for it. So you can fi find all of the information about agent MCP in here.

So these are the URLs through which you can connect pretty much any agent uh any MCP client to this agent MCP. And we've also shown you how you can do that using cursor, how you can do that using claude or the openi playground for that matter. And just to give a bit more context and to generate better agents, what you can do is just copy this uh VIP the VIP coding rules from here. You can download them and simply copy paste them into your cursor config or just add them as instructions in claude and that will just make your life so much easier. So that was mostly it about fetch AI in general.

So remember in fetch AI when you're creating agents you have to make sure that they have the chat protocol and they are discoverable through ASI1 during the process of the hackathon. Now comes in the second ASI alliance partner which is singularity net. So, singularity net has meta. Metatype talk is a multi-paradigm language for declarative and functional computations over knowledge graphs. So, you can think of it as the kg for your agent.

So, if you want to make your agent uh smarter, if you want to add a bit more context in your agent, if you want them to remember a few things, you can integrate it with meta. So, it's a structured knowledge representation. So you can add knowledge in the form of atoms. I will be showing you an example around that. And you can also add symbolic reasoning.

So let's say there is some knowledge in your knowledge graph already and you want to retrieve that. So for that you can perform complex logical operations and pattern matching to get or retrieve that information. Similarly, pattern matching and unification just helps you query through all of the information in a knowledge graph. So without wasting any more time, let me just show you one example uh where we have integrated fetch AI and singularity net. So this is one of the examples and it will also be listed in the hack pack uh that you guys will receive.

So this is a pretty descriptive readme uh if I were to say it that way. And I have created you can see there's a different folder called meta and there is an agent. So just in the interest of time I have actually cloned this repo on my machine and I I'm going to walk you through how you can uh basically integrate the two and we'll try a query or two. Like you can see I've already cloned this uh repo here. So in the meta folder we have three files which is knowledge medical rag utils.

py and the agent file. So I will first just quickly go over some of the important bits in the agent file and then I'll move to the meta bits. So, I'm going to keep this one short. So, you can see that I have an agent and this is a mailbox agent because I've set it to true and I'm running it on my local machine. And since I want this agent to have the chat protocol, I've already imported all of these libraries here.

Uh, sorry, all of the data models from UAE score. And I've also added the ASI1 API key because I'm going to need it in some parts. Uh and you can see that I've enabled the chat protocol. So I have the chat message handler and I also have the chat acknowledgement handler and then I'm publishing the manifest. So this makes sure that this agent is going to be enabled with chat protocol.

Uh and all that I'm doing is when I get a text message I want to process the query and once the uh query is processed I will send back a chat message. So this is a medical rag. So I will tell you what exactly happens when we process the query. So what is happening here is this agent is connected to a knowledge base. So this is the knowledge base knowledge.

py uh which is in meta. So in meta every uh basically a piece of information is stored as an atom in the space. So for this particular example, I've created a medical rag where I'm saying that these could be for symptom uh fever, the disease could be flu. So this is how you store the relation uh in the knowledge graph. So there is if someone has fever, if the symptom that a person is showing is fever, they could have flu.

If the symptom that the person is showing is cough, then they could have flu. So this is how I've added a bunch of uh symptoms and what they could be representing. So in this case I've linked them to different diseases. But in your case obviously you can swap this uh to much more complex uh examples. This is just to keep things simple and then the treatment.

So over here if you see I've listed down one flu, migraine, depression as three diseases and then over here I'm listing down the treatments for each of this disease. So let's say if somebody has flu, I would advise them to rest, have some fluids, take antiviral d drugs. So that's the general treatment. Obviously don't go by this, but this is just uh something generic for the example. And what could be the side effects of different things like what what could be the side effects of antiviral drugs?

What could be the side effects of painkillers? What could be the side effects of anti-depressants? So this is just to give a bit more context to the agent. And lastly, what could be some FAQs? So you can define your knowledge base to be as strong as you want depending on your use case.

So the stronger your knowledge base, the smarter your agent. That's just it. So this is the knowledge base that the U agent will be referring to whenever it gets a query. So if I go back to the agent, uh whenever it gets a query, it calls the process query function. So now in in here since I have different things like right so somebody might just might just type in their symptoms uh so I need to verify if they're trying to look uh if they're trying to understand what they're suffering from or if they're trying to look for a treatment.

So for that I have this utilis function here and the process query function here. So what it does is it basically is trying to match the intent uh of the user. So for that we are using the ASI1 LLM. So let's say the user is sort of giving me symptoms like flu or cold or cough then I know that uh the intent is symptoms. So I have to go ahead and query symptom and then it will give me the disease for it.

And similarly for treatment and FAQs. So if somebody is asking me for treatment for a specific disease I need to go and get the treatment for it. Right? So if I go to this query symptoms function which I've defined in medical rag. So all that it does is it will do some uh pattern matching in your kg.

So over here we are trying to match the symptoms that were shared by the user and then we're trying to get the disease. So once we run that once we run that query uh using meta.run we will get all the list of unique diseases. So let's say if I said something like I have fever. So here it would uh the query would pretty much be like symptom fever what's the disease.

So then it will go to this knowledge base. So the symptom is fever. Uh so the symptom is fever. What's this disease? The disease would be flu in that case and then it will return us back that particular disease.

So this is how basically you can integrate Meta with your agent and make your agent stronger. And we highly recommend that you use both the technologies to the best uh of the use cases and build some really smart AI agents during the course of the hackathon. So you can uh simply clone this uh repo from here or there are a few more examples such as the financial advisor agent. Uh there is one more which is which is just basically showing you how you could uh build a rag over some documents. So definitely do check out uh these ones as well and they'll really help you during the hackathon.

So yeah, we just we just checked out the example and now going ahead, I'm going to point you to some of the most important resources that you would be needing during the hackathon. So we do have individual documents uh for the three products that we have that is ASI1 for agent wars and also for you agents but I will say you do not have to refer to any of these documents unless and until you need in-depth explanation of everything. I will just give you a cheat sheet which is onetop hackathon documentation which is the innovation lab documentation and you can find all of the information. And I'm 100% sure that you will need during the hackathon in this document itself. So just to give you some of the key uh bits that you would be referring to in this hackathon is obviously the Asian creation that we just saw.

So if you just go to Asian creation, new Asian creation hosted local mailbox. If you have lang chain or crew AI agents, you can just refer to the U aents adapters in Asian creation itself. Or you can also go to examples and then refer to U agents adapter. We have some examples of agent to agent communication. So the first example that we saw the different handlers that I was talking about on event startup on event shutdown on message.

Now let's say some of you might actually want to build uh some UIs for your application and you would then need some rest endpoints like some endpoints where you could send your post requests to, right? So you can also add rest endpoints to your agent and you can refer to this document over here and I think we also have a integration which shows how to connect frontends to your agents. Next the most important bit like I mentioned you should have Asian chat protocol enabled in your agent. So you can refer to this example here which is creating ASI1 LM compatible U agent. It gives you all of the information that you need.

You also have the code. So you just need to plug and play. You might have to change uh the logic based on your use case. Then if let's say you want to pass some images to your agent. So how can you do that?

So we have this image analysis agent here which can show you how you can pass resource content uh to the agent. So if I were to give you a quick example on that. Uh yeah just should be just down here. So if the item is resource content how do you deal with it? You can check out uh all of that here.

Then if let's say your agent is actually generating images and you want to pass an image from your agent to ASI1 LLM do refer to this document and there are a bunch of other examples that you may want to refer to such as onchain integrations payment protocol MCP integrations so we do have uh a way to have MCPs hosted on agent war. So in case you want to refer to that as well. Here's a document on that and it pretty much explains you how you can do that. So yeah, I think I've covered all of the bits here in the resources. Now coming to some tips and tricks to help you win the hackathon.

So first things first, the more agents you make discoverable on ASI1, the greater your chances of winning. So the more agents you create with the agent chat protocol, the greater your chances are for winning. And for that I will say when you're creating your agent, make sure that your readme is really good and it has sample prompts and we can just go in there and test your agent on the go. Next is create a GitHub repo for your submission with again a good readme. Let's say if you need some API keys or something to run your agent, do mention those.

uh make sure you mention your agent addresses in your GitHub repo. And for basically agent ranking, you can uh refer to the documentation. It will guide you or you could just look up for some good agents on marketplace that are listed higher and you can refer to the those readmes as well. And if you just create agent wars hosted on if you just create agents hosted on agent wars, you don't have to worry at all about the infrastructure. So you don't have to worry about mailbox.

So if there are agents that you can build with the pre-existing packages on agent words, just go ahead and do that. So yeah, that was pretty much it from me. And if you have any questions, do feel free to reach out to us on our discord or on our GitHub. We are always there to help you and support you during the hackathon. Thank you for watching.

Automatic transcript — names and jargon may be misspelled.