Skip to main content
Glama
test_langgraph_direct.py4.01 kB
""" Debug script to see what LangGraph actually returns """ import asyncio import httpx import json async def test_langgraph_direct(): """Test LangGraph directly to see message structure""" payload = { "assistant_id": "supervisor", "input": { "messages": [ { "role": "user", "content": "Hello! Can you help me find a laptop?" } ] }, "config": { "configurable": { "thread_id": "test-thread-123" } } } print("Calling LangGraph directly...") print(f"URL: http://localhost:2024/runs/stream") async with httpx.AsyncClient(timeout=120.0) as client: async with client.stream( "POST", "http://localhost:2024/runs/stream", json=payload ) as response: print(f"Status: {response.status_code}\n") event_count = 0 values_events = [] current_event = None current_data = [] async for line in response.aiter_lines(): line = line.strip() if line.startswith("event:"): # Save previous event if current_event and current_data: data_str = "\n".join(current_data) if current_event == "values": try: data_obj = json.loads(data_str) values_events.append(data_obj) except: pass current_event = line.split(":", 1)[1].strip() current_data = [] event_count += 1 elif line.startswith("data:"): data_content = line.split(":", 1)[1].strip() current_data.append(data_content) elif line == "": # End of event if current_event and current_data: data_str = "\n".join(current_data) if current_event == "values": try: data_obj = json.loads(data_str) values_events.append(data_obj) print(f"Values event #{len(values_events)}: " f"{len(data_obj.get('messages', []))} messages") except: pass current_event = None current_data = [] print(f"\nTotal events: {event_count}") print(f"Values events: {len(values_events)}") if values_events: print(f"\n{'='*60}") print("LAST VALUES EVENT") print(f"{'='*60}") last_event = values_events[-1] messages = last_event.get("messages", []) print(f"Total messages: {len(messages)}\n") for i, msg in enumerate(messages): msg_type = msg.get("type", msg.get("role", "unknown")) content = msg.get("content", "") if isinstance(content, dict): content = str(content) content_preview = content[:100] if content else "(no content)" print(f"[{i}] {msg_type}: {content_preview}") print(f"\n{'='*60}") print("LAST MESSAGE DETAILS") print(f"{'='*60}") last_msg = messages[-1] print(json.dumps(last_msg, indent=2)) if __name__ == "__main__": asyncio.run(test_langgraph_direct())

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bmaranan75/mcp-shopping-assistant-py'

If you have feedback or need assistance with the MCP directory API, please join our Discord server