mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-02-03 11:24:57 -05:00
- 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>
14 KiB
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.