新版本桌面端 v0.1.10 已发布,自带 spec.jev 0.1.10
spec.jev

μ · Only what's needed.

只给任务最需要的上下文

spec.jev 是一个编码代理。一个小而快的判定模型 Jev,每一轮替大模型做几十个小决定:什么留在上下文里,这条命令安不安全,活到底干完了没有。大模型把注意力留给正事。

$ npm i -g spec.jev

需要 Node.js 22.19 或更新。装好后在项目目录里运行 spec.jev;第一次用先运行 spec.jev setup 接入一个模型。

macOS · Windows · Linux · 开源(MIT + Apache-2.0)· 基于 pi

看一轮真实的会话

MU · 一轮真实的会话

先判断,再动手

写个方案,上下文里却背着一整套工具;模型越来越会写代码,人却越来越看不懂它在说什么。spec.jev 的办法是把「判断」和「干活」分开:判断交给 Jev,干活交给大模型,讲话交给会说人话的模型。

~/slugify — spec.jev
 +6     .replace(/^-+|-+$/g, "");                                                   
  7 }                                                                               
                                                                                    

                                                                                    
 $ cd /Users/Shared/mu/slugify && npm test 2>&1                                     
                                                                                    
 ... (10 earlier lines, ctrl+o to expand)                                           
 ℹ fail 0                                                                           
 ℹ cancelled 0                                                                      
 ℹ skipped 0                                                                        
 ℹ todo 0                                                                           
 ℹ duration_ms 85.342125                                                            
                                                                                    
 Took 0.3s                                                                          
                                                                                    

 4 个用例全部通过。

 问题:slugify.js 结尾的正则 .replace(/^-/, "") 只去掉了开头的 -,没有处理末尾。

 修复:把正则改为 /^-+|-+$/g,同时去掉首尾的连字符,顺手把 ^- 也加上 + 以支持多个连
 字符的情况。

────────────────────────────────────────────────────────────────────────────────────

────────────────────────────────────────────────────────────────────────────────────
~/slugify (master)
↑6.1k ↓729 R20k CH94.1% $0.035 (sub) 2.5%/200k (auto)     claude-sonnet-4-6 • medium
jev-1.13-free active: multi_step_task -> heavy 699ms Permissions: Full access
真实录屏:spec.jev 0.1.8,判定器是免费的 Jev,模型是 Claude Sonnet 4.6。
桌面端的蜂群页:四只蜂分头调研,箭头是 Jev 判定后确认送达的信息
桌面端的蜂群页:箭头是 Jev 判过、确认送达的信息。
人话看板:在做什么、做到哪了,下面是一行一行的流水
人话看板:在做什么、做到哪了,下面是一行行流水。

你说话的时候

Jev 先读一遍

这是新任务、追问,还是在纠正它?干活时的插话要不要立刻打断?要不要把技能和工具加载进来,还是一句话就能答?

◆ jev-1.13-free multi-step task · full effort · 699 ms

图里是一轮真实的会话。「跑一下测试,把失败的用例修好」进来,不到一秒 Jev 就给出判定:多步任务,全力投入。用不到的技能和 MCP 服务器不进上下文,需要时才打开。

工具返回的时候

输出先过一遍 Jev

一次测试、一次搜索,动辄几百行。Jev 逐块判断哪些现在有用:失败的用例留下,一遍遍刷屏的日志去掉。没进上下文的部分归档,留一个指针,需要时再取回。

网页和 MCP 返回的内容里,冲着模型来的指令会先被拦下。

动手之前

该停的停,不该问的不问

每条命令执行之前,规则先标出有风险的操作,Jev 再确认这是你要的、没有越过你说过的限制。权限分三档:完全访问、Jev 审批、最小权限,随时切换。在「Jev 审批」下,任务明显需要的由 Jev 直接放行,其余的才来问你。

一轮结束的时候

说做完了,要有证据

模型说「好了」的时候,spec.jev 会看这一轮有没有验证过,中途有没有跑偏,要不要退回检查点重来。

用 /goal <条件> 给一个目标,它会一直干到条件成立才停。做没做完由大模型核对,Jev 兜底;同一个错反复出现时,Jev 判断这是不是一条死路。

蜂群

几只蜂一起干活,Jev 站在中间

让几个代理一起啃一个难题,最难的不是派活,是交流。什么都不说,各自走进同一条死路;什么都说,每个人的上下文里全是别人的聊天。

spec.jev 的蜂群里,每个发现 Jev 都判一次值不值得共享,只有对另一只蜂真有用的,才作为上下文传过去。后来的发现推翻了先前的结论,更正会送到每一只收到过它的蜂。

人话看板

干活和讲话,本来就该分开

模型越来越强,汇报却越来越像写给机器看的。spec.jev 里干活的模型照旧用它自己的方式干活;每隔几次工具调用,Jev 读一遍现场,挑出真正算新消息的几条,交给一个专门因为会说人话而选出来的模型,告诉你做到哪了。

运行结束时,你看到的不只是「做完了」,还有它到底做了什么。

刻意不做的事

spec.jev 不做什么

大模型的注意力有限,上下文也是。下面这些,是 spec.jev 特意没做、或者特意换了做法的地方。

01

少打扰你

在「Jev 审批」下,任务明显需要的由 Jev 直接放行,其余的才来问你。

02

不把工具全塞进上下文

开口第一句先判断:闲聊、追问,还是要动手的活。用不到的技能和 MCP 服务器不进上下文。

03

不靠写摘要来压缩

上下文变长时,过期的结果直接丢,不用写摘要;缓存快过期时,判断值不值得续一次。

04

不锁死判定器

40 个判定点,每个都能单独开关、单独换判定器:免费的 Jev、本地的 Laya,或任意一个大模型。

05

不要求先配 key

没配判定器的 key 时,默认由 OpenCode Zen 上免费的 Jev 回答,每天提醒一次。

06

不另起炉灶

命令行基于 pi,pi 的模型、扩展、技能和会话树都在;桌面端基于 AionUi 改造。

40 个判定点各自问什么、改变什么

还有这些

命令行和桌面端,共用一套账号、设置和经验

导入对话Codex、Claude Code 的对话导进来,接着在 spec.jev 里聊。
订阅登录ChatGPT、Claude、Grok、Google,在应用内登录,不用倒腾 key。
经验库你的纠正、绕过的坑会记下来;下次召回了有没有照做,没人照做的经验自己退役。
内置浏览器Jev 一步一步开:看一眼页面,判一次,点一下;提交、付款这类动作先停下来问你。
判定流水每次判定的结论和用时都记下来:/status、spec.jev ledger,桌面端有判定页。
13 种界面语言桌面端界面有简体中文、繁體中文、English、日本語、한국어等 13 种语言。

参与进来

一起把 spec.jev 做好

不配 key 也能用;想换成自己的 TypeSafe key 或别的判定器,见判定器。

喜欢 spec.jev,就去 GitHub 点个 Star

Star 能让更多人看到它。代码、讨论和每一个版本都在仓库里。

在 GitHub 上 Star1