# agent-study **Repository Path**: LongYuFeng/agent-study ## Basic Information - **Project Name**: agent-study - **Description**: 学习langchain,用js实现agent的练习项目,可参考学习使用 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-22 - **Last Updated**: 2026-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # agent-study 基于 LangChain.js 的 Agent 学习练习项目,使用 JavaScript 实现,可供参考学习。 ## 项目简介 本项目是一个使用 [LangChain.js](https://js.langchain.com/) 构建 AI Agent 的入门练习项目。通过 OpenAI 兼容接口接入 [智谱AI](https://open.bigmodel.cn/) 大语言模型,演示了以下核心功能: - **Agent 创建与对话**:使用 `createAgent` 构建 Agent,支持多轮对话与上下文记忆 - **工具调用(Tool Calling)**:自定义天气查询工具,Agent 可根据用户意图自动决定是否调用 - **对话记忆管理**:使用 `MemorySaver` 自动维护对话历史,无需手动管理消息数组 - **交互式命令行**:通过 readline 实现终端交互式问答 ## 项目结构 ``` agent-study/ ├── agent-demo/ # Agent 示例项目 │ ├── main.js # 主程序入口,Agent 核心逻辑 │ ├── .env # 环境变量配置(API Key) │ ├── package.json # 项目依赖配置 │ └── node_modules/ # 依赖包 ├── .gitignore ├── README.md # 项目说明文档 └── README.en.md # 英文说明文档 ``` ## 技术栈 | 技术 | 说明 | |------|------| | [LangChain.js](https://js.langchain.com/) | LLM 应用开发框架 | | [@langchain/openai](https://www.npmjs.com/package/@langchain/openai) | OpenAI 兼容接口适配器 | | [@langchain/langgraph](https://www.npmjs.com/package/@langchain/langgraph) | Agent 状态图与工作流引擎 | | [Zod](https://zod.dev/) | 工具参数 Schema 定义与校验 | | [智谱AI](https://open.bigmodel.cn/) | 大语言模型服务提供商 | | Node.js (ESM) | 运行环境,使用 ES Module | ## 快速开始 ### 1. 环境要求 - Node.js >= 18(需支持原生 fetch) - 智谱AI API Key([前往获取](https://open.bigmodel.cn/usercenter/apikeys)) ### 2. 克隆项目 ```bash git clone <仓库地址> cd agent-study/agent-demo ``` ### 3. 安装依赖 ```bash npm install ``` ### 4. 配置环境变量 在 `agent-demo/.env` 文件中填入你的智谱AI API Key: ``` BIGMODEL_API_KEY="你的API Key" ``` ### 5. 运行项目 ```bash node main.js ``` 启动后即可在终端与 Agent 进行交互式对话,输入 `exit` 退出程序。 ## 核心代码说明 ### 模型配置 通过 OpenAI 兼容接口接入智谱AI,无需修改 LangChain 代码即可使用国产模型: ```javascript const model = new ChatOpenAI({ model: "glm-5.1", // 智谱AI 模型名称 temperature: 0.5, apiKey: process.env.BIGMODEL_API_KEY, configuration: { baseURL: "https://open.bigmodel.cn/api/paas/v4", }, }) ``` ### 工具定义 使用 `tool` 函数定义工具,通过 Zod Schema 声明参数,示例为天气查询工具: ```javascript const getWeater = tool( async ({ city }) => { const response = await fetch(`https://wttr.in/${encodeURIComponent(city)}?format=j1&lang=zh`) // ... 解析天气数据并返回 }, { name: "get_weather", description: "获取指定城市的天气", schema: z.object({ city: z.string().describe("城市名称") }) } ) ``` ### Agent 创建 ```javascript const agent = createAgent({ model, tools: [getWeater], // 可选,绑定工具列表 checkpointer: new MemorySaver(), // 对话记忆管理 prompt: "你是一名有用的助手。" // 系统提示词 }) ``` > **注意**:当前示例中 `tools` 已注释,Agent 以数学老师角色运行。如需启用天气查询工具,取消注释 `tools: [getWeater]` 并调整 `prompt` 即可。 ## 许可证 ISC