Skip to content

Commit 223ad64

Browse files
Add new Agent IO instructions, tutorial/guide (#265)
- Added Telegram (source) to mermaid diagram - Updated Agents overview with instructions, screenshots on new IO - Cleaned up sidebar (removed "Agent" prefix in Agent IO section) - Created new "Agent IO" guides/tutorial page explaining key concepts - Added links to existing YouTube videos in relevant pages
1 parent 2779008 commit 223ad64

18 files changed

+251
-15
lines changed

content/Cloud/agents.mdx

Lines changed: 85 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ graph TD
2929
A5[Agent]
3030
A6[Slack]
3131
A7[Discord]
32+
A8[Telegram]
3233
end
3334
3435
subgraph Destinations
@@ -47,6 +48,7 @@ graph TD
4748
A5 --> Agent
4849
A6 --> Agent
4950
A7 --> Agent
51+
A8 --> Agent
5052
5153
Agent --> B1
5254
Agent --> B2
@@ -84,7 +86,7 @@ async def run(request: AgentRequest, response: AgentResponse, context: AgentCont
8486
return response.text("ok")
8587
`} />
8688

87-
#### Agent Webhook Source
89+
#### Webhook Source
8890

8991
To configure your agent to receive data from a webhook, you need to add a new webhook source. When receiving data from a webhook, the agent will send the data to the agent's inputs asynchronously without waiting for the agent to finish processing the data.
9092

@@ -114,7 +116,7 @@ To trigger a webhook using curl with a required Bearer token authentication, you
114116

115117
The response from the webhook will contain an informational message if successful. Additionally, the `Location` header will contain the URL that can be used to read the agent output. This URL will block until the agent has started streaming the output response.
116118

117-
#### Agent API Source
119+
#### API Source
118120

119121
To configure your agent to receive data as an API endpoint, you need to add a new API source. When receiving data from an API endpoint, the agent will send the data to the agent's inputs synchronously and wait for the agent to respond.
120122

@@ -144,7 +146,7 @@ To invoke an API using curl with a required Bearer token authentication, you can
144146
Make sure to use the correct agent ID in the webhook URL.
145147
</Callout>
146148

147-
#### Agent Email Source
149+
#### Email Source
148150

149151
For Email sources, you can configure your agent at a unique agent email address. When receiving an email, the agent will send the email content to the agent's inputs asynchronously without waiting for the agent to finish processing the email.
150152

@@ -156,7 +158,7 @@ For Email sources, you can configure your agent at a unique agent email address.
156158

157159
The response from the API will contain an informational message if successful. Additionally, the `Location` header will contain the URL that can be used to read the agent output. This URL will block until the agent has started streaming the output response.
158160

159-
#### Agent Discord Source
161+
#### Discord Source
160162

161163
For Discord sources, you can configure your agent to receive messages from a Discord server. When a user tags the bot in a Discord message, the agent will receive the message content asynchronously without waiting for the agent to finish processing the message.
162164

@@ -248,7 +250,40 @@ async def run(request: AgentRequest, response: AgentResponse, context: AgentCont
248250
Discord sources can only be triggered by messages where the bot is tagged in a Discord server. The bot cannot receive all messages in a channel for privacy reasons.
249251
</Callout>
250252

251-
#### Agent SMS Source
253+
{/* #### Slack Source
254+
255+
For Slack sources, you can configure your agent to receive messages from a Slack workspace. Users @mention your agent in Slack to trigger responses. By default, replies are sent as threads (configurable).
256+
257+
<ThemeImage baseName="agent-io-slack-source" alt="Agent New Slack Source" />
258+
259+
To set up Slack Integration, you'll need to create a Slack App and configure OAuth:
260+
261+
1. **Create a Slack App** in your Slack workspace
262+
2. **Configure OAuth** with the following credentials:
263+
- App Name
264+
- Client ID
265+
- Client Secret
266+
- Signing Secret
267+
3. **Set OAuth Redirect URL** to: `https://api.agentuity.com/io/slack/source/oauth/callback`
268+
4. **Configure Event Subscriptions** with the Request URL provided by Agentuity
269+
5. **Subscribe to Bot Events**: `message.channels`, `message.im`, `app_mention`
270+
271+
<Callout type="info">
272+
You must configure OAuth and Event Subscriptions in your Slack App settings for the integration to work properly.
273+
</Callout> */}
274+
275+
#### Telegram Source
276+
277+
For Telegram sources, you can configure your agent to receive messages from Telegram users. Users can message your agent directly on Telegram.
278+
279+
<ThemeImage baseName="agent-io-telegram-source" alt="Agent New Telegram Source" />
280+
281+
To configure a Telegram source:
282+
283+
1. **Get a Bot Token** from @BotFather on Telegram
284+
2. **Enter the Bot Token** in the configuration
285+
286+
#### SMS Source
252287

253288
For SMS sources, you can connect your Twilio account to allow your agent to be triggered by incoming text messages. This requires providing your Twilio API credentials.
254289

@@ -261,7 +296,7 @@ To configure an SMS source, you will need the following credentials from your Tw
261296

262297
Once validated, you can select one or more of your Twilio numbers to forward incoming messages to your agent.
263298

264-
#### Agent Schedule Source
299+
#### Schedule Source
265300

266301
For running an agent on a schedule, you can configure your agent to use a cron source. When the agent is scheduled to run, the agent will send the data to the agent's inputs asynchronously without waiting for the agent to finish processing the data.
267302

@@ -277,6 +312,50 @@ A cron source can only be triggered internally by the Agentuity Platform and not
277312

278313
<ThemeImage baseName="agent-io-cron-trigger" alt="Trigger Cron Manually" />
279314

315+
#### Discord Destination
316+
317+
For Discord destinations, you can configure your agent to send messages to a Discord channel when triggered by external sources (webhooks, APIs, other agents, etc.). This is different from Discord sources which handle @mentions within Discord.
318+
319+
<ThemeImage baseName="agent-io-discord-destination" alt="Discord Destination Configuration" />
320+
321+
To configure a Discord destination:
322+
323+
1. **Select a Discord Server** from your connected servers
324+
2. **Choose a Channel** where messages will be sent
325+
3. **Invite the Bot** if not already in the server using the provided invite link
326+
327+
<Callout type="info">
328+
The bot must be invited to your Discord server before you can configure it as a destination. Use the invite link provided if you see "Bot not found in server" error.
329+
</Callout>
330+
331+
#### Email Destination
332+
333+
For Email destinations, you can configure your agent to send emails when triggered.
334+
335+
By default, emails are sent from `[email protected]`:
336+
337+
<ThemeImage baseName="agent-io-email-destination" alt="Email Destination - Default Configuration" />
338+
339+
When you also configure Email as a source (inbound), your agent gets a dedicated email address that can be used as well:
340+
341+
<ThemeImage baseName="agent-io-email-dest-inbound" alt="Email Destination with Inbound Email Configured" />
342+
343+
All in all, there are three sender address options:
344+
345+
- **Default**: Sends from `[email protected]`
346+
- **With Inbound Email**: Sends from your agent's address `[agent-id]@agentuity.run`
347+
- **Custom Domain** (Enterprise): Use your organization's domain for outbound emails
348+
349+
Configuration requires:
350+
- **Recipient Addresses**: List of email addresses to send to
351+
- **Subject Line**: Email subject for outbound messages
352+
353+
> Note: Email subject and recipients can only be configured through the UI at this time.
354+
355+
<Callout type="info">
356+
**Enterprise Feature:** Organizations can configure custom email domains for outbound emails. This requires DNS configuration and is currently only available through Agentuity support. Contact us to set up custom email domains for your organization.
357+
</Callout>
358+
280359
### Agent Deployments
281360

282361
Agentuity supports continuous deployment using a native GitHub App integration and a GitHub Actions workflow.

content/Guides/.agent-io.mdx

Lines changed: 0 additions & 4 deletions
This file was deleted.

content/Guides/agent-io.mdx

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
---
2+
title: Agent Input and Output
3+
description: How to handle agent input and output
4+
---
5+
6+
## Overview
7+
8+
Agent IO enables your agents to communicate with external platforms through two types of connections: Sources (inbound) and Destinations (outbound). Understanding the distinction between these connection types is essential for properly configuring your AI agents on the Agentuity platform.
9+
10+
## Sources vs Destinations
11+
12+
### Sources (Inbound Connections)
13+
14+
Sources enable bidirectional communication between a platform and your agent. When configured, the platform can trigger your agent and receive responses within the same conversation context.
15+
16+
**How Sources Work:**
17+
1. Platform triggers agent (e.g., @mention in Slack)
18+
2. Agent processes the request
19+
3. Agent responds directly within the same platform conversation
20+
21+
**Example:** When someone @mentions your agent in Discord, the agent can respond back in the same Discord channel.
22+
23+
### Destinations (Outbound Connections)
24+
25+
Destinations allow your agent to send messages to a platform when triggered by *external sources*. These are one-way connections for delivering agent output to specified channels.
26+
27+
**How Destinations Work:**
28+
1. External source triggers agent (webhook, API, schedule, etc.)
29+
2. Agent processes the request
30+
3. Agent sends output to configured destination platforms
31+
32+
**Example:** Your GitHub repository triggers your agent on each commit, and the agent sends a formatted summary to your team's Discord channel.
33+
34+
## Choosing Your Configuration
35+
36+
| Use Case | Configuration Needed |
37+
|---------------------|---------------------|
38+
| Chat bot that responds to @mentions | **Source only** |
39+
| Send notifications when something happens | **Destination only** |
40+
| Forward messages between platforms | **Source** for receiving, **Destination** for sending |
41+
| Full assistant with chat and notifications | **Both** Source and Destination |
42+
43+
### Sources Only
44+
Perfect for conversational bots that respond to user questions, @mentions, or direct messages.
45+
46+
**Example:** Your team wants a Slack bot that answers questions about your documentation. You only need a Slack Source - users @mention the bot, and it replies in the thread.
47+
48+
### Destinations Only
49+
Ideal for automated notifications, scheduled updates, or forwarding alerts from monitoring systems.
50+
51+
**Example:** You want GitHub commit notifications in Discord. Configure a webhook to trigger your agent, then add Discord as a Destination. No Discord Source needed since the bot doesn't respond to Discord messages.
52+
53+
### Both Sources and Destinations
54+
Required when your agent needs conversations AND notifications, connecting multiple platforms, or building a full-featured assistant.
55+
56+
**Example:** You're building a team assistant that answers questions in Slack (Source) but also posts daily standup reminders (Destination) and forwards important emails to the channel (Email Source → Slack Destination).
57+
58+
## Key Considerations
59+
60+
- **Sources** provide complete conversational capability - you don't need a destination to reply
61+
- **Destinations** work independently - perfect for one-way notifications
62+
- A single agent can have multiple sources and destinations configured
63+
64+
## Video Tutorials
65+
66+
{/* ### Configuring Slack Inbound
67+
<iframe
68+
width="100%"
69+
height="400"
70+
src="SLACK_INBOUND_VIDEO_URL_PLACEHOLDER"
71+
title="Setting up Slack Source Integration"
72+
frameBorder="0"
73+
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
74+
allowFullScreen
75+
></iframe> */}
76+
77+
### Discord Destination Setup
78+
<iframe
79+
width="100%"
80+
height="400"
81+
src="https://www.youtube.com/embed/1t22ExfvjSY"
82+
title="Introducing Discord destinations"
83+
frameBorder="0"
84+
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
85+
allowFullScreen
86+
></iframe>
87+
88+
### Email Destination Configuration
89+
<iframe
90+
width="100%"
91+
height="400"
92+
src="https://www.youtube.com/embed/X-HEUFH5C0Y"
93+
title="Introducing email destinations"
94+
frameBorder="0"
95+
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
96+
allowFullScreen
97+
></iframe>
98+
99+
## Next Steps
100+
101+
- Review the [Agents](/Cloud/agents) documentation for platform-specific configuration
102+
- Configure *sources* for platforms where users will interact with your agent
103+
- Set up *destinations* for platforms where your agent will send notifications

content/Guides/key-value.mdx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,4 +194,16 @@ Track your key-value storage usage through the Cloud Console:
194194

195195
<ThemeImage baseName="keyvalue-detail" alt="Key Value Storage Detail View" />
196196

197-
For more complex data relationships or query needs, consider combining storage types or using external databases through your agent.
197+
For more complex data relationships or query needs, consider combining storage types or using external databases through your agent.
198+
199+
## Storage Types Overview
200+
201+
<iframe
202+
width="100%"
203+
height="400"
204+
src="https://www.youtube.com/embed/rT9eCMRztpI"
205+
title="How to Give Your AI Agents Persistent Memory"
206+
frameBorder="0"
207+
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
208+
allowFullScreen
209+
></iframe>

content/Guides/object-storage.mdx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,4 +390,16 @@ Track your object storage usage through the Cloud Console:
390390
3. Monitor provider information and creation dates
391391
4. Use [agent telemetry](/Guides/agent-telemetry) to track storage operations
392392

393-
For structured data with complex queries, consider using object storage to store data exports while maintaining indexes in key-value or vector storage.
393+
For structured data with complex queries, consider using object storage to store data exports while maintaining indexes in key-value or vector storage.
394+
395+
## Storage Types Overview
396+
397+
<iframe
398+
width="100%"
399+
height="400"
400+
src="https://www.youtube.com/embed/rT9eCMRztpI"
401+
title="How to Give Your AI Agents Persistent Memory"
402+
frameBorder="0"
403+
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
404+
allowFullScreen
405+
></iframe>

content/Guides/vector-db.mdx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,3 +204,15 @@ Vector storage serves as long-term memory for agents, enabling them to:
204204
- Build and maintain agent-specific knowledge repositories
205205

206206
For more information on memory patterns, see the [Key-Value Storage guide](/Guides/key-value) for short-term memory or explore [Agent Communication](/Guides/agent-communication) for sharing knowledge between agents.
207+
208+
## Storage Types Overview
209+
210+
<iframe
211+
width="100%"
212+
height="400"
213+
src="https://www.youtube.com/embed/rT9eCMRztpI"
214+
title="How to Give Your AI Agents Persistent Memory"
215+
frameBorder="0"
216+
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
217+
allowFullScreen
218+
></iframe>

content/Guides/what-is-an-agent.mdx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,16 @@ Agents demands a new paradigm. Agents aren't focused on low latency, they are f
7272

7373
Learn more details about the differences in today's cloud computing paradigm and the [Agent-Native Cloud](/Guides/agent-native-cloud).
7474

75-
----
76-
77-
If you're a software engineer and you need to build agents, you need to think like an [Agent Builder](/Guides/agent-engineering).
75+
If you're a software engineer and you need to build agents, you need to think like an [Agent Builder](/Guides/agent-engineering).
76+
77+
## Video Overview
78+
79+
<iframe
80+
width="100%"
81+
height="400"
82+
src="https://www.youtube.com/embed/ZuvpaGqgLL4"
83+
title="AI agents, explained"
84+
frameBorder="0"
85+
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
86+
allowFullScreen
87+
></iframe>

content/Introduction/getting-started.mdx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,15 @@ If you're using an Agentic Code Editor such as [Cursor](https://www.cursor.com),
103103
/>
104104
</Cards>
105105

106+
## Video Tutorial
107+
108+
<iframe
109+
width="100%"
110+
height="400"
111+
src="https://www.youtube.com/embed/Z9QAdFO2LYE"
112+
title="Building your first AI agent"
113+
frameBorder="0"
114+
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
115+
allowFullScreen
116+
></iframe>
117+
1.2 MB
Loading
1.15 MB
Loading

0 commit comments

Comments
 (0)