You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中用LangChain AzureChatOpenAI构建智能体遇[object Object]错误

解决LangChain AzureChatOpenAI构建OpenAI Function Agent时的[object Object]错误

问题背景

在Node.js应用中使用LangChain的AzureChatOpenAI(gpt-35-turbo-16k模型)构建OpenAI Function Agent,已确认Azure环境变量配置正确且单独调用模型正常,但运行Agent时出现无描述性的[object Object]错误。

解决方案

1. 优化错误日志,获取真实错误详情

[object Object]错误是因为直接打印Error对象时未序列化,无法看到具体错误信息。修改catch块代码,打印完整错误结构:

catch (error) {
  console.log(JSON.stringify(error, null, 2));
}

运行后即可看到API返回的具体错误(如参数不兼容、权限问题、格式错误等)。

2. 补充缺失的核心依赖导入

代码中未导入createOpenAIFunctionsAgent和AgentExecutor,这会导致运行时隐式错误,需添加导入语句:

import { createOpenAIFunctionsAgent } from "langchain/agents";
import { AgentExecutor } from "langchain/agents";

3. 验证prompt与Azure模型的兼容性

hwchase17/openai-functions-agent模板是针对OpenAI原生模型设计的,Azure模型的函数调用格式可能存在差异。可以:

  • 自定义prompt,明确适配Azure的函数调用规范
  • 简化prompt内容,逐步排查格式兼容性问题

4. 调整Azure API版本

当前使用的2024-03-01-preview是预览版,可能存在函数调用兼容性问题,尝试切换到稳定版本:

const model = new AzureChatOpenAI({
  // ...其他配置
  azureOpenAIApiVersion: "2023-12-01-preview",
});

5. 确认工具数组配置规范

即使使用空工具数组,也要确保其类型符合LangChain要求。后续添加工具时,需严格遵循OpenAI Functions的定义格式:

const tools = [
  {
    name: "工具名称",
    description: "工具功能描述",
    parameters: {
      type: "object",
      properties: {
        // 参数定义
      },
      required: ["必填参数"],
    },
  },
];

验证流程

  1. 先补充缺失的导入语句
  2. 优化错误日志,获取真实错误信息
  3. 根据错误提示针对性调整配置(如API版本、prompt格式等)

内容的提问来源于stack exchange,提问作者Ujwal Bhagat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 11:00:56