这周 GitHub 上冒出两个气质完全相反的项目,都值得单拎出来讲。一个叫 needle,往死里做小:整个模型 8–29MB,主战场是单片机、手表和车机。另一个叫 OpenViking,火山引擎开源的 Agent 上下文数据库,往大了做:把记忆整个铺成一个文件系统,随便你翻。一个收,一个放。
needle:把大模型拆到只剩干活的骨头
cactus-compute/needle 现在 14.1K 星,Apache-2.0。README 第一句就把定位钉死了:不是聊天模型,是”自动化基础模型”,只干四件事——工具调用、结构化抽取、句向量、语音识别。
身材小得离谱:2-bit 量化,整个模型就是单个 8–29MB 的二进制文件,官方列的目标设备是手机、可穿戴、智能家居、机器人、车机和微型控制器。凭什么能这么小?换了套叫 Simple Attention Network 的结构:FFN 换成 Monarch-Hadamard MLP,参数大头寄存在 engram n-gram 记忆里,121M 参数的模型只做 50M 的算术量。还能按层裁,2 到 20 层,每一层深度都是个能部署的模型。
干活的逻辑也很直白。你把函数表给它,它自己挑对函数、从你说的话里把每个参数填好;你说两件事,就按顺序返回两个调用;没有工具能覆盖你的需求,它就返回空列表——不猜。结构化抽取靠”字节级语法”:从你声明的 schema 编译出一套受限词表,逐 token 锁死,输出必定能被解析。语音识别用同引擎的 Whistle,一段音频进去,转写和工具调用一次返回一个 JSON。
微调路线也算务实:本地 LoRA 只动注意力投影(4-bit),官方平台是整模型 2-bit 微调。按官方口径,DroidCall 上微调后每个子网涨 18–36 个点,4 层以上的子网从 29M 参数起就超过 DeepSeek V4 Flash。
实话部分:二进制默认开遥测,要彻底关得同时设 NEEDLE_TELEMETRY=0 和 DO_NOT_TRACK=1;它是拿通用聊天能力换的端侧精度,别指望它陪你唠嗑;工具链基本是 Cactus 自家的那套,生态还在早期。
OpenViking:Agent 的记忆不该是黑盒
volcengine/OpenViking,40.3K 星,AGPL-3.0,今年 1 月开源,已经 2800 多次提交。它的做法是把 Agent 的记忆、知识和技能统一收进一个 viking:// 虚拟文件系统:Agent 用 ls、tree、read、write、grep 操作记忆,你也能随时打开目录看它到底记了什么。每个目录带自动生成的摘要,Agent 先扫摘要,再决定读哪块。
官方评测(拿 Doubao 2.0 Pro 当 VLM)的账:接入后三种 Agent 集成的 LoCoMo 准确率到 80–83%,原生记忆只有 24–57%;输入 token 少 34.3%–91.0%,查询时延低 58.45%–66.10%。tau2-bench 上,经验记忆让 Retail 成功率涨 6.87 个百分点,Airline 涨 11.87 个百分点。这些是官方自测数字,方向可信,但别当第三方结论。
接入方式接地气:一个安装脚本,自动检测本机的 Claude Code、Codex、Cursor、TRAE、OpenCode 再装记忆插件;LangChain/LangGraph 和微软 Agent Framework 有官方集成包。自部署要 uv、Python 3.10+,外加一套 embedding 和 VLM 服务。
实话部分:AGPLv3,想闭源商用先看许可证;自部署得另养一个模型服务,”省 token”的账要连这部分一起算;插件装进你天天用的 agent,改的是没备份的工作流,先拿测试机试。
写在最后
两个项目其实是同一件事的两头:AI 要留在本地闭环。needle 把模型做小、塞进设备,让推理不出机器;OpenViking 把记忆摊开成看得见的目录,让 Agent 的”记性”能审计、能编辑。玩硬件的先把 needle 的 .cact 拿来拆,天天泡 coding agent 的先试 OpenViking。想在自机跑大模型的,之前这篇 Strata 实测可以对照着看。