diff --git a/content/Cloud/agents.mdx b/content/Cloud/agents.mdx index 95c33d7d..1951c397 100644 --- a/content/Cloud/agents.mdx +++ b/content/Cloud/agents.mdx @@ -29,6 +29,7 @@ graph TD A5[Agent] A6[Slack] A7[Discord] + A8[Telegram] end subgraph Destinations @@ -47,6 +48,7 @@ graph TD A5 --> Agent A6 --> Agent A7 --> Agent + A8 --> Agent Agent --> B1 Agent --> B2 @@ -84,7 +86,7 @@ async def run(request: AgentRequest, response: AgentResponse, context: AgentCont return response.text("ok") `} /> -#### Agent Webhook Source +#### Webhook Source 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. @@ -114,7 +116,7 @@ To trigger a webhook using curl with a required Bearer token authentication, you 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. -#### Agent API Source +#### API Source 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. @@ -144,7 +146,7 @@ To invoke an API using curl with a required Bearer token authentication, you can Make sure to use the correct agent ID in the webhook URL. -#### Agent Email Source +#### Email Source 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. @@ -156,7 +158,7 @@ For Email sources, you can configure your agent at a unique agent email address. 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. -#### Agent Discord Source +#### Discord Source 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. @@ -248,7 +250,40 @@ async def run(request: AgentRequest, response: AgentResponse, context: AgentCont 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. -#### Agent SMS Source +{/* #### Slack Source + +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). + + + +To set up Slack Integration, you'll need to create a Slack App and configure OAuth: + +1. **Create a Slack App** in your Slack workspace +2. **Configure OAuth** with the following credentials: + - App Name + - Client ID + - Client Secret + - Signing Secret +3. **Set OAuth Redirect URL** to: `https://api.agentuity.com/io/slack/source/oauth/callback` +4. **Configure Event Subscriptions** with the Request URL provided by Agentuity +5. **Subscribe to Bot Events**: `message.channels`, `message.im`, `app_mention` + + + You must configure OAuth and Event Subscriptions in your Slack App settings for the integration to work properly. + */} + +#### Telegram Source + +For Telegram sources, you can configure your agent to receive messages from Telegram users. Users can message your agent directly on Telegram. + + + +To configure a Telegram source: + +1. **Get a Bot Token** from @BotFather on Telegram +2. **Enter the Bot Token** in the configuration + +#### SMS Source 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. @@ -261,7 +296,7 @@ To configure an SMS source, you will need the following credentials from your Tw Once validated, you can select one or more of your Twilio numbers to forward incoming messages to your agent. -#### Agent Schedule Source +#### Schedule Source 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. @@ -277,6 +312,50 @@ A cron source can only be triggered internally by the Agentuity Platform and not +#### Discord Destination + +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. + + + +To configure a Discord destination: + +1. **Select a Discord Server** from your connected servers +2. **Choose a Channel** where messages will be sent +3. **Invite the Bot** if not already in the server using the provided invite link + + + 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. + + +#### Email Destination + +For Email destinations, you can configure your agent to send emails when triggered. + +By default, emails are sent from `no-reply@agentuity.run`: + + + +When you also configure Email as a source (inbound), your agent gets a dedicated email address that can be used as well: + + + +All in all, there are three sender address options: + +- **Default**: Sends from `no-reply@agentuity.run` +- **With Inbound Email**: Sends from your agent's address `[agent-id]@agentuity.run` +- **Custom Domain** (Enterprise): Use your organization's domain for outbound emails + +Configuration requires: +- **Recipient Addresses**: List of email addresses to send to +- **Subject Line**: Email subject for outbound messages + +> Note: Email subject and recipients can only be configured through the UI at this time. + + + **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. + + ### Agent Deployments Agentuity supports continuous deployment using a native GitHub App integration and a GitHub Actions workflow. diff --git a/content/Guides/.agent-io.mdx b/content/Guides/.agent-io.mdx deleted file mode 100644 index cedda84d..00000000 --- a/content/Guides/.agent-io.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Agent Input and Output -description: How to handle agent input and output ---- diff --git a/content/Guides/agent-io.mdx b/content/Guides/agent-io.mdx new file mode 100644 index 00000000..96f6f164 --- /dev/null +++ b/content/Guides/agent-io.mdx @@ -0,0 +1,103 @@ +--- +title: Agent Input and Output +description: How to handle agent input and output +--- + +## Overview + +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. + +## Sources vs Destinations + +### Sources (Inbound Connections) + +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. + +**How Sources Work:** +1. Platform triggers agent (e.g., @mention in Slack) +2. Agent processes the request +3. Agent responds directly within the same platform conversation + +**Example:** When someone @mentions your agent in Discord, the agent can respond back in the same Discord channel. + +### Destinations (Outbound Connections) + +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. + +**How Destinations Work:** +1. External source triggers agent (webhook, API, schedule, etc.) +2. Agent processes the request +3. Agent sends output to configured destination platforms + +**Example:** Your GitHub repository triggers your agent on each commit, and the agent sends a formatted summary to your team's Discord channel. + +## Choosing Your Configuration + +| Use Case | Configuration Needed | +|---------------------|---------------------| +| Chat bot that responds to @mentions | **Source only** | +| Send notifications when something happens | **Destination only** | +| Forward messages between platforms | **Source** for receiving, **Destination** for sending | +| Full assistant with chat and notifications | **Both** Source and Destination | + +### Sources Only +Perfect for conversational bots that respond to user questions, @mentions, or direct messages. + +**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. + +### Destinations Only +Ideal for automated notifications, scheduled updates, or forwarding alerts from monitoring systems. + +**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. + +### Both Sources and Destinations +Required when your agent needs conversations AND notifications, connecting multiple platforms, or building a full-featured assistant. + +**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). + +## Key Considerations + +- **Sources** provide complete conversational capability - you don't need a destination to reply +- **Destinations** work independently - perfect for one-way notifications +- A single agent can have multiple sources and destinations configured + +## Video Tutorials + +{/* ### Configuring Slack Inbound + */} + +### Discord Destination Setup + + +### Email Destination Configuration + + +## Next Steps + +- Review the [Agents](/Cloud/agents) documentation for platform-specific configuration +- Configure *sources* for platforms where users will interact with your agent +- Set up *destinations* for platforms where your agent will send notifications \ No newline at end of file diff --git a/content/Guides/key-value.mdx b/content/Guides/key-value.mdx index 552736e5..2e293507 100644 --- a/content/Guides/key-value.mdx +++ b/content/Guides/key-value.mdx @@ -194,4 +194,16 @@ Track your key-value storage usage through the Cloud Console: -For more complex data relationships or query needs, consider combining storage types or using external databases through your agent. \ No newline at end of file +For more complex data relationships or query needs, consider combining storage types or using external databases through your agent. + +## Storage Types Overview + + \ No newline at end of file diff --git a/content/Guides/object-storage.mdx b/content/Guides/object-storage.mdx index f48e9b10..94ffbe6f 100644 --- a/content/Guides/object-storage.mdx +++ b/content/Guides/object-storage.mdx @@ -390,4 +390,16 @@ Track your object storage usage through the Cloud Console: 3. Monitor provider information and creation dates 4. Use [agent telemetry](/Guides/agent-telemetry) to track storage operations -For structured data with complex queries, consider using object storage to store data exports while maintaining indexes in key-value or vector storage. \ No newline at end of file +For structured data with complex queries, consider using object storage to store data exports while maintaining indexes in key-value or vector storage. + +## Storage Types Overview + + \ No newline at end of file diff --git a/content/Guides/vector-db.mdx b/content/Guides/vector-db.mdx index a75174f3..103e3e76 100644 --- a/content/Guides/vector-db.mdx +++ b/content/Guides/vector-db.mdx @@ -204,3 +204,15 @@ Vector storage serves as long-term memory for agents, enabling them to: - Build and maintain agent-specific knowledge repositories 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. + +## Storage Types Overview + + diff --git a/content/Guides/what-is-an-agent.mdx b/content/Guides/what-is-an-agent.mdx index 9aa2df8d..61f2532e 100644 --- a/content/Guides/what-is-an-agent.mdx +++ b/content/Guides/what-is-an-agent.mdx @@ -72,6 +72,16 @@ Agents demands a new paradigm. Agents aren't focused on low latency, they are f Learn more details about the differences in today's cloud computing paradigm and the [Agent-Native Cloud](/Guides/agent-native-cloud). ----- - -If you're a software engineer and you need to build agents, you need to think like an [Agent Builder](/Guides/agent-engineering). \ No newline at end of file +If you're a software engineer and you need to build agents, you need to think like an [Agent Builder](/Guides/agent-engineering). + +## Video Overview + + \ No newline at end of file diff --git a/content/Introduction/getting-started.mdx b/content/Introduction/getting-started.mdx index ebf4d997..ed760006 100644 --- a/content/Introduction/getting-started.mdx +++ b/content/Introduction/getting-started.mdx @@ -103,3 +103,15 @@ If you're using an Agentic Code Editor such as [Cursor](https://www.cursor.com), /> +## Video Tutorial + + + diff --git a/public/images/agent-io-discord-destination-dark.png b/public/images/agent-io-discord-destination-dark.png new file mode 100644 index 00000000..8013c23b Binary files /dev/null and b/public/images/agent-io-discord-destination-dark.png differ diff --git a/public/images/agent-io-discord-destination-light.png b/public/images/agent-io-discord-destination-light.png new file mode 100644 index 00000000..f1073fc2 Binary files /dev/null and b/public/images/agent-io-discord-destination-light.png differ diff --git a/public/images/agent-io-email-dest-inbound-dark.png b/public/images/agent-io-email-dest-inbound-dark.png new file mode 100644 index 00000000..84c2f026 Binary files /dev/null and b/public/images/agent-io-email-dest-inbound-dark.png differ diff --git a/public/images/agent-io-email-dest-inbound-light.png b/public/images/agent-io-email-dest-inbound-light.png new file mode 100644 index 00000000..2cf47fc8 Binary files /dev/null and b/public/images/agent-io-email-dest-inbound-light.png differ diff --git a/public/images/agent-io-email-destination-dark.png b/public/images/agent-io-email-destination-dark.png new file mode 100644 index 00000000..75f434dd Binary files /dev/null and b/public/images/agent-io-email-destination-dark.png differ diff --git a/public/images/agent-io-email-destination-light.png b/public/images/agent-io-email-destination-light.png new file mode 100644 index 00000000..b7d9ca0c Binary files /dev/null and b/public/images/agent-io-email-destination-light.png differ diff --git a/public/images/agent-io-slack-source-dark.png b/public/images/agent-io-slack-source-dark.png new file mode 100644 index 00000000..851e40dc Binary files /dev/null and b/public/images/agent-io-slack-source-dark.png differ diff --git a/public/images/agent-io-slack-source-light.png b/public/images/agent-io-slack-source-light.png new file mode 100644 index 00000000..56fafcf6 Binary files /dev/null and b/public/images/agent-io-slack-source-light.png differ diff --git a/public/images/agent-io-telegram-source-dark.png b/public/images/agent-io-telegram-source-dark.png new file mode 100644 index 00000000..3559a22d Binary files /dev/null and b/public/images/agent-io-telegram-source-dark.png differ diff --git a/public/images/agent-io-telegram-source-light.png b/public/images/agent-io-telegram-source-light.png new file mode 100644 index 00000000..73295be6 Binary files /dev/null and b/public/images/agent-io-telegram-source-light.png differ