Ping-Pong

Let's start with a ping pong

What are we building?

Let's start with a dead simple example to understand how AgentLabs works.
In this recipe, we'll create a basic server with one single agent that listens for an incoming message.
Every time a user sends a message through the Frontend UI, the agent will evaluate it and answer.
If the message is equal to ping the agent will reply with pong.
Otherwise, the agent will say he did not get the message.
The full example is available in our example repository.

Requirements

To follow this tutorial, you must have:
  • some basic programming skills in Python or Typescript
  • created a project and an agent in your console

Let's code

Initializing the SDK

First, we must initialize the SDK with the project ID and the secret key.
You can find this information on your admin console.
Typescript
Python
import { Project } from 'agentlabs-sdk';
const project = new Project({
projectId: 'you-project-id',
secret: 'your-secret',
});
const agent = project.agent('agent-id');
from agentlabs.chat import IncomingChatMessage, MessageFormat
from agentlabs.project import Agent, Project
project = Project(
project_id='your-project-id',
secret='your-secret'
)
agent = project.agent('agent-id')

Listen for messages

Now, we can use the onChatMessage method to apply some logic every time the user sends a message in the chat.
The onChatMessage accepts a callback as an argument, this callback will handle our logic.
Then, we'll use the send method exposed on the agent instance to send a message back to the chat on behalf of the agent.
Note the message argument contains some useful data, such as the conversation ID or the message's text.
Typescript
Python
import { Project } from 'agentlabs-sdk';
const project = new Project({
projectId: 'you-project-id',
secret: 'your-secret',
});
const agent = project.agent('agent-id');
project.onChatMessage((message) => {
if (message.text === 'ping') {
agent.send({
conversationId: message.conversationId,
text: 'pong'
})
} else {
agent.send({
conversationId: message.conversationId,
text: 'I did not get that'
})
}
})
from agentlabs.chat import IncomingChatMessage, MessageFormat
from agentlabs.project import Agent, Project
project = Project(
project_id='your-project-id',
secret='your-secret'
)
agent = project.agent('agent-id')
def handle_message(message: IncomingChatMessage):
if message.text == 'ping':
agent.send(
conversation_id=message.conversation_id,
text="pong"
)
else:
agent.send(
conversation_id=message.conversation_id,
text="I did not understand"
)
project.on_chat_message(handle_message)

Init the connection

So far we instantiated our project and agent instances. We also defined the behavior of the agent.
Now, we need to initiate the connection between your server and ours.
No worries, it's the simplest part. We just have to use the project.connect() method.
Note in Python you will have to use the project.wait() in addition to project.connect().
Typescript
Python
import { Project } from 'agentlabs-sdk';
const project = new Project({
projectId: 'you-project-id',
secret: 'your-secret',
});
const agent = project.agent('agent-id');
project.onChatMessage((message) => {
if (message.text === 'ping') {
agent.send({
conversationId: message.conversationId,
text: 'pong'
})
} else {
agent.send({
conversationId: message.conversationId,
text: 'I did not get that'
})
}
})
project.connect()
from agentlabs.chat import IncomingChatMessage, MessageFormat
from agentlabs.project import Agent, Project
project = Project(
project_id='your-project-id',
secret='your-secret'
)
agent = project.agent('agent-id')
def handle_message(message: IncomingChatMessage):
if message.text == 'ping':
agent.send(
conversation_id=message.conversation_id,
text="pong"
)
else:
agent.send(
conversation_id=message.conversation_id,
text="I did not understand"
)
project.on_chat_message(handle_message)
project.connect()
project.wait();

🎉
Congrats

You did it! Here's the result you must have
☺️