如何用 last30days-skill --corpus 把本地笔记目录注册为私有搜索源?
【免费下载链接】last30days-skillAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary项目地址: https://gitcode.com/GitHub_Trending/la/last30days-skill
last30days-skill 默认在 Reddit、X、YouTube、HN、Polymarket 和网页等公开渠道做调研。如果你的调研对象同时存在于自己的笔记里——比如~/notes下的 Markdown 笔记或~/meeting-transcripts目录下的会议记录——可以把这些本地目录注册为私有搜索源,让引擎在每次调研中把它们和公开源一起检索、排序,并把命中结果单独标注在From your files区块里。这个能力完全离线:corpus 文件只在本地读取,不会经过任何源 HTTP 客户端,也不会转发到远程后端。
本文基于仓库中 CONFIGURATION.md 的 “Local corpus (your files)” 一节和 skills/last30days/SKILL.md 的本地 corpus 说明,覆盖两条注册路径(一次性参数和持久化注册)、执行方式和结果验证。
前提:目录里放什么
引擎扫描注册目录中的.md/.txt文件,这是私有源默认支持的范围。如果目录里有 PDF,只有当pdftotext在 PATH 上时才会被提取,否则该文件跳过并在输出中留下说明。
新鲜度用的是文件修改时间(mtime),普通的 30 天调研窗口同样适用:也就是说,一次默认运行只会把最近 30 天内修改过的笔记算进结果,更早修改的文件不会命中,除非你显式加--corpus-all-time。
安装 skill 本身见 README.md(例如npx skills add mvanhorn/last30days-skill -g或 Claude Code 的/plugin install last30days),本文不展开。
路径一:一次性--corpus参数(当前运行的私有源)
直接调用引擎脚本时,把每个笔记目录写成一个可重复的--corpus <dir>参数。CONFIGURATION.md 给出的示例命令是:
python3 skills/last30days/scripts/last30days.py "MCP servers" \ --corpus ~/notes --corpus ~/meeting-transcripts要点:
- 参数可重复,每个参数对应一个目录;
- 这个参数只对本次运行生效,跑完即失效,适合临时把某一两个目录混进某次调研;
- 该调用是“直接引擎脚本”形式(脚本路径相对于仓库根目录),面向脚本化或开发场景;日常在 Agent 里的用法是斜杠命令体验(见下一节)。
如果确实需要纳入 30 天窗口之外的旧文件,在同一命令后追加--corpus-all-time:CONFIGURATION.md 明确说明,不加这个 flag 时,30 天运行只包含这几天内修改过的文件;SKILL.md 也要求只有在用户明确要求包含旧文件时才加它。
路径二:LAST30DAYS_CORPUS_DIRS持久化注册(默认生效)
想让某些目录长期作为私有源,把它们登记到~/.config/last30days/.env:
# ~/.config/last30days/.env LAST30DAYS_CORPUS_DIRS=~/notes:~/meeting-transcripts # LAST30DAYS_CORPUS_IN_EXPORT=1 # explicit agent-JSON opt-in; off by default- macOS/Linux 用
:分隔多个路径,Windows 用;; - 配置后无需再传任何参数,每次运行都会自动激活这些目录;
- 文档同时建议保持斜杠命令体验为主:在对话中让
/last30days包含你已注册的笔记,Agent 会把提供的目录转成前面那种可重复的--corpus参数(SKILL.md 的 “Local corpus source” 一节)。
LAST30DAYS_CORPUS_IN_EXPORT=1是另一个隐私开关,与“注册”本身无关:默认情况下 corpus 证据会从 agent JSON 导出中剔除,只有明确设置了这个变量,agent JSON(写入本地 stdout/文件)里才会包含 corpus 结果。除非你有意为之,否则保持注释状态。
执行调研并确认私有源真的在工作
注册完成后跑一次正常调研(斜杠命令或上面的直接引擎命令均可),按下面两步核对:
1. 用--diagnose确认corpus在引擎的可用源集合里。
python3 skills/last30days/scripts/last30days.py --diagnose--diagnose输出 JSON,其中available_sources数组是引擎在凭据解析后计算的权威源集合。SKILL.md 给出了 token 到显示名的映射,corpus对应 “Your files”——看到corpus出现在available_sources里,说明目录已被识别。
2. 在运行输出里找带 🔒 徽章的From your files区块。
命中结果会渲染在这个独立区块下,这是判断私有源产生了实际命中的直接证据;测试代码(tests/test_corpus_source.py)也断言了## From your files出现在渲染结果中。corpus 的排序走确定性的本地打分,绕开远程 reranker/fun-scoring 提示,也不占用网络源的并发和重试预算。
隐私边界:知道你的笔记不会流向哪里
CONFIGURATION.md 对 corpus 的隐私约定值得逐条了解,因为这也决定了“验证时该看什么输出”:
- corpus 文件只在本地读取,永不通过源 HTTP 发送,永不转发到
LAST30DAYS_API_BASE,永不进入远程 reranker/fun-scoring 提示; - 如果你同时配置了
LAST30DAYS_API_KEY/LAST30DAYS_API_BASE远程后端,配置了本地 corpus 时是隐私例外:引擎会绕过托管后端、在本地运行,避免文件内容被转发; - corpus 候选默认被从
--publish-html、library feed --publish和版本化的 agent JSON 导出中剔除,包括 corpus 派生的集群标题和源结果; - 提取文本按文件 mtime 缓存在
~/.config/last30days/corpus-cache.json(权限0600),含 corpus 的last-report.json缓存同样收紧为0600。随时删除这两个缓存文件即可清空。
一个容易踩的验证盲区:--emit=json --json-profile=agent的默认输出按上一条规则不含corpus 结果,所以用 agent JSON 核对“有没有命中”会看到空;docs/reference/json-export.md 说明未版本化的rawprofile 是完整的本地调试转储,可以包含 corpus 路径和文本——但它是本地调试物,文档明确要求不要把它重定向到外部系统,除非你有意为之。
限制与不适用项
- 只有
.md/.txt(及pdftotext可用时的.pdf)会被扫描;其他扩展名不在私有源范围内; - 不注册任何 API key,corpus 源是免费的离线源(CONFIGURATION.md 的源列表中 Required for 一栏即
--corpus <dir>或LAST30DAYS_CORPUS_DIRS); - 默认只覆盖 30 天修改窗口内的文件;旧文件需要
--corpus-all-time,且 SKILL.md 要求这是用户明确提出才加; - 含 corpus 的运行产物按文档要求保持仅属主可读,不要随手把带 corpus 的本地报告分享或上传。
【免费下载链接】last30days-skillAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary项目地址: https://gitcode.com/GitHub_Trending/la/last30days-skill
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考