本文深入解析了 Hermes 框架中技能溯源与使用追踪系统阐述 Curator 如何通过遥测数据而非文件系统判断技能有效性。文章介绍了技能分类、显式标记机制、三类计数器设计以及原子写策略并分析了 Curator 的决策流程和常见坑。对于想要了解大模型技能管理机制的小白和程序员本文提供了实用的技术细节和优化建议。Curator 怎么判断一个技能「有用」还是「该淘汰」它靠什么信号做决策答案就在今天这篇。很多 Agent 框架写技能、用技能但从不记录「谁用过、用了多少次、最后一次用是什么时候」。结果 Curator 看着一堆技能完全不知道哪些在工作、哪些已经是僵尸——只能盲猜要么什么都不动要么误删有用的。这个坑的根源是把技能当静态文件忘了它们是活的资产。Hermes 的解法是一套完整的技能溯源 使用追踪系统每个 Agent 创建的技能从诞生起就被打上「溯源标签」每一次被查看、被使用、被修改都会更新遥测计数器Curator 靠这些信号做出准确的留/删决策。今天从源码层逐层解剖这套系统。01 为什么不能靠「文件存在」推断技能是否有用先想一个场景你的~/.hermes/skills/目录里有 50 个技能文件夹。Curator 该怎么判断哪些该留、哪些该删最朴素的想法按时间戳排序超过 30 天没改动的归档掉。但这个方法至少有三个致命问题问题一创建时间不等于最后活跃时间。 一个技能在 3 个月前写好但每天都在用——按时间戳会误删。问题二bundled 技能和 agent 创建的技能长一模一样。 如果靠文件系统推断你不知道这个技能是官方出厂的还是 Agent 昨天写的。官方技能不能动Agent 写的才是 Curator 的管辖范围。问题三「从没用过」和「刚创建」在文件系统上没有区别。 一个 2 分钟前生成的技能和一个「已创建 90 天但从没被调用过」的僵尸技能文件目录结构完全相同。Hermes 的设计结论不能靠文件系统推断使用状态必须有独立的遥测数据层。02 溯源系统三类技能两道防线Hermes 把所有技能分成三类只有第三类才是 Curator 的管辖范围技能类型来源Curator 能动它吗标记位置Bundled 技能随 Hermes 出厂❌ 绝对不能.bundled_manifestHub 安装技能用户通过 Skills Hub 安装❌ 绝对不能.hub/lock.jsonAgent 创建技能skill_manage(actioncreate)✅ 才能管辖.usage.json中created_byagent两道防线取并集只要命中任一防线就排除在外# tools/skill_usage.py — 两道防线合并判断 def is_agent_created(skill_name: str) - bool: 两道防线取并集既不是 bundled 也不是 hub 安装的才是 agent 创建的 off_limits _read_bundled_manifest_names() | _read_hub_installed_names() return skill_name not in off_limits # 第一道防线读取 .bundled_manifest格式name:hash 每行一条 def _read_bundled_manifest_names() - Set[str]: manifest _skills_dir() / .bundled_manifest if not manifest.exists(): return set() return {line.split(:, 1)[0].strip() for line in manifest.read_text().splitlines() if line.strip()}关键 opt-in 设计即使是 Agent 创建的技能如果没有在.usage.json里写过created_by agent也不会进入 Curator 管辖范围。这个「显式标记」设计防止了手动写的技能被误删def _is_curator_managed_record(record: Any) - bool: if not isinstance(record, dict): return False # 必须显式标记不靠文件系统推断 return record.get(created_by) agent or record.get(agent_created) is True def mark_agent_created(skill_name: str) - None: skill_manage(actioncreate) 自动调用将技能纳入 Curator 管辖 def _apply(rec: Dict[str, Any]) - None: rec[created_by] agent _mutate(skill_name, _apply)03 使用遥测sidecar 设计三类计数器Hermes 用一个叫.usage.json的旁路文件sidecar记录所有使用数据而不是写进 SKILL.md 本身。为什么 sidecar 而不是 frontmatter方案优点缺点写入 SKILL.md frontmatter数据和技能在一起直观污染用户内容bundled 技能 git pull 会冲突频繁写导致 git diff 噪音独立 sidecar.usage.json不污染技能内容原子写独立读写数据和内容分离需要两次文件操作每个技能的 usage record 结构——每个字段都有精确语义# tools/skill_usage.py — usage record 完整结构 def _empty_record() - Dict[str, Any]: return { created_by: None, # agent → Curator 管辖 use_count: 0, # 被加载进 prompt path 的次数硬信号 view_count: 0, # skill_view() 查看次数软信号 last_used_at: None, # ISO8601 时间戳 last_viewed_at: None, patch_count: 0, # 被 skill_manage patch/edit 修改次数 last_patched_at: None, created_at: _now_iso(), # 创建时间仅用作兜底 anchor state: STATE_ACTIVE, # active / stale / archived pinned: False, # True → 绕过所有自动状态迁移 archived_at: None, }三类计数器各自对应不同触发点# bump_use技能真正被 Agent 执行时触发这是最重要的信号 def bump_use(skill_name: str) - None: def _apply(rec): rec[use_count] int(rec.get(use_count) or 0) 1 rec[last_used_at] _now_iso() _mutate(skill_name, _apply) # bump_viewskill_view() 查看时触发查看 ≠ 使用 def bump_view(skill_name: str) - None: def _apply(rec): rec[view_count] int(rec.get(view_count) or 0) 1 rec[last_viewed_at] _now_iso() _mutate(skill_name, _apply) # bump_patch技能内容被修改时触发代表维护活跃度 def bump_patch(skill_name: str) - None: def _apply(rec): rec[patch_count] int(rec.get(patch_count) or 0) 1 rec[last_patched_at] _now_iso() _mutate(skill_name, _apply)最关键的细节latest_activity_at()函数故意排除了created_atdef latest_activity_at(record: Dict[str, Any]) - Optional[str]: 返回最新真实活动时间——三维时间取最大刻意不含 created_at latest_dt, latest_raw None, None for key in (last_used_at, last_viewed_at, last_patched_at): raw record.get(key) dt _parse_iso_timestamp(raw) if dt and (latest_dt is None or dt latest_dt): latest_dt, latest_raw dt, str(raw) return latest_raw # 返回 None 意味着从未被使用/查看/修改过 # Curator 遇到 None 时以 created_at 为 stale 计时起点这个设计防止了一个反直觉的 bug刚创建的技能created_at是「今天」如果拿created_at做活跃判断它会被当作「今天活跃」——但实际上它从来没被用过。排除created_at之后latest_activity_at None就精确地表达了「从未真正活跃过」。04 原子写sidecar 的并发安全.usage.json是多进程共享文件——主对话 Agent、后台 Curator、CLI 命令可能同时读写。Hermes 用两层机制保证安全层一文件锁Unixfcntl/ Windowsmsvcrt序列化跨进程读-改-写层二tempfile os.replace保证写入要么完整要么不发生不会出现半写状态。# 两层并发安全先加锁再原子替换 contextmanager def _usage_file_lock(): lock_path _usage_file().with_suffix(.json.lock) fd open(lock_path, a, encodingutf-8) try: fcntl.flock(fd, fcntl.LOCK_EX) # 排他锁其他进程阻塞等待 yield finally: fcntl.flock(fd, fcntl.LOCK_UN) # 释放锁 fd.close() def save_usage(data: Dict) - None: path _usage_file() fd, tmp_path tempfile.mkstemp(dirstr(path.parent), prefix.usage_, suffix.tmp) try: with os.fdopen(fd, w, encodingutf-8) as f: json.dump(data, f, indent2, sort_keysTrue, ensure_asciiFalse) f.flush() os.fsync(f.fileno()) # 强制刷盘 os.replace(tmp_path, path) # 原子替换——要么新文件要么旧文件不存在中间态 except BaseException: try: os.unlink(tmp_path) except OSError: pass raise同样的tempfile os.replace模式在.curator_state、.bundled_manifest中也有使用——这是 Hermes 整个持久化层的统一规范。05 Curator 如何读信号做决策Curator 通过agent_created_report()拿到每个技能的聚合状态报告再渲染成 LLM 可读的候选列表# 报告聚合补全缺失字段 计算派生指标 def agent_created_report() - List[Dict[str, Any]]: data load_usage() rows [] for name in list_agent_created_skill_names(): rec data.get(name) or _empty_record() for k, v in _empty_record().items(): rec.setdefault(k, v) # 向后兼容补全旧版本缺失字段 row {name: name, rec} row[last_activity_at] latest_activity_at(row) # 三维时间取最大 row[activity_count] activity_count(row) # useviewpatch 总和 rows.append(row) return rows渲染成 LLM 候选列表的实际效果Agent-created skills (12): - pdf-extraction stateactive pinnedno activity23 use18 view5 patches2 last_activity2026-05-20T14:32:1100:00 - slack-notifier statestale pinnedno activity2 use1 view1 patches0 last_activity2026-03-01T09:11:2200:00 - old-debug-helper statestale pinnedno activity0 use0 view0 patches0 last_activityneveractivity0且last_activitynever的技能就是 Curator LLM 审查 pass 的重点目标——要么合并进更宽泛的 umbrella skill要么归档清理。06 常见坑坑 1以为view_count高就代表「有用」view_count只是被skill_view()查看过——Curator 自己在 LLM 审查时也会触发 view。真正的「有用」信号是use_count技能被加载进 prompt pathAgent 实际执行了这个技能的指令。两个数字差很大时说明这个技能「看起来相关但 Agent 最终没用上」。坑 2直接写文件创建技能没调用mark_agent_created()如果用skill_manage(actioncreate)之外的方式比如直接在磁盘写文件创建了一个技能但没有在.usage.json里写created_by agentCurator 永远看不见它——既不优化也不清理。解决方法手动调用mark_agent_created(skill_name)补标记。坑 3latest_activity_at和created_at的语义混淆「一个技能创建了 35 天但从来没被用过应该归档吗」Hermes 的答案是看latest_activity_at——如果返回None从没真正活跃Curator 以created_at为锚点计算时长。创建超 30 天且latest_activity_atNone的技能会先被标记为stale再进入归档候选名单。坑 4以为 pinned 技能只是「暂时保护」pinnedTrue是绕过所有自动状态迁移的永久 opt-out不是「暂时跳过这次」。常见场景核心基础设施技能每 7 天才用一次但绝对不能归档——hermes curator pin skill-name一次性永久保护。想取消保护hermes curator unpin skill-name。总结.usage.jsonsidecar 是技能遥测的唯一真相来源——不靠文件系统推断不写进用户内容独立存储原子写。三类技能两道防线——bundled manifest hub lock.json 并集只有 Agent 显式mark_agent_created()的技能才进入 Curator 管辖防止误删官方技能。use_count才是硬信号view_count是软信号——Curator 优先看「被真正执行了多少次」而不是「被查看了多少次」两者差距大的技能往往是「候选名字频繁出现但最终没被用上」。latest_activity_at刻意排除created_at——新技能诞生瞬间不会被误判为「今天活跃」返回None精确表达「从未真正活跃过」Curator 才能区分「新技能」和「僵尸技能」。原子写 文件锁双层保护——多进程并发读写.usage.json不会出现数据损坏任何进程崩溃都不会留下半写状态。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取
Curator 如何判断技能「有用」与「该淘汰」?小白程序员必看!
发布时间:2026/6/1 22:14:21
本文深入解析了 Hermes 框架中技能溯源与使用追踪系统阐述 Curator 如何通过遥测数据而非文件系统判断技能有效性。文章介绍了技能分类、显式标记机制、三类计数器设计以及原子写策略并分析了 Curator 的决策流程和常见坑。对于想要了解大模型技能管理机制的小白和程序员本文提供了实用的技术细节和优化建议。Curator 怎么判断一个技能「有用」还是「该淘汰」它靠什么信号做决策答案就在今天这篇。很多 Agent 框架写技能、用技能但从不记录「谁用过、用了多少次、最后一次用是什么时候」。结果 Curator 看着一堆技能完全不知道哪些在工作、哪些已经是僵尸——只能盲猜要么什么都不动要么误删有用的。这个坑的根源是把技能当静态文件忘了它们是活的资产。Hermes 的解法是一套完整的技能溯源 使用追踪系统每个 Agent 创建的技能从诞生起就被打上「溯源标签」每一次被查看、被使用、被修改都会更新遥测计数器Curator 靠这些信号做出准确的留/删决策。今天从源码层逐层解剖这套系统。01 为什么不能靠「文件存在」推断技能是否有用先想一个场景你的~/.hermes/skills/目录里有 50 个技能文件夹。Curator 该怎么判断哪些该留、哪些该删最朴素的想法按时间戳排序超过 30 天没改动的归档掉。但这个方法至少有三个致命问题问题一创建时间不等于最后活跃时间。 一个技能在 3 个月前写好但每天都在用——按时间戳会误删。问题二bundled 技能和 agent 创建的技能长一模一样。 如果靠文件系统推断你不知道这个技能是官方出厂的还是 Agent 昨天写的。官方技能不能动Agent 写的才是 Curator 的管辖范围。问题三「从没用过」和「刚创建」在文件系统上没有区别。 一个 2 分钟前生成的技能和一个「已创建 90 天但从没被调用过」的僵尸技能文件目录结构完全相同。Hermes 的设计结论不能靠文件系统推断使用状态必须有独立的遥测数据层。02 溯源系统三类技能两道防线Hermes 把所有技能分成三类只有第三类才是 Curator 的管辖范围技能类型来源Curator 能动它吗标记位置Bundled 技能随 Hermes 出厂❌ 绝对不能.bundled_manifestHub 安装技能用户通过 Skills Hub 安装❌ 绝对不能.hub/lock.jsonAgent 创建技能skill_manage(actioncreate)✅ 才能管辖.usage.json中created_byagent两道防线取并集只要命中任一防线就排除在外# tools/skill_usage.py — 两道防线合并判断 def is_agent_created(skill_name: str) - bool: 两道防线取并集既不是 bundled 也不是 hub 安装的才是 agent 创建的 off_limits _read_bundled_manifest_names() | _read_hub_installed_names() return skill_name not in off_limits # 第一道防线读取 .bundled_manifest格式name:hash 每行一条 def _read_bundled_manifest_names() - Set[str]: manifest _skills_dir() / .bundled_manifest if not manifest.exists(): return set() return {line.split(:, 1)[0].strip() for line in manifest.read_text().splitlines() if line.strip()}关键 opt-in 设计即使是 Agent 创建的技能如果没有在.usage.json里写过created_by agent也不会进入 Curator 管辖范围。这个「显式标记」设计防止了手动写的技能被误删def _is_curator_managed_record(record: Any) - bool: if not isinstance(record, dict): return False # 必须显式标记不靠文件系统推断 return record.get(created_by) agent or record.get(agent_created) is True def mark_agent_created(skill_name: str) - None: skill_manage(actioncreate) 自动调用将技能纳入 Curator 管辖 def _apply(rec: Dict[str, Any]) - None: rec[created_by] agent _mutate(skill_name, _apply)03 使用遥测sidecar 设计三类计数器Hermes 用一个叫.usage.json的旁路文件sidecar记录所有使用数据而不是写进 SKILL.md 本身。为什么 sidecar 而不是 frontmatter方案优点缺点写入 SKILL.md frontmatter数据和技能在一起直观污染用户内容bundled 技能 git pull 会冲突频繁写导致 git diff 噪音独立 sidecar.usage.json不污染技能内容原子写独立读写数据和内容分离需要两次文件操作每个技能的 usage record 结构——每个字段都有精确语义# tools/skill_usage.py — usage record 完整结构 def _empty_record() - Dict[str, Any]: return { created_by: None, # agent → Curator 管辖 use_count: 0, # 被加载进 prompt path 的次数硬信号 view_count: 0, # skill_view() 查看次数软信号 last_used_at: None, # ISO8601 时间戳 last_viewed_at: None, patch_count: 0, # 被 skill_manage patch/edit 修改次数 last_patched_at: None, created_at: _now_iso(), # 创建时间仅用作兜底 anchor state: STATE_ACTIVE, # active / stale / archived pinned: False, # True → 绕过所有自动状态迁移 archived_at: None, }三类计数器各自对应不同触发点# bump_use技能真正被 Agent 执行时触发这是最重要的信号 def bump_use(skill_name: str) - None: def _apply(rec): rec[use_count] int(rec.get(use_count) or 0) 1 rec[last_used_at] _now_iso() _mutate(skill_name, _apply) # bump_viewskill_view() 查看时触发查看 ≠ 使用 def bump_view(skill_name: str) - None: def _apply(rec): rec[view_count] int(rec.get(view_count) or 0) 1 rec[last_viewed_at] _now_iso() _mutate(skill_name, _apply) # bump_patch技能内容被修改时触发代表维护活跃度 def bump_patch(skill_name: str) - None: def _apply(rec): rec[patch_count] int(rec.get(patch_count) or 0) 1 rec[last_patched_at] _now_iso() _mutate(skill_name, _apply)最关键的细节latest_activity_at()函数故意排除了created_atdef latest_activity_at(record: Dict[str, Any]) - Optional[str]: 返回最新真实活动时间——三维时间取最大刻意不含 created_at latest_dt, latest_raw None, None for key in (last_used_at, last_viewed_at, last_patched_at): raw record.get(key) dt _parse_iso_timestamp(raw) if dt and (latest_dt is None or dt latest_dt): latest_dt, latest_raw dt, str(raw) return latest_raw # 返回 None 意味着从未被使用/查看/修改过 # Curator 遇到 None 时以 created_at 为 stale 计时起点这个设计防止了一个反直觉的 bug刚创建的技能created_at是「今天」如果拿created_at做活跃判断它会被当作「今天活跃」——但实际上它从来没被用过。排除created_at之后latest_activity_at None就精确地表达了「从未真正活跃过」。04 原子写sidecar 的并发安全.usage.json是多进程共享文件——主对话 Agent、后台 Curator、CLI 命令可能同时读写。Hermes 用两层机制保证安全层一文件锁Unixfcntl/ Windowsmsvcrt序列化跨进程读-改-写层二tempfile os.replace保证写入要么完整要么不发生不会出现半写状态。# 两层并发安全先加锁再原子替换 contextmanager def _usage_file_lock(): lock_path _usage_file().with_suffix(.json.lock) fd open(lock_path, a, encodingutf-8) try: fcntl.flock(fd, fcntl.LOCK_EX) # 排他锁其他进程阻塞等待 yield finally: fcntl.flock(fd, fcntl.LOCK_UN) # 释放锁 fd.close() def save_usage(data: Dict) - None: path _usage_file() fd, tmp_path tempfile.mkstemp(dirstr(path.parent), prefix.usage_, suffix.tmp) try: with os.fdopen(fd, w, encodingutf-8) as f: json.dump(data, f, indent2, sort_keysTrue, ensure_asciiFalse) f.flush() os.fsync(f.fileno()) # 强制刷盘 os.replace(tmp_path, path) # 原子替换——要么新文件要么旧文件不存在中间态 except BaseException: try: os.unlink(tmp_path) except OSError: pass raise同样的tempfile os.replace模式在.curator_state、.bundled_manifest中也有使用——这是 Hermes 整个持久化层的统一规范。05 Curator 如何读信号做决策Curator 通过agent_created_report()拿到每个技能的聚合状态报告再渲染成 LLM 可读的候选列表# 报告聚合补全缺失字段 计算派生指标 def agent_created_report() - List[Dict[str, Any]]: data load_usage() rows [] for name in list_agent_created_skill_names(): rec data.get(name) or _empty_record() for k, v in _empty_record().items(): rec.setdefault(k, v) # 向后兼容补全旧版本缺失字段 row {name: name, rec} row[last_activity_at] latest_activity_at(row) # 三维时间取最大 row[activity_count] activity_count(row) # useviewpatch 总和 rows.append(row) return rows渲染成 LLM 候选列表的实际效果Agent-created skills (12): - pdf-extraction stateactive pinnedno activity23 use18 view5 patches2 last_activity2026-05-20T14:32:1100:00 - slack-notifier statestale pinnedno activity2 use1 view1 patches0 last_activity2026-03-01T09:11:2200:00 - old-debug-helper statestale pinnedno activity0 use0 view0 patches0 last_activityneveractivity0且last_activitynever的技能就是 Curator LLM 审查 pass 的重点目标——要么合并进更宽泛的 umbrella skill要么归档清理。06 常见坑坑 1以为view_count高就代表「有用」view_count只是被skill_view()查看过——Curator 自己在 LLM 审查时也会触发 view。真正的「有用」信号是use_count技能被加载进 prompt pathAgent 实际执行了这个技能的指令。两个数字差很大时说明这个技能「看起来相关但 Agent 最终没用上」。坑 2直接写文件创建技能没调用mark_agent_created()如果用skill_manage(actioncreate)之外的方式比如直接在磁盘写文件创建了一个技能但没有在.usage.json里写created_by agentCurator 永远看不见它——既不优化也不清理。解决方法手动调用mark_agent_created(skill_name)补标记。坑 3latest_activity_at和created_at的语义混淆「一个技能创建了 35 天但从来没被用过应该归档吗」Hermes 的答案是看latest_activity_at——如果返回None从没真正活跃Curator 以created_at为锚点计算时长。创建超 30 天且latest_activity_atNone的技能会先被标记为stale再进入归档候选名单。坑 4以为 pinned 技能只是「暂时保护」pinnedTrue是绕过所有自动状态迁移的永久 opt-out不是「暂时跳过这次」。常见场景核心基础设施技能每 7 天才用一次但绝对不能归档——hermes curator pin skill-name一次性永久保护。想取消保护hermes curator unpin skill-name。总结.usage.jsonsidecar 是技能遥测的唯一真相来源——不靠文件系统推断不写进用户内容独立存储原子写。三类技能两道防线——bundled manifest hub lock.json 并集只有 Agent 显式mark_agent_created()的技能才进入 Curator 管辖防止误删官方技能。use_count才是硬信号view_count是软信号——Curator 优先看「被真正执行了多少次」而不是「被查看了多少次」两者差距大的技能往往是「候选名字频繁出现但最终没被用上」。latest_activity_at刻意排除created_at——新技能诞生瞬间不会被误判为「今天活跃」返回None精确表达「从未真正活跃过」Curator 才能区分「新技能」和「僵尸技能」。原子写 文件锁双层保护——多进程并发读写.usage.json不会出现数据损坏任何进程崩溃都不会留下半写状态。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取