Skip to content

Commit c626a5e

Browse files
committed
Update LangChain instrumentation and samples for 1.x
1 parent abd719f commit c626a5e

File tree

12 files changed

+209
-72
lines changed

12 files changed

+209
-72
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,4 @@ target
6161

6262
# Benchmark result files
6363
*-benchmark.json
64+
instrumentation-genai/opentelemetry-instrumentation-langchain/examples/multi_agent_travel_planner/.env

instrumentation-genai/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
| Instrumentation | Supported Packages | Metrics support | Semconv status |
33
| --------------- | ------------------ | --------------- | -------------- |
44
| [opentelemetry-instrumentation-google-genai](./opentelemetry-instrumentation-google-genai) | google-genai >= 1.0.0 | No | development
5-
| [opentelemetry-instrumentation-langchain](./opentelemetry-instrumentation-langchain) | langchain >= 0.3.21 | No | development
5+
| [opentelemetry-instrumentation-langchain](./opentelemetry-instrumentation-langchain) | langchain >= 1.0.0 | No | development
66
| [opentelemetry-instrumentation-openai-agents-v2](./opentelemetry-instrumentation-openai-agents-v2) | openai-agents >= 0.3.3 | No | development
77
| [opentelemetry-instrumentation-openai-v2](./opentelemetry-instrumentation-openai-v2) | openai >= 1.26.0 | Yes | development
88
| [opentelemetry-instrumentation-vertexai](./opentelemetry-instrumentation-vertexai) | google-cloud-aiplatform >= 1.64 | No | development
9-
| [opentelemetry-instrumentation-weaviate](./opentelemetry-instrumentation-weaviate) | weaviate-client >= 3.0.0,<5.0.0 | No | development
9+
| [opentelemetry-instrumentation-weaviate](./opentelemetry-instrumentation-weaviate) | weaviate-client >= 3.0.0,<5.0.0 | No | development
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
langchain==0.3.21
2-
langchain_openai
1+
langchain==1.0.1
2+
langchain-openai==1.0.0
33
opentelemetry-sdk>=1.31.0
44
opentelemetry-exporter-otlp-proto-grpc>=1.31.0
55

66
# Uncomment after lanchain instrumetation is released
7-
# opentelemetry-instrumentation-langchain~=2.0b0.dev
7+
# opentelemetry-instrumentation-langchain~=2.0b0.dev
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Copy this file to `.env` and update values before running the sample.
2+
3+
# Required OpenAI API key
4+
OPENAI_API_KEY=sk-YOUR_API_KEY
5+
6+
# Optional: override default model (defaults to gpt-4o-mini)
7+
# OPENAI_MODEL=gpt-4o-mini
8+
9+
# OTLP exporter configuration (update for your collector)
10+
# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
11+
# OTEL_EXPORTER_OTLP_PROTOCOL=grpc
12+
13+
# Traces will use this service.name
14+
OTEL_SERVICE_NAME=opentelemetry-python-langchain-multi-agent

instrumentation-genai/opentelemetry-instrumentation-langchain/examples/multi_agent_travel_planner/main.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,17 @@
4040
from langchain_openai import ChatOpenAI
4141
from langgraph.graph import END, START, StateGraph
4242
from langgraph.graph.message import AnyMessage, add_messages
43-
from langgraph.prebuilt import create_react_agent
43+
44+
try: # LangChain >= 1.0.0
45+
from langchain.agents import (
46+
create_agent as _create_react_agent, # type: ignore[attr-defined]
47+
)
48+
except (
49+
ImportError
50+
): # pragma: no cover - compatibility with older LangGraph releases
51+
from langgraph.prebuilt import (
52+
create_react_agent as _create_react_agent, # type: ignore[assignment]
53+
)
4454

4555
from opentelemetry import trace
4656
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import (
@@ -262,7 +272,7 @@ def flight_specialist_node(state: PlannerState) -> PlannerState:
262272
llm = _create_llm(
263273
"flight_specialist", temperature=0.4, session_id=state["session_id"]
264274
)
265-
agent = create_react_agent(llm, tools=[mock_search_flights])
275+
agent = _create_react_agent(llm, tools=[mock_search_flights])
266276
task = (
267277
f"Find an appealing flight from {state['origin']} to {state['destination']} "
268278
f"departing {state['departure']} for {state['travellers']} travellers."
@@ -287,7 +297,7 @@ def hotel_specialist_node(state: PlannerState) -> PlannerState:
287297
llm = _create_llm(
288298
"hotel_specialist", temperature=0.5, session_id=state["session_id"]
289299
)
290-
agent = create_react_agent(llm, tools=[mock_search_hotels])
300+
agent = _create_react_agent(llm, tools=[mock_search_hotels])
291301
task = (
292302
f"Recommend a boutique hotel in {state['destination']} between {state['departure']} "
293303
f"and {state['return_date']} for {state['travellers']} travellers."
@@ -312,7 +322,7 @@ def activity_specialist_node(state: PlannerState) -> PlannerState:
312322
llm = _create_llm(
313323
"activity_specialist", temperature=0.6, session_id=state["session_id"]
314324
)
315-
agent = create_react_agent(llm, tools=[mock_search_activities])
325+
agent = _create_react_agent(llm, tools=[mock_search_activities])
316326
task = f"Curate signature activities for travellers spending a week in {state['destination']}."
317327
result = agent.invoke({"messages": [HumanMessage(content=task)]})
318328
final_message = result["messages"][-1]
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
langchain>=0.3.21
2-
langchain-openai>=0.2.0
3-
langgraph>=0.2.39
1+
langchain>=1.0.0
2+
langchain-openai>=1.0.0
3+
langgraph>=1.0.0
44
python-dotenv>=1.0.0

instrumentation-genai/opentelemetry-instrumentation-langchain/examples/zero-code/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
langchain==0.3.21
2-
langchain_openai
1+
langchain==1.0.1
2+
langchain-openai==1.0.0
33
opentelemetry-sdk>=1.31.0
44
opentelemetry-exporter-otlp-proto-grpc>=1.31.0
55
opentelemetry-distro~=0.51b0

instrumentation-genai/opentelemetry-instrumentation-langchain/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ dependencies = [
3232

3333
[project.optional-dependencies]
3434
instruments = [
35-
"langchain >= 0.3.21",
35+
"langchain >= 1.0.0",
3636
]
3737

3838
[project.entry-points.opentelemetry_instrumentor]

0 commit comments

Comments
 (0)