Skip to main content

Twitter Langchain Toolkit

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

Twitter (X) Langchain Toolkit

Twitter integration with Langchain to enable agentic workflows using the core primitives defined in cdp-agentkit-core.

This toolkit contains tools that enable an LLM agent to interact with Twitter. The toolkit provides a wrapper around the Twitter (X) API, allowing agents to perform social operations like posting text.

Setup

Prerequisites

OpenAI

Twitter (X)

Python

  • Python 3.10 or higher

Installation

pip install twitter-langchain

Environment Setup

Set the following environment variables:

export OPENAI_API_KEY=<your-openai-api-key>
export TWITTER_API_KEY=<your-api-key>
export TWITTER_API_SECRET=<your-api-secret>
export TWITTER_ACCESS_TOKEN=<your-access-token>
export TWITTER_ACCESS_TOKEN_SECRET=<your-access-token-secret>
export TWITTER_BEARER_TOKEN=<your-bearer-token>

Usage

Basic Setup

from twitter_langchain import (
    TwitterApiWrapper,
    TwitterToolkit
)

# Initialize TwitterApiwrapper
twitter_api_wrapper = TwitterApiWrapper()

# Create TwitterToolkit from the api wrapper
twitter_toolkit = TwitterToolkit.from_twitter_api_wrapper(twitter_api_wrapper)

View available tools:

tools = twitter_toolkit.get_tools()
for tool in tools:
    print(tool.name)

Available Tools

The toolkit provides the following tools:

  1. account_details - Get the authenticated account details
  2. account_mentions - Get mentions for the account
  3. post_tweet - Post a tweet to the account
  4. post_tweet_reply - Post a reply to a tweet on Twitter

Using with an Agent

import uuid

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
from langgraph.prebuilt import create_react_agent

llm = ChatOpenAI(model="gpt-4o-mini")

# Create agent
agent_executor = create_react_agent(llm, tools)

# Example - post tweet
events = agent_executor.stream(
    {
        "messages": [
            HumanMessage(content=f"Please post 'hello, world! {uuid.uuid4().hex}' to twitter"),
        ],
    },
    stream_mode="values",
)

for event in events:
    event["messages"][-1].pretty_print()

Expected output:

================================ Human Message =================================
Please post 'hello, world! c4b8e3744c2e4345be9e0622b4c0a8aa' to twitter
================================== Ai Message ==================================
Tool Calls:
    post_tweet (call_xVx4BMCSlCmCcbEQG1yyebbq)
    Call ID: call_xVx4BMCSlCmCcbEQG1yyebbq
    Args:
        tweet: hello, world! c4b8e3744c2e4345be9e0622b4c0a8aa
================================= Tool Message =================================
Name: post_tweet
Successfully posted!
================================== Ai Message ==================================
The message "hello, world! c4b8e3744c2e4345be9e0622b4c0a8aa" has been successfully posted to Twitter!

Examples

Check out twitter-langchain/examples for inspiration and help getting started!

  • Chatbot Python: Simple example of a Python Chatbot that can interact on Twitter (X), using OpenAI.

Contributing

See CONTRIBUTING.md for detailed setup instructions and contribution guidelines.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

twitter_langchain-0.0.9.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

twitter_langchain-0.0.9-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file twitter_langchain-0.0.9.tar.gz.

File metadata

  • Download URL: twitter_langchain-0.0.9.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for twitter_langchain-0.0.9.tar.gz
Algorithm Hash digest
SHA256 115d1119ae6019cf7f1eca9fa0e509768fea6a5095305c3b93214353ebf6fd76
MD5 5e5be8d9c6c5bd6d9ec2863ff7d74cd9
BLAKE2b-256 5327911f2c257a93d92752bcfc2af7dca947711043cccd26bdcf1e71bbf09938

See more details on using hashes here.

File details

Details for the file twitter_langchain-0.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for twitter_langchain-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 38bca397b877e41e4e472662c2e051798b4888e21f96207f5ad5101dc450cfd7
MD5 f8f228f5451a735d59ba461bc534b552
BLAKE2b-256 e048b88052227eb629693bfab99074d05a66474721a33ceb04bd65ab328511b9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page