From d3f5be858e7e33a45272316c6709493a51deae3c Mon Sep 17 00:00:00 2001 From: sonto Date: Sat, 28 Feb 2026 23:13:49 +0800 Subject: [PATCH] devel --- llm/llm_engine.py | 2 +- logs/agent.log | 105 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+), 1 deletion(-) diff --git a/llm/llm_engine.py b/llm/llm_engine.py index 1407a13..5b2ff04 100644 --- a/llm/llm_engine.py +++ b/llm/llm_engine.py @@ -184,7 +184,7 @@ class LLMEngine: f"## 对话历史\n{context or '(无)'}\n\n" f"## 用户输入\n{user_input}\n\n" f"## 指令\n" - f"以 JSON 格式回复:\n" + f"以纯 JSON 格式回复,不要嵌入到其他对象中,如下:\n" f'{{"need_tool": true/false, "tool_name": "...", "arguments": {{...}}, "reasoning": "..."}}' ) diff --git a/logs/agent.log b/logs/agent.log index 1561f7a..f91e208 100644 --- a/logs/agent.log +++ b/logs/agent.log @@ -418,3 +418,108 @@ --- *由... [2026-02-28 22:58:47,489] [agent.CLIENT] INFO: 🎉 [CLIENT] 流程完成,回复已返回 +[2026-02-28 23:01:29,790] [agent.CLIENT] INFO: ======================================================= +[2026-02-28 23:01:29,790] [agent.CLIENT] INFO: 📨 Step 1 [CLIENT] 收到用户输入: 搜索今日的天气如何 +[2026-02-28 23:01:29,790] [agent.MEMORY] DEBUG: 💬 [USER] 搜索今日的天气如何... +[2026-02-28 23:01:29,791] [agent.CLIENT] INFO: 🧠 Step 2 [LLM] 开始推理,分析意图... +[2026-02-28 23:01:29,791] [agent.LLM] INFO: 💭 分析意图: 搜索今日的天气如何... +[2026-02-28 23:01:29,791] [agent.LLM] DEBUG: 📝 Prompt 已构造 (591 chars) +[2026-02-28 23:02:40,057] [agent.Monica] INFO: ```json +{ + "need_tool": true, + "tool_name": "web_search", + "arguments": { + "query": "今日的天气" + }, + "reasoning": "获取当日天气信息需要实时数据,而我无法直接访问实时信息,因此需要调用 web_search 工具来搜索并获取最新的天气信息。" +} +``` +[2026-02-28 23:11:18,766] [agent.SYSTEM] INFO: 🔧 开始组装 Agent 系统... +[2026-02-28 23:11:18,766] [agent.MCP] INFO: 🚀 MCP Server [DemoMCPServer] 启动 +[2026-02-28 23:11:18,766] [agent.MCP] INFO: 📌 注册工具: [calculator] — 计算数学表达式,支持加减乘除、幂运算、括号等 +[2026-02-28 23:11:18,766] [agent.MCP] INFO: 📌 注册工具: [web_search] — 在互联网上搜索信息,返回相关网页摘要 +[2026-02-28 23:11:18,766] [agent.MCP] INFO: 📌 注册工具: [file_reader] — 读取本地文件内容,仅限 workspace/ 目录下的文件 +[2026-02-28 23:11:18,766] [agent.MCP] INFO: 📌 注册工具: [code_executor] — 在沙箱环境中执行 Python 代码片段,返回标准输出 +[2026-02-28 23:11:18,767] [agent.LLM] INFO: 🧠 LLM 引擎初始化,模型: gpt-4o +[2026-02-28 23:11:18,821] [agent.MEMORY] INFO: 💾 Memory 初始化,最大历史: 20 条 +[2026-02-28 23:11:18,822] [agent.CLIENT] INFO: 💻 Agent Client 初始化完成 +[2026-02-28 23:11:18,822] [agent.SYSTEM] INFO: ✅ Agent 组装完成,已注册工具: ['calculator', 'web_search', 'file_reader', 'code_executor'] +[2026-02-28 23:11:23,918] [agent.CLIENT] INFO: ======================================================= +[2026-02-28 23:11:23,918] [agent.CLIENT] INFO: 📨 Step 1 [CLIENT] 收到用户输入: 查询今天的天气 +[2026-02-28 23:11:23,918] [agent.MEMORY] DEBUG: 💬 [USER] 查询今天的天气... +[2026-02-28 23:11:23,918] [agent.CLIENT] INFO: 🧠 Step 2 [LLM] 开始推理,分析意图... +[2026-02-28 23:11:23,918] [agent.LLM] INFO: 💭 分析意图: 查询今天的天气... +[2026-02-28 23:11:23,919] [agent.LLM] DEBUG: 📝 Prompt 已构造 (359 chars) +[2026-02-28 23:11:27,029] [agent.Monica] INFO: {"need_tool": true, "tool_name": "web_search", "arguments": {"query": "今天的天气"}, "reasoning": "查询天气需要访问实时信息,无法直接从内置数据中获取,因此需要调用网络搜索工具来获取当天的天气状况。"} +[2026-02-28 23:11:27,029] [agent.LLM] INFO: 🎯 决策结果: 调用工具 [web_search] +[2026-02-28 23:11:27,029] [agent.LLM] DEBUG: 💡 推理: 查询天气需要访问实时信息,无法直接从内置数据中获取,因此需要调用网络搜索工具来获取当天的天气状况。 +[2026-02-28 23:11:27,029] [agent.CLIENT] INFO: 📡 Step 3 [MCP] 发送工具调用请求 + 方法: tools/call + 工具: web_search + 参数: {'query': '今天的天气'} + 请求体: {'jsonrpc': '2.0', 'id': '6b19ead1', 'method': 'tools/call', 'params': {'name': 'web_search', 'arguments': {'query': '今天的天气'}}} +[2026-02-28 23:11:27,030] [agent.CLIENT] INFO: 🔧 Step 4 [TOOL] MCP Server 执行工具 [web_search]... +[2026-02-28 23:11:27,030] [agent.MCP] INFO: 📨 收到请求 id=6b19ead1 method=tools/call +[2026-02-28 23:11:27,030] [agent.TOOL] INFO: ▶ 执行工具 [web_search],参数: {'query': '今天的天气'} +[2026-02-28 23:11:27,130] [agent.TOOL] INFO: ✅ 工具 [web_search] 执行成功 +[2026-02-28 23:11:27,130] [agent.CLIENT] INFO: ✅ 工具执行成功,输出: 搜索「今天的天气」,共 2 条结果: +[1] 今日天气预报 + 晴转多云,气温 15°C ~ 24°C,东南风 3 级 +[2] 未来 7 天天气 + 本... +[2026-02-28 23:11:27,130] [agent.MEMORY] DEBUG: 💬 [TOOL] 搜索「今天的天气」,共 2 条结果: +[1] 今日天气预报 + 晴转多云,气温 15°C ~ 24°C,东南风 3 ... +[2026-02-28 23:11:27,130] [agent.CLIENT] INFO: ✍️ Step 5 [LLM] 整合工具结果,生成最终回复... +[2026-02-28 23:11:27,131] [agent.LLM] INFO: ✍️ 整合工具结果,生成最终回复... +[2026-02-28 23:11:27,131] [agent.LLM] INFO: 💬 回复已生成 (167 chars) +[2026-02-28 23:11:27,131] [agent.MEMORY] DEBUG: 💬 [ASSISTANT] ✅ 已通过 [web_search] 工具处理您的请求。 + +**执行结果:** +搜索「今天的天气」,共 2 条结果: +[... +[2026-02-28 23:11:27,131] [agent.CLIENT] INFO: 🎉 [CLIENT] 流程完成,回复已返回 +[2026-02-28 23:12:22,747] [agent.SYSTEM] INFO: 🔧 开始组装 Agent 系统... +[2026-02-28 23:12:22,747] [agent.MCP] INFO: 🚀 MCP Server [DemoMCPServer] 启动 +[2026-02-28 23:12:22,747] [agent.MCP] INFO: 📌 注册工具: [calculator] — 计算数学表达式,支持加减乘除、幂运算、括号等 +[2026-02-28 23:12:22,747] [agent.MCP] INFO: 📌 注册工具: [web_search] — 在互联网上搜索信息,返回相关网页摘要 +[2026-02-28 23:12:22,747] [agent.MCP] INFO: 📌 注册工具: [file_reader] — 读取本地文件内容,仅限 workspace/ 目录下的文件 +[2026-02-28 23:12:22,747] [agent.MCP] INFO: 📌 注册工具: [code_executor] — 在沙箱环境中执行 Python 代码片段,返回标准输出 +[2026-02-28 23:12:22,747] [agent.LLM] INFO: 🧠 LLM 引擎初始化,模型: gpt-4o +[2026-02-28 23:12:22,785] [agent.MEMORY] INFO: 💾 Memory 初始化,最大历史: 20 条 +[2026-02-28 23:12:22,785] [agent.CLIENT] INFO: 💻 Agent Client 初始化完成 +[2026-02-28 23:12:22,785] [agent.SYSTEM] INFO: ✅ Agent 组装完成,已注册工具: ['calculator', 'web_search', 'file_reader', 'code_executor'] +[2026-02-28 23:12:53,887] [agent.CLIENT] INFO: ======================================================= +[2026-02-28 23:12:53,887] [agent.CLIENT] INFO: 📨 Step 1 [CLIENT] 收到用户输入: 执行python代码:print('你好') +[2026-02-28 23:12:53,887] [agent.MEMORY] DEBUG: 💬 [USER] 执行python代码:print('你好')... +[2026-02-28 23:12:53,887] [agent.CLIENT] INFO: 🧠 Step 2 [LLM] 开始推理,分析意图... +[2026-02-28 23:12:53,887] [agent.LLM] INFO: 💭 分析意图: 执行python代码:print('你好')... +[2026-02-28 23:12:53,887] [agent.LLM] DEBUG: 📝 Prompt 已构造 (389 chars) +[2026-02-28 23:12:57,254] [agent.Monica] INFO: {"need_tool": true, "tool_name": "code_executor", "arguments": {"code": "print('你好')"}, "reasoning": "用户明确要求执行一段Python代码,因此需要调用code_executor工具来执行该代码。"} +[2026-02-28 23:12:57,254] [agent.LLM] INFO: 🎯 决策结果: 调用工具 [code_executor] +[2026-02-28 23:12:57,254] [agent.LLM] DEBUG: 💡 推理: 用户明确要求执行一段Python代码,因此需要调用code_executor工具来执行该代码。 +[2026-02-28 23:12:57,254] [agent.CLIENT] INFO: 📡 Step 3 [MCP] 发送工具调用请求 + 方法: tools/call + 工具: code_executor + 参数: {'code': "print('你好')"} + 请求体: {'jsonrpc': '2.0', 'id': '49bf04da', 'method': 'tools/call', 'params': {'name': 'code_executor', 'arguments': {'code': "print('你好')"}}} +[2026-02-28 23:12:57,255] [agent.CLIENT] INFO: 🔧 Step 4 [TOOL] MCP Server 执行工具 [code_executor]... +[2026-02-28 23:12:57,255] [agent.MCP] INFO: 📨 收到请求 id=49bf04da method=tools/call +[2026-02-28 23:12:57,255] [agent.TOOL] INFO: ▶ 执行工具 [code_executor],参数: {'code': "print('你好')"} +[2026-02-28 23:12:57,255] [agent.TOOL] INFO: ✅ 工具 [code_executor] 执行成功 +[2026-02-28 23:12:57,255] [agent.CLIENT] INFO: ✅ 工具执行成功,输出: 执行成功 (0.1ms): +你好 +... +[2026-02-28 23:12:57,255] [agent.MEMORY] DEBUG: 💬 [TOOL] 执行成功 (0.1ms): +你好 +... +[2026-02-28 23:12:57,255] [agent.CLIENT] INFO: ✍️ Step 5 [LLM] 整合工具结果,生成最终回复... +[2026-02-28 23:12:57,255] [agent.LLM] INFO: ✍️ 整合工具结果,生成最终回复... +[2026-02-28 23:12:57,255] [agent.LLM] INFO: 💬 回复已生成 (99 chars) +[2026-02-28 23:12:57,256] [agent.MEMORY] DEBUG: 💬 [ASSISTANT] ✅ 已通过 [code_executor] 工具处理您的请求。 + +**执行结果:** +执行成功 (0.1ms): +你好 +... +[2026-02-28 23:12:57,256] [agent.CLIENT] INFO: 🎉 [CLIENT] 流程完成,回复已返回