惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
月光博客
月光博客
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
Stack Overflow Blog
Stack Overflow Blog
Engineering at Meta
Engineering at Meta
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
宝玉的分享
宝玉的分享
A
About on SuperTechFans
Vercel News
Vercel News
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
Jina AI
Jina AI
Y
Y Combinator Blog
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI

程序员

V2EX 看到讨论"跨域"的帖子,那个她好像回来了 codex 今天真的是不稳定呀。 火山方舟 Coding Plan 慎买 刚问了大家 openclaw 和 hermes 在什么机器上面玩,求推荐一个机器 GPT-image-2 生成 AI 图片防伪有感 codex pro 5 小时限制已经严重缩水 逆天 Antigravity 动态 JSON 序列化对强类型语言很难吗? 自建了 GPT Coding Plan,遇到了定价问题,请教大家 大家都是在什么设备上玩 openclaw 以及 hermes 的呀? 软考还有一个月就考试了,你们学习了吗? 大伙用 AI 会考虑在 user scope 的 CLAUDE.md/AGENTS.md 里交代 AI 说中文吗 我发现程序员这个群体很大部分其实挺抠的 最近使用 cc 总会莫名其妙的返工, codex 不会 目前体验最好的远程 vibe 工具 想知道大佬们抓包遇到 ssl pinning 都是咋优雅的 解决的? 工业软件的大佬们是怎么 vibe coding 的 最近 chrome 是不是有 bug 啊,一搜索就卡住 分布式异步系统在 vibe coding 下的困境 PHP Native AOT 编译器,支持将 PHP 代码编译为可执行文件,运算性能提高 150 倍 没想到 2026 年,还要浪费大量时间在跨域问题上 DeepSeek V4 这周会出吗? 中转站正式试营 欢迎试用 不掺不假 小米 mimo 升级 v2.5,并且重置了额度 Jenkins, SCM 轮询完全不工作是啥问题啊 赛博斗蛐蛐, AI 模型的简单对比(白嫖版) 使用中转站要擦亮眼睛!不说别的,倍率计算 充值好乱。 买了火山的 Coding Plan 测试得出计费模式 给我的 AI 生成了简历和状态卡, 大家帮忙看下 Ta 能找到啥样的
两天从零开发了 DeepSeek 专属 Agent,我学到了什么?
chunqiuyiyu · 2026-06-17 · via 程序员

前几天,我在网上看到一篇介绍 AI Agent 原理的文章,于是产生了一个想法:能不能从头开发一个自己的 AI Agent ?毕竟只有了解 Agent 的工作原理,使用各种 Agent 工具时,才能更加得心应手。

其实,Agent 的核心并不复杂。它本质上是一个循环:接收用户输入,将上下文发送给大模型,根据模型返回的结果调用内部工具,再把工具结果交给模型继续处理,直到任务完成。

我用了两天时间,开发出了 sekrun 。它已经发布到 npm ,现在通过一条 npx 命令就能直接运行。后端接入的是 DeepSeek V4 Flash 。我很喜欢这个模型:响应迅速、体验流畅,编程能力也不错。对于我目前的开发需求来说,已经完全够用。

执行任务时,sekrun 会显示每一步工具调用,以及对应的耗时和 Token 消耗。每轮生成结束后,还会列出:工具调用步骤数、输入与输出 Token 数量各缓存命中率,这样使用时就能清楚看到额度消耗,主打一个透明。

DeepSeek 本身的上下文缓存价格就很低。开发 sekrun 时,我也针对缓存命中做了一些优化,让它可以用更低的成本处理更多 Token 。sekrun 本身也是用它自己开发出来的,它是一个可以自举的 Agent 。整个开发过程消耗的模型费用大约两块钱,一根雪糕的价格。

最开始,我考虑过使用 Zig 开发。技术论坛里面对这个语言吹得天花乱坠,也有人说进入 AI 编程时代以后,开发语言已经不重要了。但仔细考虑后,还是放弃了。Zig 目前仍处于快速发展阶段,标准库和 API 还可能发生较大变化。更重要的是,我开发 Agent 是为了长期处理真实任务,而不是做一个只能展示的玩具项目。即使代码主要由 AI 编写,我也必须看得懂它写了什么,才能判断实现是否合理,把握整个项目的质量。最后选择了自己非常熟悉擅长的 JavaScript 。

因为目标是学习 Agent 原理,目前 sekrun 没有使用任何第三方依赖。终端界面、工具调用、流式输出、会话管理和 Token 统计,都是从零实现的。也希望大家不要过度歧视 JavaScript 。语言只是工具,真正决定项目质量的,仍然是使用工具的人。AI 写代码的速度已经快到人很难跟上。开发过程中适当慢下来,理解每一次修改,反而更容易保证项目质量。

在保证任务准确率的前提下,我目前主要通过以下方法减少 Token 消耗并提高缓存命中率:

第一,截断内部工具的输出。工具可能返回大量日志和文件内容,但模型通常不需要看到全部结果。只保留与任务有关的部分,可以显著减少上下文长度。
第二,压缩历史对话。当对话越来越长时,将较早的内容总结成简短记录,而不是永久保留所有原始消息。

第三,丢弃孤立的工具消息。如果工具调用已经失去对应的上下文,继续保留这些结果只会浪费 Token ,还可能干扰模型判断。

第四,固定系统提示词前缀。尽量让系统提示词和工具定义保持稳定,使更多上下文能够命中 DeepSeek 的缓存。

因为这是自己从零开发的工具,我可以随时加入自己喜欢的功能。例如,我还实现了类似 Fish Shell 的输入感知和智能补全,可以根据当前输入推荐命令和历史内容,减少重复输入,提高开发效率。

这就是我开发 sekrun 的过程。它目前仍然是一个非常早期的项目,功能也无法与成熟 Agent 相比。但从零实现工具调用、上下文管理、缓存优化和终端交互,让我真正理解了 Agent 是如何工作的。

整个过程很有趣,我也学到了很多,分享给大家。

preivew