装了 50 个 Skill,Agent 还是不知道自己能干啥?这个 Rust 小工具救了
你有没有想过:装了几十个 Skill 之后,Agent 自己根本不知道「我能干啥」?
我装了 50+ 个 Skill 之后才发现——每次新会话,Agent 还是要靠猜来决定要不要调某个 Skill,提示词里塞一堆 if 判断,又慢又费 token。问题不是 Skill 太多,而是缺少一个能告诉 Agent「你装了什么、什么时候该用」的清单。
今天给你推荐一个刚冒出来的小工具,正好戳中这个痛点——almanac(包名 lmnc,命令叫 almanac)。
它是什么
cjohnhanson/almanac 是一个Skill 聚合器,定位是「让你装的所有 SKILL.md 变成可被 Agent 检索的清单」。它的核心想法很朴素:与其让 Agent 启动时把几十个 SKILL.md 全塞进上下文(烧 token 还慢),不如生成一份轻量索引,需要时按名字调用。
一条命令 almanac list,就能列出当前库里的所有 Skill;almanac show <name> 加载单个 Skill 的完整指令;almanac index --md --max-bytes 4096 输出一个能塞进 Agent 上下文的 Markdown 索引——还带字节预算控制,4KB 就够了。
装起来超简单
四种装法任选:
cargo install --locked lmnc(需 Rust 1.88)brew install cjohnhanson/tap/almanacuv tool install lmncnpm install -g lmnc
也可以直接试用,不装也能跑:uvx lmnc list 或 npx lmnc list。
它比同类工具强在哪
我之前用 find-skills 那类 registry 检索 Skill,但 almanac 走的是本地 pinned-by-commit的路线——每条 Skill 都被钉到具体的 commit + content hash,update 时还能看到 upstream diff 和重新跑 red-flag scan。
更狠的是它的库叠加机制:你可以在 stores.yml 里声明多个库(shared / upstream / dev),靠「近者优先」覆盖——同一个 Skill 在不同库有不同的版本,本地的永远赢。这对团队协作场景特别有用:公司一套规范库,个人再加一层实验 Skill。
还有三个细节戳我:
- 不依赖 git 程序——所有 git 操作通过
gix库 in-process 完成,连 ssh URL 都直接拒绝(防偷 key) - 机械 red-flag 扫描——
add第一次用会强制--accept,不是无脑信源 - 零配置多平台——同一份 SKILL.md 跨 Claude Code / Codex / Cursor / Gemini CLI 都能用,因为遵循 agentskills.io 开放标准
适合谁用
- 装了一堆 Skill,但 Agent 经常「不知道自己会什么」的人
- 团队想统一管理 Claude Code 项目里的私有 Skill
- 想给 Agent 加 Skill 但不想烧上下文的 token 焦虑党
- 想要一个可审计、可追溯的 Skill 安装清单(每条都带 SHA256)
一个真实的安装例子
# almanac.yml
library: skills
skills:
- name: gaff
source: github:cjohnhanson/gaff
path: skills/gaff
ref: main
rev: 849b76e2…full sha…
sha256: sha256-v1:…
写完跑 almanac sync 就把 Skill pin 住了,下次 almanac show gaff 直接拿到内容。
小结
almanac 现在还很早期(GitHub 才 1 颗星),但思路精准命中了 Skills 生态最痛的那个点:管理 > 安装。一个能「列出我有什么、按需加载、还能跨项目共享」的工具,比单纯的 Skill 仓库更稀缺。
如果你也踩过「装了 30 个 Skill 但 Agent 只会用 3 个」的坑,先给它点个 star,然后跑一行 uvx lmnc list 体验下——大概率你会回来 npm install -g lmnc 的。
GitHub:cjohnhanson/almanac(MIT,Rust 写的,包名是 lmnc 别下错)
评论区
登录后可评论。