返回模板
自定义 Node
运行在 EdgeOne Makers 上的极简 Node.js LLM Agent 入门模板,支持流式输出、会话记忆、中断生成和平台工具调用。
Node.js Starter Agent
跑在 EdgeOne Makers 上的极简 Node.js / TypeScript LLM Agent 模板:直接用原生 fetch 调 OpenAI 兼容的 Chat Completions,搭配 EdgeOne 沙箱工具调用与基于 context.store 的会话记忆。不依赖任何 Agent 框架。
Framework: None (raw Node) · Category: Quick Start · Language: TypeScript
概述
如果你想要一个不依赖任何 Agent 框架的最小起点,这就是。整条主流程 —— 拼 prompt → 流式调 LLM → 执行 tool_calls → 续请求 → 收尾,全部用原生 fetch 和一个小巧的 toolRegistry 写完。从上到下读完,就把全部都看完了。
- SSE 流式聊天 —— 逐 token 推
text_delta,命中工具时推tool_called。 - EdgeOne 沙箱工具 —— 从
context.tools拉出commands/files/code_interpreter/browser,转成 OpenAI function calling schema。 - 工具调用循环 —— 最多 10 轮:模型返回
tool_calls→toolRegistry.execute()→ 追加结果 → 续请求,直到给出最终答案。 - 会话记忆 ——
ChatSession(context.store)通过 EdgeOne Store 读写按会话维度的历史。 - 可信取消 —— 前端
AbortController+ 后端context.request.signal真正释放上游 LLM 连接。
环境变量
| 变量 | 必填 | 说明 |
|---|---|---|
AI_GATEWAY_API_KEY | 是 | 模型网关 API Key。可填 Makers Models 的 API Key,也可以是任意 OpenAI 兼容服务商的 Key。 |
AI_GATEWAY_BASE_URL | 是 | 网关 Base URL。Makers Models 请使用 https://ai-gateway.edgeone.link/v1。 |
AI_GATEWAY_MODEL | 否 | 模型 ID。默认 @makers/deepseek-v4-flash(内置免费模型)。 |
WSA_API_KEY | 否 | 腾讯云 Web Search API Key。仅在使用联网搜索工具时需要。 |
模板遵循 OpenAI 兼容协议,可以指向 Makers Models,也可以指向任意 OpenAI 兼容的服务商。
如何获取 AI_GATEWAY_API_KEY
- 打开 Makers 控制台。
- 登录并开通 Makers。
- 进入 Makers → Models → API Key,新建一个 Key。
- 把它粘到
AI_GATEWAY_API_KEY。
内置的 @makers/deepseek-v4-flash 免费但有用量限制,适合验证;生产建议自行绑定付费厂商(BYOK)。
如何获取 WSA_API_KEY
WSA_API_KEY 仅在调用联网搜索工具时需要,参考 文档。
本地开发
前置依赖:Node.js ≥ 18,已安装 EdgeOne CLI(npm i -g edgeone)。
npm install
cp .env.example .env # 然后填入 AI_GATEWAY_API_KEY / AI_GATEWAY_BASE_URL
edgeone makers dev
本地观测面板:http://localhost:8080/agent-metrics。
项目结构
node-starter/
├── agents/ # Node/TS 后端(EdgeOne Makers Agent Functions,有状态)
│ ├── chat/index.ts # POST /chat —— SSE 流式聊天 + 工具循环
│ ├── chat/stop.ts # POST /chat/stop —— 中断当前 agent
│ ├── _model.ts # LLM 模型配置(私有)
│ ├── _logger.ts # 日志工具(私有)
│ ├── _session.ts # 基于 context.store 的会话适配(私有)
│ └── _tools.ts # EdgeOne 工具注册表(私有)
├── cloud-functions/ # Node/TS 后端(EdgeOne Makers Node Functions,无状态)
│ ├── history/index.ts # POST /history —— 对话历史
│ └── _logger.ts # 日志工具(私有)
├── src/ # React + Vite + TypeScript 前端
│ ├── App.tsx # 主应用 + SSE 流生命周期管理
│ ├── api.ts # /chat、/chat/stop、/history 接口封装
│ └── components/ # ChatWindow、ChatInput、CodeViewer、ToolIndicators 等
├── package.json
├── vite.config.ts
├── tsconfig.json
└── index.html
以
_开头的文件是私有模块,不会暴露为公开路由。
资源
License
MIT.