File size: 857 Bytes
4d620d9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"""Helpers for granular Langfuse traces (LLM generations + tool spans)."""
from __future__ import annotations

from typing import Any


def make_callback_handler():
    """LangChain CallbackHandler that nests generations under the current observation."""
    from langfuse.langchain import CallbackHandler

    return CallbackHandler()


def llm_invoke_config(

    *,

    handler: Any,

    turn: int,

    episode_id: str | None = None,

    extra_metadata: dict[str, Any] | None = None,

) -> dict[str, Any]:
    meta = {"turn": turn}
    if episode_id:
        meta["episode_id"] = episode_id
    if extra_metadata:
        meta.update(extra_metadata)
    return {
        "callbacks": [handler],
        "run_name": f"llm-turn-{turn}",
        "tags": ["deepagents-rl", "llm", f"turn-{turn}"],
        "metadata": meta,
    }