Files
AutoGPT/docs/content/platform/blocks/blocks.md
Abhimanyu Yadav b4a0100c22 feat(platform): Add Twitter integration (#8754)
- Resolves #8326  

Create a Twitter integration with some small frontend changes.

### Changes
1. Add Twitter OAuth 2.0 with PKCE support for authentication.
2. Add a way to multi-select from a list of enums by creating a
multi-select on the frontend.
3. Add blocks for Twitter integration.
4. `_types.py` for repetitive enums and input types.
5. `_builders.py` for creating parameters without repeating the same
logic.
6. `_serializer.py` to serialize the Tweepy enums into dictionaries so
they can travel easily from Pyro5.
7. `_mappers.py` to map the frontend values to the correct request
values.

> I have added a new multi-select feature because my list contains many
items, and selecting all of them makes the block cluttered. This new
block displays only the first two items and then show something like "2
more" . It works only for list of enums.


### Blocks

Block Name | What It Does | Error Reason | Manual Testing
-- | -- | -- | --
`TwitterBookmarkTweetBlock` | Bookmark a tweet on Twitter | No error | 
`TwitterGetBookmarkedTweetsBlock` | Get all your bookmarked tweets from
Twitter | No error | 
`TwitterRemoveBookmarkTweetBlock` | Remove a bookmark for a tweet on
Twitter | No error | 
`TwitterHideReplyBlock` | Hides a reply of one of your tweets | No error
| 
`TwitterUnhideReplyBlock` | Unhides a reply to a tweet | No error | 
`TwitterLikeTweetBlock` | Likes a tweet | No error | 
`TwitterGetLikingUsersBlock` | Gets information about users who liked
one of your tweets | No error | 
`TwitterGetLikedTweetsBlock` | Gets information about tweets liked by
you | No error | 
`TwitterUnlikeTweetBlock` | Unlikes a tweet that was previously liked |
No error | 
`TwitterPostTweetBlock` | Create a tweet on Twitter with the option to
include one additional element such as media, quote, or deep link. | No
error | 
`TwitterDeleteTweetBlock` | Deletes a tweet on Twitter using Twitter ID
| No error | 
`TwitterSearchRecentTweetsBlock` | Searches all public Tweets in Twitter
history | No error | 
`TwitterGetQuoteTweetsBlock` | Gets quote tweets for a specified tweet
ID | No error | 
`TwitterRetweetBlock` | Retweets a tweet on Twitter | No error | 
`TwitterRemoveRetweetBlock` | Removes a retweet on Twitter | No error |

`TwitterGetRetweetersBlock` | Gets information about who has retweeted a
tweet | No error | 
`TwitterGetUserMentionsBlock` | Returns Tweets where a single user is
mentioned, just put that user ID | No error | 
`TwitterGetHomeTimelineBlock` | Returns a collection of the most recent
Tweets and Retweets posted by you and users you follow | No error | 
`TwitterGetUserTweetsBlock` | Returns Tweets composed by a single user,
specified by the requested user ID | No error | 
`TwitterGetTweetBlock` | Returns information about a single Tweet
specified by the requested ID | No error | 
`TwitterGetTweetsBlock` | Returns information about multiple Tweets
specified by the requested IDs | No error | 
`TwitterUnblockUserBlock` | Unblock a specific user on Twitter | No
error | 
`TwitterGetBlockedUsersBlock` | Get a list of users who are blocked by
the authenticating user | No error | 
`TwitterBlockUserBlock` | Block a specific user on Twitter | No error |

`TwitterUnfollowUserBlock` | Allows a user to unfollow another user
specified by target user ID | No error | 
`TwitterFollowUserBlock` | Allows a user to follow another user
specified by target user ID | No error | 
`TwitterGetFollowersBlock` | Retrieves a list of followers for a
specified Twitter user ID | Need Enterprise level access | 
`TwitterGetFollowingBlock` | Retrieves a list of users that a specified
Twitter user ID is following | Need Enterprise level access | 
`TwitterUnmuteUserBlock` | Allows a user to unmute another user
specified by target user ID | No error | 
`TwitterGetMutedUsersBlock` | Returns a list of users who are muted by
the authenticating user | No error | 
`TwitterMuteUserBlock` | Allows a user to mute another user specified by
target user ID | No error | 
`TwitterGetUserBlock` | Gets information about a single Twitter user
specified by ID or username | No error | 
`TwitterGetUsersBlock` | Gets information about multiple Twitter users
specified by IDs or usernames | No error | 
`TwitterSearchSpacesBlock` | Returns live or scheduled Spaces matching
specified search terms [for a week only] | No error | 
`TwitterGetSpacesBlock` | Gets information about multiple Twitter Spaces
specified by Space IDs or creator user IDs | No error | 
`TwitterGetSpaceByIdBlock` | Gets information about a single Twitter
Space specified by Space ID | No error | 
`TwitterGetSpaceBuyersBlock` | Gets list of users who purchased a ticket
to the requested Space | I do not have a monetized account for this | 
`TwitterGetSpaceTweetsBlock` | Gets list of Tweets shared in the
requested Space | No error | 
`TwitterUnfollowListBlock` | Unfollows a Twitter list for the
authenticated user | No error | 
`TwitterFollowListBlock` | Follows a Twitter list for the authenticated
user | No error | 
`TwitterListGetFollowersBlock` | Gets followers of a specified Twitter
list | Enterprise level access | 
`TwitterGetFollowedListsBlock` | Gets lists followed by a specified
Twitter user | Enterprise level access | 
`TwitterGetListBlock` | Gets information about a Twitter List specified
by ID | No error | 
`TwitterGetOwnedListsBlock` | Gets all Lists owned by the specified user
| No error | 
`TwitterRemoveListMemberBlock` | Removes a member from a Twitter List
that the authenticated user owns | No error | 
`TwitterAddListMemberBlock` | Adds a member to a Twitter List that the
authenticated user owns | No error | 
`TwitterGetListMembersBlock` | Gets the members of a specified Twitter
List | No error | 
`TwitterGetListMembershipsBlock` | Gets all Lists that a specified user
is a member of | No error | 
`TwitterGetListTweetsBlock` | Gets tweets from a specified Twitter list
| No error | 
`TwitterDeleteListBlock` | Deletes a Twitter List owned by the
authenticated user | No error | 
`TwitterUpdateListBlock` | Updates a Twitter List owned by the
authenticated user | No error | 
`TwitterCreateListBlock` | Creates a Twitter List owned by the
authenticated user | No error | 
`TwitterUnpinListBlock` | Enables the authenticated user to unpin a
List. | No error | 
`TwitterPinListBlock` | Enables the authenticated user to pin a List. |
No error | 
`TwitterGetPinnedListsBlock` | Returns the Lists pinned by the
authenticated user. | No error | 
`TwitterGetDMEventsBlock` | Gets a list of Direct Message events for the
authenticated user | Need Enterprise level access | 
`TwitterSendDirectMessageBlock` | Sends a direct message to a Twitter
user | Need Enterprise level access | 
`TwitterCreateDMConversationBlock` | Creates a new group direct message
| Need Enterprise level access | 

### Need to add more stuff
1. A normal input to select date and time.
2. Some more enterprise-level blocks, especially webhook triggers.

Supported triggers 


Event Name | Description
-- | --
Posts (by user) | User creates a new post.
Post deletes (by user) | User deletes an existing post.
@mentions (of user) | User is mentioned in a post.
Replies (to or from user) | User replies to a post or receives a reply
from another user.
Retweets (by user or of user) | User retweets a post or someone retweets
the user's post.
Quote Tweets (by user or of user) | User quote tweets a post or someone
quote tweets the user's post.
Retweets of Quoted Tweets (by user or of user) | Retweets of quote
tweets by the user or of the user.
Likes (by user or of user) | User likes a post or someone likes the
user's post.
Follows (by user or of user) | User follows another user or another user
follows the user.
Unfollows (by user) | User unfollows another user.
Blocks (by user) | User blocks another user.
Unblocks (by user) | User unblocks a previously blocked user.
Mutes (by user) | User mutes another user.
Unmutes (by user) | User unmutes a previously muted user.
Direct Messages sent (by user) | User sends direct messages to other
users.
Direct Messages received (by user) | User receives direct messages from
other users.
Typing indicators (to user) | Indicators showing when someone is typing
a message to the user.
Read receipts (to user) | Indicators showing when the user has read a
message.
Subscription revokes (by user) | User revokes a subscription to a
service or content.

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
2025-01-08 19:47:00 +00:00

14 KiB

AutoGPT Blocks Overview

AutoGPT uses a modular approach with various "blocks" to handle different tasks. These blocks are the building blocks of AutoGPT workflows, allowing users to create complex automations by combining simple, specialized components.

Below is a comprehensive list of all available blocks, categorized by their primary function. Click on any block name to view its detailed documentation.

Basic Operations

Block Name Description
Store Value Stores and forwards a value
Print to Console Outputs text to the console for debugging
Find in Dictionary Looks up a value in a dictionary or list
Agent Input Accepts user input in a workflow
Agent Output Records and formats workflow results
Add to Dictionary Adds a new key-value pair to a dictionary
Add to List Adds a new entry to a list
Note Displays a sticky note in the workflow

Data Processing

Block Name Description
Read CSV Processes and extracts data from CSV files
Data Sampling Selects a subset of data using various sampling methods

Text Processing

Block Name Description
Match Text Pattern Checks if text matches a specified pattern
Extract Text Information Extracts specific information from text using patterns
Fill Text Template Populates a template with provided values
Combine Texts Merges multiple text inputs into one
Text Decoder Converts encoded text into readable format

AI and Language Models

Block Name Description
AI Structured Response Generator Generates structured responses using LLMs
AI Text Generator Produces text responses using LLMs
AI Text Summarizer Summarizes long texts using LLMs
AI Conversation Facilitates multi-turn conversations with LLMs
AI List Generator Creates lists based on prompts using LLMs

Web and API Interactions

Block Name Description
Send Web Request Makes HTTP requests to specified web addresses
Read RSS Feed Retrieves and processes entries from RSS feeds
Get Weather Information Fetches current weather data for a location
Google Maps Search Searches for local businesses using Google Maps API

Social Media and Content

Block Name Description
Get Reddit Posts Retrieves posts from specified subreddits
Post Reddit Comment Posts comments on Reddit
Publish to Medium Publishes content directly to Medium
Read Discord Messages Retrieves messages from Discord channels
Send Discord Message Sends messages to Discord channels

Search and Information Retrieval

Block Name Description
Get Wikipedia Summary Fetches summaries of topics from Wikipedia
Search The Web Performs web searches and returns results
Extract Website Content Retrieves and extracts content from websites

Time and Date

Block Name Description
Get Current Time Provides the current time
Get Current Date Provides the current date
Get Current Date and Time Provides both current date and time
Countdown Timer Acts as a countdown timer

Math and Calculations

Block Name Description
Calculator Performs basic mathematical operations
Count Items Counts items in a collection

Media Generation

Block Name Description
Ideogram Model Generates images based on text prompts
Create Talking Avatar Video Creates videos with talking avatars
Unreal Text to Speech Converts text to speech using Unreal Speech API
AI Shortform Video Creator Generates short-form videos using AI
Replicate Flux Advanced Model Creates images using Replicate's Flux models

Miscellaneous

Block Name Description
Transcribe YouTube Video Transcribes audio from YouTube videos
Send Email Sends emails using SMTP
Condition Block Evaluates conditions for workflow branching
Step Through Items Iterates through lists or dictionaries

Google Services

Block Name Description
Gmail Read Retrieves and reads emails from a Gmail account
Gmail Send Sends emails using a Gmail account
Gmail List Labels Retrieves all labels from a Gmail account
Gmail Add Label Adds a label to a specific email in a Gmail account
Gmail Remove Label Removes a label from a specific email in a Gmail account
Google Sheets Read Reads data from a Google Sheets spreadsheet
Google Sheets Write Writes data to a Google Sheets spreadsheet
Google Maps Search Searches for local businesses using the Google Maps API

GitHub Integration

Block Name Description
GitHub Comment Posts comments on GitHub issues or pull requests
GitHub Make Issue Creates new issues on GitHub repositories
GitHub Read Issue Retrieves information about a specific GitHub issue
GitHub List Issues Retrieves a list of issues from a GitHub repository
GitHub Add Label Adds a label to a GitHub issue or pull request
GitHub Remove Label Removes a label from a GitHub issue or pull request
GitHub Assign Issue Assigns a user to a GitHub issue
GitHub List Tags Retrieves and lists all tags for a specified GitHub repository
GitHub List Branches Retrieves and lists all branches for a specified GitHub repository
GitHub List Discussions Retrieves and lists recent discussions for a specified GitHub repository
GitHub Make Branch Creates a new branch in a GitHub repository
GitHub Delete Branch Deletes a specified branch from a GitHub repository
GitHub List Pull Requests Retrieves a list of pull requests from a specified GitHub repository
GitHub Make Pull Request Creates a new pull request in a specified GitHub repository
GitHub Read Pull Request Retrieves detailed information about a specific GitHub pull request
GitHub Assign PR Reviewer Assigns a reviewer to a specific GitHub pull request
GitHub Unassign PR Reviewer Removes an assigned reviewer from a specific GitHub pull request
GitHub List PR Reviewers Retrieves a list of all assigned reviewers for a specific GitHub pull request

Twitter Integration

Block Name Description
Twitter Post Tweet Creates a tweet on Twitter with text content and optional attachments including media, polls, quotes, or deep links
Twitter Delete Tweet Deletes a specified tweet using its tweet ID
Twitter Search Recent Searches for tweets matching specified criteria with options for filtering and pagination
Twitter Get Quote Tweets Gets tweets that quote a specified tweet ID with options for pagination and filtering
Twitter Retweet Creates a retweet of a specified tweet using its tweet ID
Twitter Remove Retweet Removes an existing retweet of a specified tweet
Twitter Get Retweeters Gets list of users who have retweeted a specified tweet with pagination and filtering options
Twitter Get User Mentions Gets tweets where a specific user is mentioned using their user ID
Twitter Get Home Timeline Gets recent tweets and retweets from authenticated user and followed accounts
Twitter Get User Gets detailed profile information for a single Twitter user
Twitter Get Users Gets profile information for multiple Twitter users (up to 100)
Twitter Search Spaces Searches for Twitter Spaces matching title keywords with state filtering
Twitter Get Spaces Gets information about multiple Twitter Spaces by Space IDs or creator IDs
Twitter Get Space By Id Gets detailed information about a single Twitter Space
Twitter Get Space Tweets Gets tweets that were shared during a Twitter Space session
Twitter Follow List Follows a Twitter List using its List ID
Twitter Unfollow List Unfollows a previously followed Twitter List
Twitter Get List Gets detailed information about a specific Twitter List
Twitter Get Owned Lists Gets all Twitter Lists owned by a specified user
Twitter Get List Members Gets information about members of a specified Twitter List
Twitter Add List Member Adds a specified user as a member to a Twitter List
Twitter Remove List Member Removes a specified user from a Twitter List
Twitter Get List Tweets Gets tweets posted within a specified Twitter List
Twitter Create List Creates a new Twitter List with specified name and settings
Twitter Update List Updates name and/or description of an existing Twitter List
Twitter Delete List Deletes a specified Twitter List
Twitter Pin List Pins a Twitter List to appear at top of Lists
Twitter Unpin List Removes a Twitter List from pinned Lists
Twitter Get Pinned Lists Gets all Twitter Lists that are currently pinned
Twitter List Get Followers Working... Gets all followers of a specified Twitter List
Twitter Get Followed Lists Working... Gets all Lists that a user follows
Twitter Get DM Events Working... Retrieves direct message events for a user
Twitter Send Direct Message Working... Sends a direct message to a specified user
Twitter Create DM Conversation Working... Creates a new direct message conversation

This comprehensive list covers all the blocks available in AutoGPT. Each block is designed to perform a specific task, and they can be combined to create powerful, automated workflows. For more detailed information on each block, click on its name to view the full documentation.