本站实际执行报告 · 不是目标产品原生界面截图langgraph-tool-calling
langgraph1.2.16/langchain-openai1.7.2
- 真实LangGraph1.2.16 StateGraph执行LLM→tools→LLM,模型产生add_items(17,25),实际ToolMessage为42,随后最终回答,退出0;不是用预制AIMessage或FakeChatModel替代推理。 网关分支未执行:独立真实探针确认当前测试Key的Gemini组429后停止新增请求,没有伪造网关tool_call。
- 模型为本次隔离Ollama原生导入的明确别名tutorial-qwen3-proof;权重和原始请求/响应留档。
- 网关分支未发起:当前测试Key的Gemini组独立探针429后停止新增请求。
明确限制
- 只证明对应SDK和本地模型的本题任务,不证明QuickRouter公网账户、Claude或所有模型均可用。
- 本次小样例通过不能推断复杂工具、多轮高风险任务也可靠。
- 仅本地工具回路有真实成功,未验证公网工具协议,不伪造tool_call或网关成功。
原始输出
run-execution.json
{
"exitCode": 0,
"stdout": "{\n \"langgraph\": \"1.2.16\",\n \"messages\": [\n {\n \"content\": \"Use add_items exactly once for item totals, then answer with the numeric tool result.\",\n \"additional_kwargs\": {},\n \"response_metadata\": {},\n \"type\": \"system\",\n \"name\": null,\n \"id\": \"a8e9f3ed-e27b-462d-8289-473926bcfb6c\"\n },\n {\n \"content\": \"There are 17 blue items and 25 red items. Use add_items to calculate total.\",\n \"additional_kwargs\": {},\n \"response_metadata\": {},\n \"type\": \"human\",\n \"name\": null,\n \"id\": \"3934e9b1-3558-4485-91ce-e14c36850201\"\n },\n {\n \"content\": \"\",\n \"additional_kwargs\": {\n \"refusal\": null\n },\n \"response_metadata\": {\n \"token_usage\": {\n \"completion_tokens\": 203,\n \"prompt_tokens\": 199,\n \"total_tokens\": 402,\n \"completion_tokens_details\": null,\n \"prompt_tokens_details\": {\n \"audio_tokens\": null,\n \"cache_write_tokens\": null,\n \"cached_tokens\": 3,\n \"image_tokens\": null,\n \"text_tokens\": null\n }\n },\n \"model_provider\": \"openai\",\n \"model_name\": \"tutorial-qwen3-proof\",\n \"system_fingerprint\": \"fp_ollama\",\n \"id\": \"chatcmpl-902\",\n \"finish_reason\": \"tool_calls\",\n \"logprobs\": null\n },\n \"type\": \"ai\",\n \"name\": null,\n \"id\": \"lc_run--01a16947-d0a0-7525-96a1-4c1481d2dae0-0\",\n \"tool_calls\": [\n {\n \"name\": \"add_items\",\n \"args\": {\n \"blue\": 17,\n \"red\": 25\n },\n \"id\": \"2n5xVPE2uWnxKdp8KGHzbxEAGNwyUehS\",\n \"type\": \"tool_call\"\n }\n ],\n \"invalid_tool_calls\": [],\n \"usage_metadata\": {\n \"input_tokens\": 199,\n \"output_tokens\": 203,\n \"total_tokens\": 402,\n \"input_token_details\": {\n \"cache_read\": 3\n },\n \"output_token_details\": {}\n }\n },\n {\n \"content\": \"42\",\n \"additional_kwargs\": {},\n \"response_metadata\": {},\n \"type\": \"tool\",\n \"name\": null,\n \"id\": \"5db52c89-0161-4a07-ae07-2bd29984dc18\",\n \"tool_call_id\": \"2n5xVPE2uWnxKdp8KGHzbxEAGNwyUehS\",\n \"artifact\": null,\n \"status\": \"success\"\n },\n {\n \"content\": \"The total number of blue and red items is 42.\",\n \"additional_kwargs\": {\n \"refusal\": null\n },\n \"response_metadata\": {\n \"token_usage\": {\n \"completion_tokens\": 190,\n \"prompt_tokens\": 242,\n \"total_tokens\": 432,\n \"completion_tokens_details\": null,\n \"prompt_tokens_details\": {\n \"audio_tokens\": null,\n \"cache_write_tokens\": null,\n \"cached_tokens\": 199,\n \"image_tokens\": null,\n \"text_tokens\": null\n }\n },\n \"model_provider\": \"openai\",\n \"model_name\": \"tutorial-qwen3-proof\",\n \"system_fingerprint\": \"fp_ollama\",\n \"id\": \"chatcmpl-801\",\n \"finish_reason\": \"stop\",\n \"logprobs\": null\n },\n \"type\": \"ai\",\n \"name\": null,\n \"id\": \"lc_run--01a16947-d7be-76b2-a78a-fd11e86bdc0d-0\",\n \"tool_calls\": [],\n \"invalid_tool_calls\": [],\n \"usage_metadata\": {\n \"input_tokens\": 242,\n \"output_tokens\": 190,\n \"total_tokens\": 432,\n \"input_token_details\": {\n \"cache_read\": 199\n },\n \"output_token_details\": {}\n }\n }\n ]\n}\n",
"stderr": "",
"command": [
"/Volumes/Mac Storage/Projects/quickrouter-tutorial30-proof-20261023/coding/.venv/bin/python",
"run.py"
]
}