open-swe/agent/utils/tracing.py
Johannes du Plessis aa98d195a8
feat: route graphs to separate LangSmith tracing projects (#1508)
* feat: route graphs to separate LangSmith tracing projects

* docs: point graph entrypoint references at traced wrappers

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-06-11 17:57:16 -07:00

24 lines
806 B
Python

"""Per-graph LangSmith tracing-project routing for langgraph.json entrypoints."""
import contextlib
from collections.abc import AsyncIterator, Awaitable, Callable
import langsmith as ls
from langgraph.graph.state import RunnableConfig
from langgraph.pregel import Pregel
AGENT_TRACING_PROJECT = "open-swe-agent"
REVIEW_TRACING_PROJECT = "open-swe-review"
def traced_graph_factory(
factory: Callable[[RunnableConfig], Awaitable[Pregel]],
project_name: str,
) -> Callable[[RunnableConfig], contextlib.AbstractAsyncContextManager[Pregel]]:
@contextlib.asynccontextmanager
async def entrypoint(config: RunnableConfig) -> AsyncIterator[Pregel]:
graph = await factory(config)
with ls.tracing_context(project_name=project_name):
yield graph
return entrypoint