从零搭建轻灵:一个 TypeScript CLI Agent 框架的诞生

用 TypeScript + DeepSeek API 构建你自己的 AI 编程助手,全流程技术博客系列

为什么要做轻灵?

2026 年初,Claude Code 的出现让我第一次真正感受到「AI 在终端里写代码」的生产力。但作为一个想深入理解 Agent 原理的开发者,我更想自己造一个------从最底层的 ReAct 循环、Tool Calling、到终端 UI 渲染,每一步都亲手实现。

轻灵(Qingling)就是这样诞生的。它是一个从零搭建的 TypeScript CLI Agent 框架,目标是:

  1. 理解原理:不封装黑盒 API,而是自己实现 Agent 循环的每个环节
  2. 极致轻量:核心依赖只有 axios + zod,没有 React/Ink 等重型 UI 库
  3. 生产可用:带记忆、压缩、验证、TUI 界面,不只是 Demo

系列目录

篇章 内容 适合谁
第1篇:架构总览 项目结构、技术选型、核心设计决策 所有人
第2篇:Agent Loop ReAct 循环、Tool Calling、上下文管理 想理解 Agent 原理的人
第3篇:流式 TUI Claude Code 风格终端界面、ANSI 控制 想做终端 UI 的人
第4篇:工具与 Pipeline 11 个内置工具、Hook/Section/Verification 想扩展工具的人
第5篇:记忆与生产化 向量记忆、MCP、Mission 系统 想做生产级 Agent 的人

技术栈一览

复制代码
TypeScript (ESM)  +  Node.js 18+
├── HTTP:      axios(带重试拦截器)
├── Schema:    zod(工具参数校验)
├── 存储:      better-sqlite3(记忆 + 向量索引)
├── 浏览器:    playwright(JS 渲染页面抓取)
├── YAML:      yaml(配置解析)
└── ANSI:      string-width(CJK 宽度计算)

为什么选 DeepSeek?

  • 国内访问稳定,延迟低
  • deepseek-chat 模型原生支持 OpenAI 格式的 Tool Calling
  • 价格便宜,适合开发调试
  • 也可以切换到 OpenAI / 智谱 / MiniMax 等任何兼容接口

从 v0.1 到 v0.5:演进路线

复制代码
v0.1  基础 Agent Loop + 5 个工具 + REPL
  ↓
v0.2  三层记忆架构 + WAL 日志 + MCP 客户端
  ↓
v0.3  语义向量记忆 + Workflow 状态机 + Dashboard
  ↓
v0.4  Slash 命令 + Onboarding 向导 + E2E 测试
  ↓
v0.5  Mission 系统 + Browser Fetch + Daemon 守护进程

每篇文章都会对应具体的版本阶段,你可以按顺序从 v0.1 开始搭建,逐步演进到 v0.5。

快速体验

如果你想先跑起来看看效果:

bash 复制代码
git clone https://github.com/Zzy-min/qingling.git
cd qingling
npm install
npm run build

# 配置 API Key
echo "DEEPSEEK_API_KEY=your-key-here" > .env

# 启动 TUI
node dist/index.js -t

好,接下来我们进入第1篇:架构总览


下一篇:从零搭建轻灵(一):架构总览与技术选型

相关推荐
AlienZHOU18 小时前
AI Coding 时代下,我的技术面试实践分享
前端·后端·面试
Captaincc21 小时前
AI用量v0.1.11更新发布 新增 jusage doctor 诊断指令 托盘展示token 和余额 新增 AutoClaw 支持
前端·后端·vibecoding
计算机魔术师1 天前
德国Wiki被黑后两周,OpenAI终于把模型失控的账本摊开了
前端
kyriewen1 天前
我让 AI 当面试官面了我一轮:第 3 个追问我就卡住了(附 10 道追问清单)
前端·面试·ai编程
IT_陈寒1 天前
Python的GIL把我坑惨了,多线程跑得比单线程还慢
前端·人工智能·后端
前端snow1 天前
ai agent --- 多agent框架之图编排引擎-langgraph
前端
竹林8181 天前
OmniPic Studio v3.2.1 核心技术架构与全平台发版解析文档
前端·浏览器
JamesZhang800781 天前
页面内存只涨不跌? 一次泄漏排查, 牵出 WeakMap 的诞生
前端
Z小明1 天前
第 6 章 组件进阶
前端·vue.js
江华森1 天前
HTTP请求的完整过程详解:从DNS解析到TCP挥手的微秒级实战分析
前端