agentops/docs/v2/integrations/langchain.mdx

123 lines
4.0 KiB
Plaintext

---
title: LangChain
description: "Track your LangChain agents with AgentOps"
---
[LangChain](https://python.langchain.com/docs/tutorials/) is a framework for developing applications powered by language models. AgentOps automatically tracks your LangChain agents by integrating its callback handler.
## Installation
Install AgentOps and the necessary LangChain dependencies:
<CodeGroup>
```bash pip
pip install agentops langchain langchain-community langchain-openai python-dotenv
```
```bash poetry
poetry add agentops langchain langchain-community langchain-openai python-dotenv
```
```bash uv
uv pip install agentops langchain langchain-community langchain-openai python-dotenv
```
</CodeGroup>
## Setting Up API Keys
You'll need API keys for AgentOps and OpenAI (as `ChatOpenAI` is commonly used with LangChain):
- **OPENAI_API_KEY**: From the [OpenAI Platform](https://platform.openai.com/api-keys)
- **AGENTOPS_API_KEY**: From your [AgentOps Dashboard](https://app.agentops.ai/)
Set these as environment variables or in a `.env` file.
<CodeGroup>
```bash Export to CLI
export OPENAI_API_KEY="your_openai_api_key_here"
export AGENTOPS_API_KEY="your_agentops_api_key_here"
```
```txt Set in .env file
OPENAI_API_KEY="your_openai_api_key_here"
AGENTOPS_API_KEY="your_agentops_api_key_here"
```
</CodeGroup>
Then load them in your Python code:
```python
from dotenv import load_dotenv
import os
load_dotenv()
AGENTOPS_API_KEY = os.getenv("AGENTOPS_API_KEY")
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
```
## Usage
Integrating AgentOps with LangChain involves using the `LangchainCallbackHandler`.
<Tip>
You don't need a separate `agentops.init()` call; the `LangchainCallbackHandler` initializes the AgentOps client automatically if an API key is provided to it or found in the environment.
</Tip>
Here's a basic example:
```python
from langchain_community.chat_models import ChatOpenAI
from langchain.agents import initialize_agent, AgentType, Tool # Corrected Tool import
from langchain.tools import DuckDuckGoSearchRun # Example tool
from agentops.integration.callbacks.langchain import LangchainCallbackHandler
# 1. Initialize LangchainCallbackHandler
# AGENTOPS_API_KEY can be passed here or loaded from environment
handler = LangchainCallbackHandler(api_key=AGENTOPS_API_KEY, tags=['LangChain Example'])
# 2. Define tools for the agent
search_tool = DuckDuckGoSearchRun()
tools = [
Tool( # Wrap DuckDuckGoSearchRun in a Tool object
name="DuckDuckGo Search",
func=search_tool.run,
description="Useful for when you need to answer questions about current events or the current state of the world."
)
]
# 3. Configure LLM with the AgentOps handler
# OPENAI_API_KEY can be passed here or loaded from environment
llm = ChatOpenAI(openai_api_key=OPENAI_API_KEY,
callbacks=[handler],
model='gpt-3.5-turbo',
temperature=0) # Added temperature for reproducibility
# 4. Initialize your agent, passing the handler to callbacks
agent = initialize_agent(
tools,
llm,
agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
callbacks=[handler],
handle_parsing_errors=True
)
# 5. Run your agent
try:
response = agent.run("Who is the current CEO of OpenAI and what is his most recent public statement?")
print(response)
except Exception as e:
print(f"An error occurred: {e}")
```
Visit the [AgentOps Dashboard](https://app.agentops.ai/) to see your session.
## Examples
<CardGroup cols={1}>
<Card title="LangChain Example" icon="notebook" href="/v2/examples/langchain">
A detailed notebook demonstrating the LangChain callback handler integration.
</Card>
</CardGroup>
<script type="module" src="/scripts/github_stars.js"></script>
<script type="module" src="/scripts/scroll-img-fadein-animation.js"></script>
<script type="module" src="/scripts/button_heartbeat_animation.js"></script>
<script type="css" src="/styles/styles.css"></script>
<script type="module" src="/scripts/adjust_api_dynamically.js"></script>