import json
from langgraph.prebuilt import create_react_agent
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain_core.tools import tool
from reagent_flow_langgraph import ReagentGraphTracer
import reagent_flow
@tool
def extract_vendor_packet(vendor_name: str) -> str:
"""Return the intake packet for a vendor review."""
return json.dumps({"vendor_name": vendor_name, "status": "captured"})
llm = ChatGoogleGenerativeAI(model="gemini-2.0-flash")
agent = create_react_agent(llm, [extract_vendor_packet])
tracer = ReagentGraphTracer()
with reagent_flow.session("intake") as s:
agent.invoke(
{"messages": [("user", "Prepare a vendor packet for ClearVoice AI")]},
config={"callbacks": [tracer]},
)
s.assert_called("extract_vendor_packet")
s.assert_tool_output_matches("extract_vendor_packet", schema={
"vendor_name": str,
"status": str,
})