Agent开发Tips
标准工具调用 工具名称要求 有的LLM会严格校验工具名称,所以工具名称最好是函数命名风格的, 大小写+数字+下划线,63个字符以内。 工具调用应该是成对出现 tips: 即一条rool=assistant消息,对应着一条role=tool消息 tool_call_id要对应 有的模型会要求tool_calls消息后,应该紧跟着结果消息 如果LLM返回的tool_calls解析报错,或者本地执行报错,都应该返回role=tool的结果消息,返回报错信息。有的LLM会严格要求 { "role": "assistant", "content": "老板~ 小米(01810.HK)的日线数据已经成功获取啦!(๑•̀ㅂ•́)و✧ 现在需要获取关键技术指标(如MACD、RSI、均线等)来进行趋势分析,我这就调用`mcp_tt.get_technical_indicators`工具获取最近60天的技术指标数据~", "tool_calls": [{ "id": "call_2lzdhh4w8t7j783xoam5f27t", "function": { "arguments": " {\"market\": \"HK\", \"stock_code\": \"01810.HK\", \"period\": 60}", "name": "mcp_tt.get_technical_indicators" }, "type": "function" }] }, { "role": "tool", "content": "{\"result\":{\"meta\":null,\"structuredContent\.....", "tool_call_id": "call_2lzdhh4w8t7j783xoam5f27t" } LLM可能会返回错误的工具调用 抓包分析,发现LLM返回了如下工具调用,其中有些奇怪的字符, 如]<|FunctionCallEnd|>. 下面是SSE合并后的结果,合并工具:OpenAI SSE Data Merger ...