从零开发DeepSeek专属Agent:原理、Token优化与自举实战

引言:为什么要从零开发一个AI Agent?
在AI Agent框架遍地开花的今天,大多数开发者选择直接使用LangChain、CrewAI等成熟框架来构建智能代理。但有一位开发者反其道而行之——他决定从零开始,不依赖任何第三方库,完全手写一个AI Agent,目的只有一个:真正理解Agent的工作原理。
这位B站UP主用两天时间开发了一个名为「Seekran」的Agent工具,后端接入DeepSeek V3 Flash模型,并将其发布到NPM包管理器,用户通过npx命令即可快速运行。NPM(Node Package Manager)是JavaScript生态最大的包管理器,拥有超过200万个开源包。npx是NPM 5.2+内置的包执行工具,它会临时下载并执行指定的包,用完即弃,非常适合CLI工具的分发——这意味着任何安装了Node.js的用户只需一行命令即可体验完整的Agent功能,无需手动下载或安装。更有意思的是,这个Agent本身就是「自举」的——它用自己来开发自己,整个开发成本大约只花了两块钱,一根雪糕的价格。
AI Agent的核心原理:一个循环搞定一切
Agent本质就是一个交互循环
Agent的核心机制其实非常简单:建立一个循环,通过用户与大模型之间的交互,调用一系列内部工具来执行各种操作,最终实现用户想要的效果。
这个描述虽然简洁,但精准地概括了几乎所有AI Agent的工作模式。在学术界,这种循环机制被称为「感知-推理-行动」(Perceive-Reason-Act)循环,最早可追溯到人工智能领域的BDI(Belief-Desire-Intention)架构。2023年以来,随着大语言模型能力的飞跃,这一经典架构被重新激活。ReAct(Reasoning + Acting)论文首次系统性地证明了让LLM交替进行推理和工具调用的有效性——在这个范式下,Agent不再是简单的一问一答,而是通过多轮「思考链」不断修正自己的行动策略,直到任务完成。
无论是AutoGPT还是Devin,底层逻辑都是:接收指令 → 规划步骤 → 调用工具 → 观察结果 → 继续或结束。理解了这个循环,你就理解了Agent的本质。
Agent调用工具的能力依赖于大模型的Function Calling(函数调用)机制。其原理是:开发者预先定义一组工具的名称、参数格式和功能描述,以JSON Schema的形式传递给模型。模型在推理过程中,如果判断需要使用某个工具,会生成一个结构化的函数调用请求,而非自然语言文本。Agent框架捕获这个请求后,在本地执行对应的函数,将结果回传给模型,模型再基于工具返回的结果继续推理。DeepSeek V3系列模型对Function Calling有良好的原生支持,这使得开发者无需复杂的提示工程就能实现稳定的工具调用。

透明化设计:每一步都清清楚楚
这个Agent有一个非常值得借鉴的设计理念——主打透明。进入Agent后,让它介绍自己时,AI会自动扫描当前工作目录,并给出每一步的工具调用详情。每轮AI生成后,它会详细列出:
- 调用了哪些工具
- 执行了多少步骤
- 提示(Prompt)与补全(Completion)的Token用量
- 缓存命中率
这种透明化设计让用户对每次交互的成本有清晰感知,在实际使用中非常实用。你不再是在一个黑盒里盲目操作,而是对每一分钱的花费都心中有数。

技术选型的思考:AI时代语言选择依然重要
从Zig到JavaScript的抉择
开发者最初想使用Zig语言来开发这个Agent,原因是技术论坛里对Zig吹得天花乱坠,而且「AI时代了,语言不重要」的论调甚嚣尘上。Zig是一门2016年诞生的系统级编程语言,定位为「更好的C语言」,以零开销抽象、无隐式行为和编译期计算著称,在2023-2024年因Bun运行时(用Zig编写的高性能JavaScript运行时)而声名鹊起。
但经过仔细思考,他还是放弃了这个想法,理由有两点:
- Zig处于非常早期的阶段,标准库和API会有大量改动,稳定性不够。截至2025年,Zig仍未发布1.0稳定版,标准库API频繁变动,社区生态也远不如成熟语言丰富。
- 开发者自己必须能看懂AI在写什么,才能把握住整个项目的质量。更关键的是,大语言模型的训练数据中Zig代码的占比极低,这意味着AI生成Zig代码的质量和准确率远不如JavaScript、Python等主流语言。
这是一个非常务实的判断——本质上是在「技术新鲜感」和「工程可控性」之间做出了理性取舍。AI写代码的速度快到你很难跟上,如果你对语言本身不够熟悉,就无法有效审查AI生成的代码质量。最终他选择了自己最擅长的JavaScript,并且整个项目零依赖,所有功能都从零开发。
「零依赖」意味着项目不引入任何第三方npm包,所有功能——包括HTTP请求、终端交互、文件操作、JSON解析等——全部使用Node.js原生API或从零实现。这种做法在JavaScript社区中相对罕见,因为该生态以依赖链复杂著称(著名的left-pad事件就是例证)。零依赖的优势在于:安装速度极快、没有供应链安全风险、包体积极小、不会因上游依赖更新而意外崩溃。缺点是开发工作量更大,需要开发者对底层API有深入理解。对于一个学习性质的项目来说,这恰恰是最好的选择——每一行代码都是自己写的,理解也最为透彻。

关键洞察:慢一些,代码质量才能高一些
开发者提出了一个颇具深意的观点:AI写代码的速度快到你很难跟上,慢一些才能让你的项目质量高一些。 关键是人在其中起到的作用——不是被AI的速度裹挟,而是保持自己的节奏和判断力。这对所有使用AI编程的开发者都是一个重要提醒。
Token优化策略:Agent省钱的核心方法
四大Token消耗优化手段
Token是大语言模型计费和处理文本的基本单位,中文大约每1-2个字对应一个Token,英文大约每个单词对应1-1.5个Token。每次API调用的费用由输入Token(Prompt)和输出Token(Completion)共同决定。对于一个需要频繁多轮交互的Agent来说,Token消耗的优化直接决定了使用成本。
在保证准确率的前提下,开发者在Agent中实现了多种减少Token消耗、提升缓存命中率的方法:
- 内部工具输出截断:工具返回的结果往往冗长,对其进行智能截断可以大幅减少Token消耗
- 对话历史压缩:随着对话轮次增加,历史消息会越来越长,通过压缩策略保留关键信息
- 丢弃孤立工具消息:清理那些不再被引用的工具调用记录
- 固定系统提示前缀:保持系统提示的前缀不变,最大化利用DeepSeek的缓存机制
其中第四点尤为关键。DeepSeek的缓存机制(Context Caching)是一种服务端优化:当多次请求的前缀内容相同时,服务端会复用之前计算好的KV Cache(键值缓存,Transformer模型中存储注意力计算中间结果的数据结构),从而大幅降低计算成本和响应延迟。缓存命中的Token通常按原价的十分之一甚至更低计费。这就是为什么「固定系统提示前缀」能显著降低成本——每次对话的系统提示部分都能命中缓存,只有新增的用户消息和工具结果需要全价计算。
值得一提的是,DeepSeek本身的缓存效果就很好,再配合这些优化手段,可以用更低的价格消耗更多Token,实现更好的性价比。
实战演示:让Agent修改自己的代码
自举式开发的实际效果
自举(Bootstrapping)是计算机科学中的经典概念,最著名的例子是C语言编译器用C语言编写自身。在这个项目中,「自举」指的是用Seekran Agent来开发和改进Seekran自身的代码。这不仅是一种高效的开发方式,更是对Agent能力的终极验证——如果一个编程Agent连自己的代码都无法理解和修改,那它的实用性就值得怀疑。
光说不练假把式。开发者让Agent实际修改自己的代码来验证效果:退出Agent时会显示会话的统计数据,但提示信息太显眼,需要改得更淡一些。

重新进入Agent后输入修改需求,Agent自动分析代码、定位文件、完成修改。由于没有强制固定中文输出,Agent会根据情况输出英文说明——但如果看不懂,可以直接让它翻译。查看修改结果后,确认修改成功。
这个自举式的开发体验展示了Agent的实际能力:它不仅能帮你写代码,还能理解项目上下文,精准地完成修改任务。自举式开发还形成了一个正反馈循环:Agent的每一次改进都会让下一次自我改进变得更加高效。
自定义功能的灵活扩展
因为是完全自主开发的工具,开发者可以随心所欲地添加喜欢的功能。比如他实现了类似Fish Shell的自动感知与智能补全功能,大大提升了开发效率。这也是从零开发的优势——你对每一行代码都了如指掌,扩展和定制毫无障碍。
总结:从零开发Agent的核心启示
这个从零开发DeepSeek Agent的实践给我们带来了几个重要启示:
- 理解原理比使用框架更重要:当你真正理解了Agent的循环机制,使用任何框架都能更加得心应手
- 技术选型要务实:不要被技术潮流裹挟,选择自己能掌控的技术栈
- 透明化是好的设计:让用户清楚每一步的成本和过程,建立信任
- Token优化是实打实的省钱:缓存命中、历史压缩等策略在实际使用中效果显著
- AI时代,人的判断力更重要:不是追求AI写代码的速度,而是保持对代码质量的把控
两天时间、两块钱成本、零依赖——这个小项目虽然简单,但背后的思考和实践经验值得每一位AI开发者借鉴。
相关推荐

AI零代码复刻《杀戮尖塔》:从架构到美术的完整实践
B站UP主使用Godot引擎和AI工具链,全程零代码复刻经典卡牌肉鸽游戏《杀戮尖塔》。详解架构文档先行、AI迭代编程、美术素材批量生成的完整工作流,项目已开源。

Claude一句话生成10款网页游戏:零代码AI编程实战
用Claude Code一句自然语言提示词生成2048、五子棋、俄罗斯方块等10款网页游戏,全程零代码开发并部署上线。详解AI编程实战流程、工具选择与核心认知转变。

克隆成功App月入3.5万美元:独立开发者验证式创业方法论
前验光师零基础自学编程,通过克隆已验证的成功应用,运营三款产品月入3.5万美元。详解他的四步筛选法、数据驱动验证流程和递进式获客策略。