从0开始打造自己的个人智能体(一)------Deep Agents js环境配置与对话入门
本教程专注于最基础的环境搭建 + 纯对话能力,不涉及工具调用、文件系统等进阶功能,确保你最快跑通与大模型的交互。
一、前置准备
- Node.js 18+ :建议使用 18.x 或更高版本,支持原生 ESM 模块与顶层
await - 包管理器:npm /pnpm/yarn /bun 任选,本教程使用 npm
- 代码编辑器:VSCode、Trae 等都可以
- 至少一个大模型 API 密钥:OpenAI、Anthropic、或任何兼容 OpenAI 接口的模型服务
二、项目初始化
- 在电脑上合适的位置,新建一个名为
deepagents-chat-demo的文件夹。 - 把文件夹拖进代码编辑器。
- 在文件夹内新建一个名为
package.json的文件,填入以下内容:
perl
{
"type": "module",
"name": "deepagents-chat-demo",
"version": "1.0.0",
"dependencies": {
"@langchain/core": "^1.2.3",
"@langchain/langgraph": "^1.4.8",
"@langchain/openai": "^1.5.5",
"@langchain/anthropic": "^0.3.0",
"deepagents": "^1.12.0",
"dotenv": "^17.4.2",
"langchain": "^1.5.4"
}
}
依赖说明:
deepagents:Deep Agents 核心框架,提供开箱即用的智能体全套能力langchain:底层基础组件库,提供模型、工具等通用抽象与标准接口@langchain/core:LangChain 核心基础模块,包含通用类型定义与底层基础能力@langchain/langgraph:底层编排运行时,支撑智能体的状态管理、持久化与执行流程@langchain/openai:OpenAI 接口适配器,兼容所有支持 OpenAI 格式的大模型服务@langchain/anthropic:Anthropic 官方接口适配器,用于接入 Claude 系列模型,支持原生 Prompt Caching 特性dotenv:环境变量加载工具,用于统一管理 API 密钥、模型地址等敏感配置
三、安装依赖
在编辑器的终端面板中执行以下命令,安装所有依赖包:
npm install
四、配置模型与编写对话代码
基础版:环境变量自动配置(入门推荐)
在项目根目录新建 .env 文件:
ini
# .env
# 模型名称,格式:openai:模型名
DEEPAGENTS_MODEL=openai:gpt-4o-mini
# API 密钥
OPENAI_API_KEY=你的API密钥
# 第三方兼容服务接口地址,使用官方 OpenAI 可注释
# OPENAI_BASE_URL=https://你的接口地址/v1
💡 所有兼容 OpenAI 接口的第三方模型,都可以通过修改上述三项配置直接接入,业务代码无需改动。
新建 chat.js,这是不含任何工具的纯对话版本:
javascript
// 加载环境变量
import "dotenv/config";
// 导入 Deep Agents 核心方法
import { createDeepAgent } from "deepagents";
// 从环境变量读取模型名称
const model = process.env.DEEPAGENTS_MODEL;
// 创建智能体实例
const agent = await createDeepAgent({
// 传入模型名称字符串,底层自动读取 OPENAI_ 开头的环境变量完成实例化
model: model,
// 系统提示词:设定 AI 的身份和行为
systemPrompt: "你是一个简洁友好的助手,回答尽量简短清晰。",
});
// 使用 invoke 发起一次对话
const response = await agent.invoke({
messages: [
{ role: "user", content: "你好,请简单介绍一下你自己。" }
],
});
// 输出 AI 的最终回复
console.log("AI 回复:", response.messages.at(-1).content);
代码说明
createDeepAgent:创建智能体实例,model是必填参数- 字符串形式的
model:格式为服务商:模型名,配合标准OPENAI_环境变量即可自动完成模型初始化,适合快速上手 invoke:同步调用方法,传入消息数组,返回完整的对话状态response.messages.at(-1).content:取最后一条消息的内容,即 AI 的回答
进阶版:手动传入模型实例(兼容openai接口)
当你需要自定义温度、使用自定义命名的环境变量,或配置超时、代理等更多模型参数时,可以手动创建模型实例再传入。以智谱模型为例:
在 .env 中配置智谱专属参数:
ini
# .env
# 模型名称
GLM_MODEL=glm-4-flash-250414
# API 密钥
GLM_API_KEY=你的API密钥
# 智谱接口地址
GLM_BASE_URL=https://open.bigmodel.cn/api/paas/v4/
修改 chat.js 代码:
php
// 加载环境变量
import "dotenv/config";
import { createDeepAgent } from "deepagents";
import { ChatOpenAI } from "@langchain/openai";
// 手动封装模型创建函数,支持自定义参数和环境变量名
function createModel(options = {}) {
return new ChatOpenAI({
model: process.env.GLM_MODEL || "glm-4-flash-250414",
apiKey: process.env.GLM_API_KEY,
configuration: {
baseURL: process.env.GLM_BASE_URL || "https://open.bigmodel.cn/api/paas/v4/",
},
temperature: 0.7,
...options,
});
}
const model = createModel();
// 创建智能体实例,直接传入模型实例
const agent = await createDeepAgent({
model: model,
systemPrompt: "你是一个简洁友好的助手,回答尽量简短清晰。",
});
// 调用方式不变
const response = await agent.invoke({
messages: [
{ role: "user", content: "你好,请简单介绍一下你自己。" }
],
});
console.log("AI 回复:", response.messages.at(-1).content);
这种方式灵活性最高,支持所有模型参数的自定义,适合生产环境或有特殊配置需求的场景。
五、运行测试
在终端执行:
node chat.js
预期输出示例:
AI 回复:你好!我是一个 AI 助手,可以帮你解答问题、提供信息和进行交流。有什么我可以帮你的吗?
跑通这一步,说明环境配置成功,Deep Agents 已经可以正常调用大模型了。
六、常见问题排查
- 报错
Failed to load model检查模型名称拼写是否正确,以及对应的 API Key 和 Base URL 是否配置正确。 - 报错
Cannot use import statement outside a module忘记在package.json加"type": "module",加上即可。 - 网络连接失败 如果使用官方 OpenAI,确保网络能正常访问;如果使用国内服务商,检查 Base URL 是否正确。
- 返回结果很长,不是单纯的回答 请使用
response.messages.at(-1).content取最后一条消息,不要直接打印整个response对象。