跳到内容
当前位置:首页>下载方法>你下载的那个“AI 技能包”,可能只是换了张皮的提示词

你下载的那个“AI 技能包”,可能只是换了张皮的提示词

  • 2026-10-08 05:31:17
你下载的那个“AI 技能包”,可能只是换了张皮的提示词

拆开一个完整的 skill 长什么样,以及从 skill 到人人能用的产品,中间隔着的是什么


一、先说清楚我为什么来写这篇

我做六爻、大六壬、奇门遁甲、太乙神数,同时也在更新《六爻入门》系列专栏。最近专栏停了一段时间,因为我去干别的了——做子平八字的 AI 技能。

原因很简单:我实在看不下去现在命理开源生态里对 skill 这件事的普遍误解。

打开各种群、各种仓库,你会看到大量标题写着“XX 古籍 AI 技能包”“一键让 AI 学会 XX”的分享。点进去下载,解压,里面是一个 SKILL.md,可能两三万字,把某本书的内容用 AI 转写了一遍,然后……就没有然后了。

这本没错,但它不是 skill。它是一份提示词。

而真正的 skill,是一个完整的技能包——有目录结构、有分层知识、有可执行脚本、有输入输出契约、有测试用例。它用的是文件系统和工具调用这些能力,而这些才是 agent 时代真正新增的东西。

我不想只骂人。骂完别人该怎么做还是不知道,看的人该识别还是识别不了。所以这篇我想做三件事:

  1. 把 skill 的解剖图画清楚,让你以后看任何一个 skill 都知道该翻哪几个地方
  2. 讲明白 skill 和“能给别人用的产品”之间差多远
  3. 顺手介绍一下我做的这个项目:灵爻妙解

会有一些技术名词,但我会尽量用人话讲。不懂 AI 的命理爱好者应该也能看完。


二、Skill 到底是什么:不是文档,是“渐进式披露”

先破除一个误解。

很多人以为 Skill 就是“一段更长的系统提示词”。不对。按 Anthropic 官方给 Agent Skills 的定义,它本质是一个文件夹——里面有 SKILL.md,还可以有脚本、数据、模板、参考资料。

关键不在“能不能写长”,而在于渐进式披露(Progressive Disclosure):一份知识不是一次性全部塞进模型的上下文,而是按需分层加载。

为什么这事重要?因为上下文窗口是有限的、是贵的,也是会被污染的。你把 9.8 万字的《子平真诠评注》一次性塞进对话里,会发生两件事:一是大部分内容跟当前这个问题无关,二是模型在大量无关内容里的注意力会被稀释——它会开始“综合”那些不该它综合的东西。

渐进式披露解决的就是这个。它的加载顺序是这样的:

第一层:只有 frontmatter 常驻。模型平时只看到 name 和 description 两行。它靠这两行判断“用户这个问题该不该调这个技能”。

第二层:命中后才加载SKILL.md正文。这部分是操作说明——输入参数是什么、怎么调脚本、遇到各种情况怎么处理。

第三层:正文里指路,模型自己去读更深的知识文件。比如“取格请先读 rules/00_总纲_取格.md”“问行运请读 rules/90_行运.md”。这些文件在读之前不占用任何上下文。

第四层:脚本和数据是“外部能力”,根本不进上下文。模型只是调用它、拿结果。1155 行排盘代码不需要模型读懂,只需要模型会用。

所以一个 skill 写得好不好,一半的功夫在于这套分层设计得对不对——什么该常驻、什么该按需、什么该外置成代码。这跟“把书写得尽量详细”是完全相反的两件事。


三、一个完整 skill 的解剖图:从开胃菜到硬骨头

我把 skill 里常见的东西按“含金量”分成五层。你可以拿这个当尺子去量你手头的任何 skill。

第一层:SKILL.md 与 frontmatter —— 必需,但只是开胃菜

任何 skill 都得有这个东西:

---name: ZiPingEightChardescription: 子平八字:排盘与《子平真诠》格局法解释。输入姓名、性别、出生日期时刻(当地钟表时间)、出生地,脚本输出结构化命盘 Markdown(六柱信息、藏干、空亡、纳音、神煞、节令、大运、流年、流月及排盘审计)……---

很多人把 90% 的精力花在这里,以为写长就是写好了。其实这一层最难的是description的写法——它决定路由,写不好就等于这个技能不存在。

看两个例子。差的写法:

description: 八字分析技能,帮你解读命盘

这句话的问题是:它只说“我是干什么的”,没说“什么时候该用我”。用户问“今年财运怎么样”的时候,模型凭什么选它?而且如果装了三个八字技能,它们会互相抢答,因为谁都没有声明边界。

好的写法长这样(引自盘叔的开源包,确实是这个包里做得最好的部分):

description: 当用户问"这个八字事业怎么样""能当官吗",而八字月令为正官时使用。先判官格成败与财印双护,再定贵之层级与本格取运,大运总纲另见ziping-xingyun,兼断妻室内助。月令七杀、官杀混杂,或从格化气专旺不适用,健康寿夭不覆盖。

拆开看,它同时交代了四件事:触发场景(问事业、问当官)、触发条件(月令为正官)、让渡关系(大运另见 xingyun,别抢)、以及不覆盖范围(健康寿夭不归我管)。

最后那句“不覆盖”是很多人会漏的。它不只是免责,它是路由卫生——声明了边界,模型才不会拿七杀格去断印绶格的问题。

第二层:知识层 —— 大部分技能包就到这里了

规则、术语、命例、原文。这一层决定“模型答得对不对”,是绝大多数技能包的全部内容。

但同样是规则,做法差很远。真正的分水岭是:这些规则是“给模型看的散文”,还是“可以被判定的条件”?

举例。模糊的写法是:

官星被伤,看整体配合,若印能护官则无碍。

这句话没有错,但模型拿到之后没法执行——“整体配合”是哪几个字段?“印能护官”需要印在哪个位置?它只能凭感觉补全。

可判定的写法是这样的(引自 ZiPingEightChar 的规则条目格式):

### R-官-03 官逢伤用印解- **条件**:月令为正官;天干透伤官克官;四柱透印,且印未被财贴身克破。- **判定**:成格。印解伤而护官,全局关键在印。- **出处**:第三十一篇·论正官- **原文**:“官逢伤而透印以解之……”

区别在哪?条件里出现的每个词,“条件”字段必须能对应到排盘输出的某个具体字段——“月令”对应

节令 的月支,“透干”对应 ## 四柱 的天干,“藏干透出”对应 ## 地支藏干 与 ## 四柱 的对照。

这是我在自己的规则库格式规范里写死的一条硬规则:条件字段不得出现“看组合”“视情况”这类无锚措辞。因为一旦允许模糊,模型就会在这里自由发挥,而它的发挥是不稳定的——同一个盘问两次可能得出两个结论。

还有一个细节:每条规则带 出处 和 原文。这不是为了好看。这是让结论可以被回查——模型给出判断,用户可以问“你依据哪一条”,然后一路追到原文。没有溯源链的规则库,本质上和让模型自由生成没有区别。

ZiPingEightChar 的规则库现状:rules/ 下 16 个文件、380 条编号规则,按格局分成 11_正官格.md 到 19_杂格.md,横切的有 90_行运.md(行运通论)、94_神煞细节.md、95_禁则.md(不得为之事)、96_六亲.md、97_女命.md;另有 sources/ 存放 50 篇原文,平时不加载,只在规则与原文疑似冲突时回查。

95_禁则.md 这个文件我觉得值得单独说一句。它是“负面清单”——明确规定哪些事绝对不准做。比如:神煞、纳音、空亡绝不进入取格、成败、用神相神、格局高低这四层判断,只能在格局定论之后作细节参看。

为什么要专门写一个“不准”的文件?因为大模型有一个顽固的倾向:它会把手上所有信息都拿来综合。你在盘里给了它 13 个神煞,它就会拿神煞去解释格局。而《子平真诠》的立场是“星辰无关格局”——用神煞断格局本身就是错的。

你不明令禁止,它一定会犯。

第三层:脚本层 —— “必须有”和“最好有”的分界线

到这里,就是一个技能包是不是“真的技能”的实质分界线。

命理领域特别容易犯一个错:让模型自己去算。

你问它“1990 年 5 月 14 日上午 8 点半在成都出生,八字是什么”,它会给你一个答案,而且看起来很像那么回事。但这是它“回忆”出来的,不是算出来的。大模型做日期加减、节气推算、经度修正这类事情,准确率低得可怕,而且错得毫无征兆——它不会说“我不确定”,它会非常自信地给你一个错的时柱。

所以凡是涉及历法、天文、地域的计算,必须外置成脚本。这是我的立场,没有商量余地。

ZiPingEightChar 的做法是:

python scripts/cast_chart.py --name 张三 --gender 男 \    --birth ”1990-05-14 08:30” --place ”四川省成都市”

模型只需要会调用这一条命令。背后 1155 行 Python 干了这些事:

  • 真太阳时换算:出生地经度修正 + 均时差修正。上例输入钟表时间 08:30,输出真太阳时 06:30—— 差了两个小时 。不修正的话时柱直接错。
  • 子初换日:真太阳时 23:00 起算次日。日界规则固定,且写进输出的“排盘审计”段。
  • 晚子时提示:约 4% 的盘会落在 23:00–24:00,这时“子正换日”一派会排出不同的日柱与时柱,命盘开头会打出 ⚠️ 提示,解释时必须声明此分歧。
  • 夏令时回拨:1986–1991 年全国实行过夏令时,那几年 4 月中旬到 9 月中旬出生的人,钟表时间要先回拨一小时——“钟表 23 点 ≠ 真太阳时 23 点”。
  • 依赖内置:vendor/ 里带着 tyme4py 1.5.0 和 tzdata,纯 Python 纯数据,用户不用装任何东西。

最后这条看着不起眼,但它是真实世界的胜负手。一个需要用户先 pip install 的技能,在“不懂技术的命理爱好者”手里,等于零。

更关键的是一个设计原则:脚本只算,不断。cast_chart.py 的输出里没有任何一句命理判断,它只吐结构化的命盘 Markdown。所有解释归模型,所有计算归脚本。职责分明,才谈得上各自可验证。

这带来一个额外好处——排盘结果结构化、机器可读,这让它天然能被别的程序消费。这正是灵爻妙解平台上自研排盘引擎的路子,也是我敢把技能和平台放在一起讲的原因:同一套工程思想,一个跑在你本地,一个跑在网页和 App 里。

第四层:契约层 —— 让脚本和模型“接得上”

脚本输出给模型,模型输出给用户。这两次交接都需要契约,否则就是各说各话。

脚本 → 模型 的契约,在 ZiPingEightChar 里叫“输出契约”,它冻结了章节标题:

四柱

地支藏干 ## 四柱空亡 ## 纳音 ## 神煞 ## 节令 ## 大运 ## 流年 ## 流月 ## 排盘审计

这些标题不许改。因为规则库里的“条件”字段是引用这些章节来定位的(规则里写“月令”,指向的就是

节令 段)。这是接口,接口一变,380 条规则全部失锚。有了它,脚本和规则库才能各自独立升级而不互相弄坏。

另外还有退出码约定,这是“出错时怎么办”的契约:

码
含义
模型该做什么
0
成功
读 stdout,进入解释
2
输入不可用(地点无法解析/时间格式错/缺时刻)
按话术追问用户后重试
3
库内部错误
原样报告, 不许猜盘
4
授权不可用
原样转述, 不许绕过

第 3 条是整个设计里我最在意的一条。“不许猜盘”——因为大模型在这时候的第一反应,一定是“那我凭印象估一个吧”。它宁可编也不肯说“我算不出来”。契约必须堵死这条路,SKILL.md 里就得明写。

模型 → 用户 的契约同样重要,而且这是被绝大多数技能包完全忽略的一层。

ZiPingEightChar 的“解释输出契约”规定了一个固定骨架,其中标 ★ 的是强制项:

  1. 排盘口径 —— 真太阳时修正量、夏令时回拨、晚子时分歧声明
  2. 说人话 ★ —— 白话详解,且逐条对应:每个关键判断都要有一条白话条目
  3. 依据备查 —— 术语层的专业判定,按“取格 → 成败 → 用神相神 → 高低 → 行运喜忌”次序
  4. 存疑与边界声明 —— 命中的存疑规则、两可处,如实声明
  5. 结尾标识与免责 ★ —— 固定引用块

这里面有个反直觉的设计:白话在前,术语在后(v2.0 改版的核心)。

为什么?因为命理解读的读者绝大多数不是同行。你跟他讲“官星透干被伤,喜印绶化之”,他看完不知道你在说什么,也不知道自己该干什么。所以成品的呈现顺序是“先说人话,术语放后面备查”,但思考顺序不变——模型必须先把取格、成败、用神相神、高低、行运全部判完,才允许落笔写白话。

契约里还专门写了“说人话段”的两条硬约束:

  1. 不得出现备查段没有的判断——白话段只允许降维表达,不允许新增结论
  2. 不得软化警示——“需要注意”不能变成“应该没事”,凶断照样用大白话说凶

第二条是我在实际测试里最常抓到的毛病。模型天然倾向于讨好用户,你说“这个盘婚姻可能不顺”,它会给你自动打磨成“感情上需要多一点耐心”。两份输出看着无关痛痒,性质完全不同:一个是如实告知,一个是粉饰。

第五层:验证层 —— 凭什么说你是对的

这一层最难,也最见一个作者的诚实程度。

命理技能有个特殊困难:没有标准答案。你说这个八字是官格破格,凭什么?不同流派能吵三天。

但“没有绝对标准答案”不等于“无法验证”。有三件事是可以验的:

第一,排盘可以验。这是纯计算,有唯一正确答案。ZiPingEightChar 有 7 个测试文件,覆盖:

  • test_solar_time.py
     —— 真太阳时换算,配 tests/golden/longitudes.yaml 黄金数据
  • test_timezone.py
     —— 时区解析,配 history_tz.yaml(含历史时区变更)
  • test_equation_of_time.py
     —— 均时差
  • test_day_boundary.py
     —— 换日边界,配 time_boundary.yaml
  • test_e2e.py
     —— 端到端
  • test_license_gate.py
     —— 授权锁
  • test_version_sentinel.py
     —— 版本哨兵

看到 golden/ 这个目录名了吗?黄金数据——人工核对过的标准答案,测试就是拿它们对。这类测试不涉及任何命理判断,纯粹是工程正确性,但它是整个技能的信任地基。第几柱都排错了,后面讲得再漂亮也是空谈。

第二,规则对古法命例的结果可以验。《子平真诠》自己带了大量命例,原书给了判定(比如某造“大贵”、某造“一富而已”)。拿规则去重推这些命例,对得上多少、对不上哪些、对不上的是规则写错了还是原书传抄有错——这是可核查的。

ZiPingEightChar 的规则库跑过原书的黄金命例集,结论是 87 例与原书判定一致、2 例 mismatch、3 例因原书传抄缺陷不可验证。而那两个 mismatch 最后定位出来是规则措辞有问题,已经回修。

这个过程的产物比“我做了验证”这句口号有价值得多。因为承认有 2 例对不上并把原因写出来,恰恰说明后面那 87 例是真跑出来的。

第三,触发路由可以验。装多个技能时,谁会抢答、边界在哪,是可以拿题目测的。盘叔那个开源包在这点上做得不错,技能包/测试题.md 里有 34 道双层诱饵题,专挑最容易抢答出错的边界题(比如“印格走什么运”该归印绶格技能还是行运总纲技能)。

但我要说句公道话,也要说句难听话:这份测试文档里自己写了“测试者为融合执行者本人(非独立测试员)”。自测和盲测是两回事。自己出的题自己答,答对了只说明题目和答案出自同一个脑子,不证明路由清晰。文件里也建议了“正式发布前再派独立测试员盲测一轮”——这个自觉是好的,但这一轮是必须补的,不是可选项。

小结:五层尺子

层
内容
缺失后果
1. 入口
SKILL.md
 + description
技能装了不被触发,或互相抢答
2. 知识
规则/术语/命例/原文,带锚点与溯源
模型自由发挥,结论不稳定、不可复核
3. 脚本
历法/天文/地域计算外置
排盘靠“回忆”,错得毫无征兆
4. 契约
输出结构冻结、退出码、呈现代次
脚本与规则脱节;出错时模型编盘
5. 验证
测试用例、黄金数据、命例重推
无法证明自己是对的,只能自称是对的

前两层是“内容”,后三层是“工程”。开源命理技能包九成以上只做了前两层,然后管它叫“完整技能包”。


四、怎么一眼识别好 skill 和差 skill

上面是结构,下面是实操。拿到一个 skill,按这六条走一遍,十分钟能看个大概。

1. 先看 description:有没有“什么时候用”和“什么时候别用”

好的描述里会同时出现触发场景、触发条件、边界。差的描述只有一句自夸。

红旗:description 写的是“XX 命理分析技能,专业度高,效果好”——这是宣传,不是接口。

2. 看目录:有没有非 markdown 的东西

差:skill/    └── SKILL.md          (一个文件,几千到几万字)好:ZiPingEightChar/    ├── SKILL.md    ├── rules/            16 个文件 · 380 条规则    ├── rules/sources/    50 篇原文(按需回查)    ├── scripts/          排盘引擎 · 1155 行    ├── vendor/           内置依赖,免安装    ├── data/             城市数据等    └── tests/            7 个测试 + golden/

红旗:解压后只有一个 .md。不管它多长。

3. 看规则条目能不能“判定”

随机挑两条规则看它的条件字段。如果出现“看整体”“视情况”“结合判断”“凭经验”——这个规则库在执行层面是空的。

好规则长这样:条件里每个词都能对上排盘输出的某个具体字段。红旗:整本书转写的散文,或者只有结论没有条件(“伤官见官为祸百端”——那什么情况下不为祸?书里明明说了金水伤官喜见官)。

4. 看有没有“不许做”的清单

这点很反直觉,但极其有效。一个成熟的技能一定有禁则。

因为作者只要认真测过,就一定会发现模型乱来的地方,然后必须写成禁止条款。ZiPingEightChar 的 95_禁则.md 有 19 条,明确“神煞、纳音、空亡绝不进入格局四层”。

红旗:从头到尾只有“你应该怎么做”,没有“你不准怎么做”——说明作者要么没测过,要么不敢承认模型会跑偏。

5. 看有没有承认“不知道”的地方

两种,都要看:

一是覆盖声明。ZiPingEightChar 明写:健康、寿夭、女命专论、流年逐岁吉凶不在覆盖范围(因为《子平真诠》本身没有系统论述,不能硬编)。盘叔的包更细,有一张 48 章的覆盖对照表,逐章标注处置方式。

二是存疑标注。遇到原文歧义,规则条目末尾加 > 存疑:……,明确不自行裁决。

红旗:一个技能号称“覆盖八字全领域,健康婚姻财运事业一网打尽”。人类命理师都不敢这么讲,一个技能敢讲。这不是能力,这是没读过书。

6. 看它的数字是怎么来的

技能包宣传里通常有一串漂亮数字:“555 条规则”“140/140 命中”“34 题盲测全对”。

你得追问口径。

  • “命中原文”——抽的是哪几条?抽了多大比例?抽样方法是什么?
  • “盲测全对”——测试员是谁?独立吗?题目和答案是不是同一个人出的?
  • “N 条规则”——有多少条是真正可判定的?有多少是同一句话换了个说法?

有件事我觉得特别值得说。盘叔的包在 清单.md 里自己交代了:横向对比时发现另外两个 AI 生成的包,一个自报 290 条实际 568 条,另一个自报 568 条实际 290 条——两个数字刚好互换,说明台账和实物根本没对上过。

能把自己和他人的数字问题写进文档里,这本身就是可信度。反过来,只报总数、不报口径、不报抽样方法的技能包,数字一律不听。

附:下载前的三分钟自测清单

  •  解压后是否只有一个 .md?→ 是,那它是提示词,不是技能
  • description 里有没有“什么时候不该用我”?→ 没有,装多个技能必抢答
  •  随便两条规则,条件字段能不能对上具体输入字段?→ 对不上,结论不可复现
  •  有没有禁则/不覆盖声明/存疑标注?→ 全无,作者没测过或者不诚实
  •  有没有脚本处理计算类任务?→ 没有而任务涉及历法、天文、地域 → 结果不可信
  •  有没有测试、黄金数据、命例重推记录?→ 没有,那只能叫“作者觉得不错”

五、Skill 和“能用的产品”之间,隔着五道门

现在说第二部分,也是最容易被开源社区忽略的部分。

我做了这个技能之后发现一件事:技能做得好,和有人能用它,是两个完全不同的问题。

Skill 是给“已经站在门里的人”用的。而绝大多数人连门在哪都不知道。

门槛一:它跑在哪?

Skill 不是双击就能用的软件。它需要一个载体:

  • Claude Code 这类 CLI 工具
  • Cherry Studio、Claude Desktop 这类桌面客户端
  • 某些支持技能目录的 AI 助手应用

这几样东西,共同点是:都得先有一个能用的模型 API。

而现实是,很多人连“API 接入”这个词都没听过。在他们脑子里,AI 就是“打开网页,打字,出结果”。你要跟他说“先注册一个 Provider,填 API Key,选模型,然后建个会话,把技能挂上去”——他已经走了。

我做过一个非正式的小观察,在几个命理群里问过“知道 agent 客户端和 AI 网页对话有什么区别吗”,回答清楚的比例不到两成。这不是他们笨,是这个世界还没准备好。但结果是:一个设计得再好的 skill,到这一步就断了。

门槛二:它要什么输入?

这是我认为命理技能最被低估的失败点。

ZiPingEightChar 的必需输入是四项:姓名、性别、出生年月日时分、出生地(精确到县)。

在懂的人眼里这是常识。但在真实用户那里:

  • “几点出生的”——很多人真不知道。家里老人只记得“天快黑的时候”。而 SKILL.md 里写死了: 必须追问具体时刻,不要自行假设 12:00 或任何时刻 。因为它知道时辰错了就是另一张盘。
  • “出生地”——“我们那是个小地方”。技能得能解析到县级行政区,解析不到时要按话术追问。
  • “真太阳时”——用户根本不知道有这回事。新疆出生的人用北京时间的钟表数字去排盘,时柱会错到离谱。

技能里可以内置追问话术,这一点 ZiPingEightChar 做了:

缺时刻:“时辰决定时柱,差一个时辰就是另一张盘,所以出生时间需要精确到小时。您大概几点出生?”

但话术只能救一半。另一半必须靠产品的表单设计和交互引导——什么时候必须问、怎么问才不烦人、用户答不上来时怎么给替代方案(比如“按相邻两个时辰各排一张,标明哪些结论会变”)。这些是产品设计问题,SKILL.md 解决不了。

门槛三:用户知道该问什么吗?

技能正常工作的方式是:用户报出四柱天干地支,然后问具体问题。

问题是,99% 的人不会排盘,也不知道自己的四柱是什么。

盘叔那份 怎么用.md 写得很直白:给助手一个八字排盘(四柱天干地支),再问对应领域的问题。示例问法是:

“甲申、壬申、乙巳、戊寅,这个八字能做官吗”

对懂的人,这很自然。对不懂的人,这是天书。他不知道什么叫“甲申”,不知道去哪查自己的四柱,也不知道自己该问正官格还是七杀格。

这就意味着:一个“给四柱就能断”的技能,对普通用户是残废的。它缺了前置的一整段——从“我不知道我是什么命”到“我已经有了正确的四柱”。

ZiPingEightChar 想解决这个问题:它可以只吃“出生信息”直接出盘,不用用户先排。这是它和“只吃四柱的技能”最重要的差别之一。但即便如此,输出之后还有下一关。

门槛四:拿到结果看得懂吗?

技能输出的是 Markdown。终端里,或者一个聊天窗口里,一整段文字。

但命理盘面天然是空间性的——四柱是横排的,地支藏干有层级,大运是一条时间轴,神煞是散落的标签。用文字描述一个盘,永远是“降维”。

而普通用户拿到一大段文字之后,最常见的反应是:看不懂术语,也不知道该看哪一句。

这也是我理解为什么产品层必须做的事,不是优化文本,而是:

  • 盘面可视化,干支关系可高亮、可点开
  • 术语可以点,点了能查
  • 关键判断和盘面元素一一对应,能核对

灵爻妙解在这层做的事就是这个:解读过程中可以对盘面具体位置做高亮与关系标注,讲解内容和盘面元素一一对应,方便核对与复盘。这类东西在纯 skill 形态里做不出来——它不是一个文件能承载的交互。

门槛五:技能坏在哪,谁来修?

一个 skill 交到用户手里之后:

  • 模型换了会坏。 换个模型,之前的调教全失效,模型开始“综合”不该综合的东西,神煞又跑进取格了。
  • 技能更新不了。 你发了 v1.8,用户手里还是 v1.1,而且他不知道有新版。
  • 出错没有反馈。 十个用户用崩了,你一个都不知道。你不在他们的会话里。
  • 授权和风控。 分发出去就等于失控,谁都能改、谁都能传。

这几条我在 ZiPingEightChar 里做了各种工程应对——版本哨兵测试(test_version_sentinel.py)、软授权锁(_license_gate.py,次数与有效期限制,退出码 4)、水印指纹(定制副本在 SKILL.md、rules/、脚本和授权状态文件里嵌入唯一编号,形如 LY-20261007-A3F9,泄露可按编号溯源)。

但我要非常坦白地说一句:软锁防君子不防小人。这句话我写在了授权文档里。技能是一种可复制的东西,它一旦离开你的手,你就只能靠法律和信誉约束,技术上拦不住。

这不是技能设计的失败,这是技能这种形态的天然上限。它注定属于“自用可行、小圈子分享可行、规模化分发不行”。

一个具体的失败场景

把上面五道门串起来,一个真实用户会遇到什么:

老张在群里看到有人分享“子平八字 AI 技能包”,说效果很好。他下载了,是个压缩包。解压,里面有一堆文件和文件夹。他点开 SKILL.md,全是英文和符号。他不知道这东西要放哪。

群里问了半天,知道要先装一个 AI 客户端。装了。客户端说要用 API。他不知道 API 是什么,更不知道去哪买。折腾两小时,放弃。

后来有人帮他配好了。他终于用上了,AI 说请提供出生信息。他填了“1985 年 3 月 12 日”。

AI 说:“时辰决定时柱,差一个时辰就是另一张盘,所以出生时间需要精确到小时。您大概几点出生?”

老张愣了。他打电话问了三个亲戚,得到的答案分别是“好像是早上”“记不清了”“你妈生你的时候我在上班”。

他回了句“不知道”。AI 说:“那我按该时段的两个相邻时辰各排一张,并说明哪些结论会随时柱变化、哪些不受影响。”

这已经是很负责任的处理了。但老张已经不想看了。他本来只是想知道“我这两年要不要换工作”。

这段里没有哪个环节是技术难题。但每一环都是一个普通用户会掉出去的地方。技能本身的水平在老张的体验里权重极低——他人还没走到用得上技能的那一步。

那产品要接管什么

把上面的门槛反过来说,就是产品必须承担的活:

门槛
产品要做的事
跑在哪
打开网页/App 就能用,不解释 API、模型、客户端
要什么输入
表单引导 + 分步追问 + 记不清时的替代方案
知道问什么
内置排盘,用户只提供出生信息;问题给模板
看得懂吗
盘面可视化、术语可点、讲解可对照盘面核对
坏在哪
集中更新、案例留存复盘、可反馈可追溯

一句话概括:技能把“怎么做对”解决了,产品要解决的是“怎么让不懂的人也能做对”。

这两件事的技能树完全不同。前者是命理 + 工程,后者是交互 + 服务 + 运维。开源社区现在普遍把前者的成果拿来当后者的成绩宣传——这是我认为最需要说清楚的一件事。


六、顺手说几句当前生态的乱象

不点名,只讲模式。见到这些,多留个心眼。

套路一:把“转写”叫“蒸馏”。把一本古籍用 AI 转成问答对,叫蒸馏。真正的蒸馏是把书里的规则提取成可判定、可溯源、可验证的条目,并且明说哪些章节蒸馏不出来、为什么不出来。

套路二:把“写得多”当“做得好”。三万字的 SKILL.md,听起来很唬人。但字数在渐进式披露的设计里恰恰是负分——你写在正文里的每一句都在占用上下文,都在稀释注意力。好的 skill 是短正文 + 深文件。

套路三:拿自测当验证。“34 题全对”——自己出题自己答。这不是验证,这是复述。真验证要么有独立测试员,要么把测试集公开让人复现,要么像排盘测试那样有唯一正确答案的黄金数据。

套路四:只报数字不报口径。前面说的那个例子——两个包的自报数和实际数刚好互换。这类包表面上还挺严谨,都有“台账”。台账对不上实物,比没有台账更糟。

套路五:把“覆盖全领域”当卖点。一个技能敢说覆盖健康、寿夭、婚姻、财运、流年逐岁,只能说明它没读完那本书。《子平真诠》全书 48 章,根本没有健康寿夭的系统论述。敢于声明“这块我不覆盖”,才是读过的证据。

套路六:转写质量没验,就当原文引。很多包里的“原文”是 OCR 出来的,错字一堆。我前面看到的那个包自己交代了“摘录对原文 OCR 误字做了静默规范化”——比如“病敢”改回“病;”、“不人化土”改成“不以化土”。作者交代了,这是诚实;但如果你引的原文根本没校过就拿来断命,结论是建在沙子上的。


七、回到我自己

讲这么多,其实是在讲我为什么停下来做这个。

我本来是做六爻、六壬、奇门、太乙的。八字我有了解,但算不上高手。我比较确定自己深入的是 AI 这一侧——所以我看得出来哪些做法是真在用 skill 的能力,哪些只是把提示词写长了。

所以我把这个技能做成了我认为该有的样子:排盘靠脚本、解释靠规则、结论带溯源、边界写在明面上、正误靠测试。

它现在长这样:

  • SKILL.md
     182 行,写清输入参数、追问话术、退出码处置、输出契约、断运交互
  • rules/
     16 个文件 380 条编号规则,格式规范成文,条件字段必须能对上排盘输出的具体字段
  • rules/sources/
     50 篇原文,平时不加载,只用于回查
  • scripts/
     1155 行排盘引擎,处理真太阳时、子初换日、夏令时、历史时区
  • vendor/
     内置 tyme4py 1.5.0 与 tzdata, 用户不用装任何依赖
  • tests/
     7 个测试文件 + 黄金数据,验证排盘正确性
  • 95_禁则.md
     19 条负面清单,把模型的坏习惯提前堵死

规则库版本目前是 1.8,从 1.0 到现在改了七轮,大多是测试驱动回修——比如“说人话”段从最初的 100–180 字单段概括,改成现在逐点对应的白话详解(因为发现单段概括会掩盖掉具体判断,还会被模型用来粉饰凶断)。

我知道它不完美。规则库还有存疑条目、原书有几个命例因为传抄缺陷无法验证、女命篇和神煞细节层是我的体系拓展(每一条都标了【拓展】,因为原书没有这些内容)。

这些我都写在文档里了。一个技能包最该被看见的地方,不是它声称覆盖了多少,而是它坦白自己哪里不行。

顺便说,我的另一条线也没停——灵爻妙解是我在做的术数平台,覆盖六爻、大六壬、奇门遁甲、太乙神数四类体系。

它就是上面“产品要接管什么”那一节的答案:

  • 自研排盘算法引擎,网页端、Android、iOS 规则一致,排盘结果结构化、机器可读
  • 人工整理标注的术数知识库,按术数与主题分类,解读时按需检索
  • 单智能体与多智能体解读——多智能体模式下,多个角色围绕用神取用、结构关系、动变分析、现实对轨、时间节点推断分轮次讨论,相互质疑,全过程可视化
  • 盘面标注工具,解读内容和盘面元素一一对应,可核对可复盘
  • 案例广场,可评分、保存、分享、提交现实反馈、追加提问,长期累积

《六爻入门》专栏也会继续更新,我没忘。

顺便分享一个体会:平台这条路和技能这条路,看到的是同一个问题的两面。技能让我搞清楚了“什么是对的”;平台逼我面对“怎么让不懂的人也能对”。后者比前者难得多,也诚实得多。


八、最后

如果你只记一句话,我希望是这句:

判断一个 skill 好不好,别看它写了多少字,看它 在模型不听话的时候有没有招 ——有没有禁则、有没有脚本、有没有测试、有没有溯源、有没有承认不覆盖。

模型本质上是一个随和过头的东西。它倾向于讨好你、倾向于给你一个答案、倾向于把手上所有材料都综合一遍。

而一个真正成型的技能,就是作者把自己的领域知识和领域判断,一条条钉进这个随和过头的东西里。钉进去的东西越多,它犯错的余地越小。

提示词告诉 AI“说什么”,技能告诉 AI“不许说什么”。

这中间的差距,就是从“看起来能用”到“真的能用”的差距。


灵爻妙解 · 传承易学智慧
🌐 https://lingyaomiaojie.com

本文所述技能为测试授权版本,仅供个人测试与评估,禁止商业用途与个人传播。
网站与技能输出内容均由 AI 生成,依据古籍整理,仅供传统文化研究与娱乐参考,不替代医疗、法律、投资、心理咨询等任何专业意见;不对现实事件作确定性预测。信任科学,反对迷信。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-10-08 07:54:58 HTTP/1.1 GET : http://yeyulingfeng.com/a/494157.html
  2. 运行时间 : 0.078248s [ 吞吐率:12.78req/s ] 内存消耗:4,469.73kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=28a2db60cf141946f5b235032cff7a47
  1. /www/wwwroot/yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /www/wwwroot/yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /www/wwwroot/yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /www/wwwroot/yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /www/wwwroot/yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /www/wwwroot/yeyulingfeng.com/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /www/wwwroot/yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /www/wwwroot/yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /www/wwwroot/yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /www/wwwroot/yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /www/wwwroot/yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /www/wwwroot/yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /www/wwwroot/yeyulingfeng.com/app/provider.php ( 0.19 KB )
  23. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /www/wwwroot/yeyulingfeng.com/app/common.php ( 0.03 KB )
  27. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /www/wwwroot/yeyulingfeng.com/config/app.php ( 0.95 KB )
  30. /www/wwwroot/yeyulingfeng.com/config/cache.php ( 0.78 KB )
  31. /www/wwwroot/yeyulingfeng.com/config/console.php ( 0.23 KB )
  32. /www/wwwroot/yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  33. /www/wwwroot/yeyulingfeng.com/config/database.php ( 2.50 KB )
  34. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /www/wwwroot/yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  36. /www/wwwroot/yeyulingfeng.com/config/lang.php ( 0.91 KB )
  37. /www/wwwroot/yeyulingfeng.com/config/log.php ( 1.35 KB )
  38. /www/wwwroot/yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  39. /www/wwwroot/yeyulingfeng.com/config/route.php ( 1.89 KB )
  40. /www/wwwroot/yeyulingfeng.com/config/session.php ( 0.57 KB )
  41. /www/wwwroot/yeyulingfeng.com/config/trace.php ( 0.34 KB )
  42. /www/wwwroot/yeyulingfeng.com/config/view.php ( 0.82 KB )
  43. /www/wwwroot/yeyulingfeng.com/app/event.php ( 0.25 KB )
  44. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /www/wwwroot/yeyulingfeng.com/app/service.php ( 0.13 KB )
  46. /www/wwwroot/yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  47. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /www/wwwroot/yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  53. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /www/wwwroot/yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /www/wwwroot/yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /www/wwwroot/yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /www/wwwroot/yeyulingfeng.com/app/Request.php ( 0.09 KB )
  84. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /www/wwwroot/yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  86. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /www/wwwroot/yeyulingfeng.com/route/app.php ( 1.72 KB )
  100. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /www/wwwroot/yeyulingfeng.com/app/controller/Index.php ( 5.22 KB )
  104. /www/wwwroot/yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  105. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /www/wwwroot/yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /www/wwwroot/yeyulingfeng.com/runtime/temp/44b959ca79ad33496f044db2c231b11d.php ( 8.29 KB )
  140. /www/wwwroot/yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000523s ] mysql:host=172.18.0.4;port=3306;dbname=no_yeyulingfeng;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000631s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000322s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000373s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000537s ]
  6. SELECT * FROM `set` [ RunTime:0.000294s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000729s ]
  8. SELECT * FROM `article` WHERE `id` = 494157 LIMIT 1 [ RunTime:0.000556s ]
  9. UPDATE `article` SET `lasttime` = 1791417298 WHERE `id` = 494157 [ RunTime:0.001895s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000335s ]
  11. SELECT * FROM `article` WHERE `id` < 494157 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000444s ]
  12. SELECT * FROM `article` WHERE `id` > 494157 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000422s ]
  13. SELECT * FROM `article` WHERE `id` < 494157 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000720s ]
  14. SELECT * FROM `article` WHERE `id` < 494157 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000610s ]
  15. SELECT * FROM `article` WHERE `id` < 494157 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000637s ]
0.088765s