开发与工程 local-llmfunction-callingreact-patternnode-llama-cppeducationaltutorialagent-patterns

从零构建 AI 智能体

用本地 LLM 和 node-llama-cpp 从零构建 AI 智能体,深入理解工具调用、记忆与 ReAct 模式。

FollowAgents 评估 · FARS-2.1
不推荐
28/ 100 五分制 1.4 / 5
1 2 3 4 5 6
1信任安全0 / 29 · 0.0/5

证据显示:仓库未提供任何权限管理、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的机制或说明。所有信任相关标准均未得到支持,因此得分为0。

2可靠稳定5 / 14 · 1.8/5

证据显示:README中列出的示例路径与项目结构部分存在不一致(如README中'01_intro'与项目结构中的'01_intro',但README中链接为'examples/01_intro/intro.js',而项目结构显示为'01_intro/intro.js'),存在轻微不一致。依赖项在package.json中列出,但未提供版本锁定或完整性校验。错误处理示例(11_error-handling)提及了错误分类和重试,但未提供具体实现细节。因此,自我一致性、依赖可用性和失败消息均得分为1。

3适用触发8 / 18 · 2.2/5

证据显示:README明确面向希望理解AI代理内部原理的开发者,并提供了从基础到高级的渐进式学习路径,覆盖多种场景。能力边界在README中有所提及(如'Limitations of pure LLM reasoning'),但未详细说明。触发精度方面,示例的触发方式(如命令行运行)在README中有说明,但未提供详细的参数或配置。环境适配方面,README提到了Node.js 18+和内存要求,但未提供详细的系统兼容性说明。因此,受众与场景得分为2,其余为1。

4规范维护7 / 18 · 1.9/5

证据显示:README提供了清晰的项目结构、安装说明和示例,但缺少FAQ、已知限制的详细说明、版本变更日志和明确的维护责任。LICENSE.md为MIT,但版权年份和作者为占位符。因此,信息架构、示例和FAQ得分为2,安装说明、命名稳定性、已知限制、许可证和维护责任得分为1,版本变更日志为0。

5有效结果6 / 13 · 2.3/5

证据显示:示例代码的输出格式未详细说明,但README提供了运行示例的命令。边际价值较高,因为该仓库提供了从零构建AI代理的独特学习资源。成本效益方面,本地LLM运行需要较高的硬件要求,但未提供详细的成本分析。因此,输出可用性得分为1,边际价值为2,成本效益为1。

6证据核验2 / 8 · 1.3/5

证据显示:README中的声明(如'This is where text generation becomes agency!')未提供可验证的证据。仓库未提供测试或基准数据来支持其教学效果。事实与推断的分离不明确,例如README中关于'ReAct pattern'的描述是事实性陈述,但未提供来源。因此,声明可追溯性得分为1,跨来源佐证为0,事实与推断分离为1。

证据充分度: 评估于 2026年8月11日 审查版本 62e4ac7bf805
源码中未见的安全控制:最小权限约束、执行前用户确认、数据流向说明、敏感信息处理、依赖安全审查、外部影响披露、回滚或恢复路径、来源归属可核验
使用前请注意
  • 仓库未提供任何安全机制或权限管理,使用时需自行评估风险。
  • README中的示例路径与项目结构存在不一致,可能导致用户混淆。
  • LICENSE.md中的版权信息为占位符,需确认实际授权。
  • 依赖项未锁定版本,存在供应链风险。
评估证据 [1][2][3]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

该仓库是一个循序渐进的学习资源,指导开发者如何使用本地 LLM(通过 node-llama-cpp)从第一性原理构建 AI 智能体,避免使用框架。它包含 15 个示例,从基础 LLM 交互开始,逐步涵盖系统提示词、推理、批处理、流式输出、函数调用、持久记忆、ReAct、AoT、错误处理、ToT、GoT、CoT 以及基于嵌入的工具路由。每个示例都附带完整的代码(.js)以及独立的文档(CODE.md 和 CONCEPT.md),用于解释实现细节和高级概念。该项目强调本地推理,需要用户下载 GGUF 模型,并提供了 companion website 作为概念地图。最终目标是让学习者深刻理解智能体的内部工作原理,以便日后明智地使用生产级框架。

该仓库运行一系列 Node.js 脚本,使用 node-llama-cpp 加载本地 GGUF 模型并执行推理。示例包括 intro/intro.js(基础提示)、simple-agent/simple-agent.js(函数调用)、react-agent/react-agent.js(ReAct 模式)、tree-of-thought/tree-of-thought.js(束搜索)等。每个脚本读取本地模型、接收输入、调用 LLM,并可选地使用工具函数(例如 simple-agent 中的函数定义)。它提供了一个 PromptDebugger 工具(helper/prompt-debugger.js)用于检查发送给模型的确切提示。用户通过命令行直接运行脚本,并根据每个示例文件夹中的 CODE.md 和 CONCEPT.md 文件调整参数。

  1. 希望在应用中使用本地 LLM 生成文本,但需要理解底层机制的 Node.js 开发者。
  2. 正在学习函数调用,并希望看到一个在本地 LLM 上实现工具定义的完整示例的开发者。
  3. 希望深入学习 ReAct 模式以及推理、行动、观察循环的 AI 工程师。
  4. 希望为 LLM 应用添加持久记忆功能,并了解状态管理方式的开发者。
  5. 需要实现工具路由以减少上下文长度,并观察嵌入相似度如何选择相关工具的工程师。
  6. 在构建生产级智能体框架之前,希望通过动手示例快速了解智能体架构的学生或爱好者。

这个 Agent 有哪些优点和局限?

优点
  • 所有代码均使用本地 LLM,通过 node-llama-cpp 实现,无外部 API 依赖,保护隐私且无网络延迟。
  • 每个示例都提供 CODE.md 和 CONCEPT.md,详细解释代码和概念,适合教育目的。
  • 涵盖多种高级智能体模式,包括 ReAct、Tree of Thought、Graph of Thought 和 Chain of Thought,提供广泛的架构视角。
  • 包含 PromptDebugger 工具,帮助开发者调试发送给 LLM 的准确提示,提升可观测性。
  • 提供 companion website,从概念上补充仓库,帮助理解学习路径。
局限
  • 使用 node-llama-cpp 和本地 GGUF 模型,开发者需要熟悉本地模型配置和硬件要求(至少 8GB RAM)。
  • 示例是独立的脚本,未提供部署到生产环境的集成指南或规范化 API。
  • 该项目主要针对教程学习,不适合直接作为生产级智能体框架,需要额外工程化工作。
  • 模型下载过程未自动化,用户需手动下载 GGUF 文件,增加部署步骤。
  • 核心依赖于 node-llama-cpp,迁移到其他推理引擎需额外适配。

如何安装或部署这个 Agent?

首先,确保已安装 Node.js 18 或更高版本以及 npm。然后,克隆仓库并进入目录,运行 npm install 安装依赖。接着,在仓库根目录创建 models/ 文件夹,并从 Hugging Face 等来源下载所需的 GGUF 格式模型,将模型文件放入该文件夹。具体模型下载链接和推荐型号请参考 DOWNLOAD.md 文件。

如何使用这个 Agent?

安装完成后,在仓库根目录运行 npm install。然后按照 README 中的说明运行示例,例如:node intro/intro.js 或 node react-agent/react-agent.js。确保已下载模型并放置在 ./models/ 目录中。每个示例文件夹都包含 CODE.md(逐步代码解释)和 CONCEPT.md(概念讲解),建议同时阅读以获得完整理解。

常见问题

运行示例需要多少内存?
至少 8GB RAM,推荐 16GB。模型大小和量化影响实际使用。
我可以使用云端 LLM 吗?
项目主要使用本地 LLM,但有两个可选示例(openai-intro)演示如何调用托管模型,例如 GPT-4。
如何选择合适的模型?
模型需为 GGUF 格式,可参考 DOWNLOAD.md 中的链接和推荐。通常选择适合本地推理的量化模型。
这些示例是否可以直接用于生产?
不,它们旨在教育目的,展示概念。生产部署需要额外的工作,例如错误处理、性能优化和集成。
是否提供 Python 版本?
有,Python 版本的教程可在 https://github.com/pguso/agents-from-scratch 找到。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents