dsh-daoyi-yijing
Manifest validDaoyi - I Ching Deduction · Universal Decision Review DSH Plugin (Decision Support, Not Superstition): Six-Layer Weighted Aggregation Engine (384 Lines → 64 Hexagrams → 8 Palaces → Four Symbols → Three Powers → Two Forms → Supreme Ultimate), Pure JS with Zero Solver Dependencies
道一-易经推演(dsh-daoyi-yijing)
通用决策辅助 DSH 插件(决策辅助,非迷信)。把任意决策事项拆解为可量化检查点,套入 六层推演框架(384 爻 → 64 卦 → 8 宫 → 四象 → 三才 → 两仪 → 太极),输出结构化结论与 易经风格研判。结论由用户输入的参数与阈值决定,可追溯、可审计。
原名「易经推演-万事决」(dsh-yijing-wanshijue),v0.3.0 起重命名为「道一-易经推演」。
双向云模型推演闭环(§2.1)
- 正向分解 L1→L7:1 个问题目标 → 逐层调用云模型拆解 → 384 个关键考虑因数。
- 反向聚合 L7→L1:384 因数 → 逐层聚合 → 1 个可定/否定结论(可行 / 有条件可行 / 不可行)。
- 云模型是“翻译器”而非“裁判”:判定与聚合(L7→L2)为确定性规则,云模型不介入 verdict 决策。
内置剧本
motor-design:电机电磁设计·万事决(从 MotorDesignCore/yijing_*Python 原型 1:1 移植)。 真实 8 技术领域 × 8 子领域 × 6 检查点 = 384 爻;其中 158 项为外部数据域(NA,排除出聚合、计入覆盖率), 226 活跃检查点进聚合。含强关联一票否决、六层加权聚合、天/地/人三才分组。stock-trend:股票趋势研判·万事决(8 股票分析域 × 64 子域 × 384 爻): 基本面/技术面/资金面/消息面/行业面/宏观面/估值面/风险面,三才分组为 天(基本面/行业/宏观)·地(技术/资金/估值)·人(消息/风险)。demo-384:规范 384 结构演示剧本(verify 向量)。- 自定义剧本:经
yijing_script_load提交 JSON,落盘data/scripts/持久化(重启回灌)。
快速开始
# 安装到 DSH(web profile;dsh 未进 PATH 时用 npx)
npx -y @deepseek-ai/dsh plugin --profile web add dsh-daoyi-yijing
# 本地离线自检(零依赖)
node scripts/verify.mjs # 离线自检(27 项断言)
node scripts/runtime-check.mjs # DSH Runtime 联调预演(纯 run* 函数)
node scripts/_mock_llm_test.mjs # 云模型适配器 e2e(mock 服务器,无需密钥)
node scripts/_selftest_llm_quota.mjs # LLM 调用计数闸门 + 自定义模型 + session 解析自检
node scripts/_probe_definetool.mjs # 真实 defineTool 编译器校验(需准备 node_modules,见脚本头注)
node scripts/divine_stock_600711.mjs # 盛屯矿业(600711) 一个月涨跌推演示例
安装后对模型说「推演:我要不要接这个 200kW 电机外包项目」即可触发 yijing_divine。
工具
yijing_divine主入口(支持model参数按调用覆盖模型;symbols触发股票行情自动接入;hexEncoding控制卦象阈值来源)yijing_factor_prompt生成八宫打分表 prompt(L1→L7 拆解交给对话大模型,打分回填inputs)yijing_script_list列剧本 ·yijing_script_load加载自定义剧本 ·yijing_report详报yijing_model_list列全部可选模型 + 当前选择 + 今日 LLM 调用额度快照(只读,不消耗额度)
单事项如何触达 64 卦(v0.6.0)
「64 卦 → 1 卦」的映射一直都在(8 宫分 → 二值化 6 爻 → 64 选 1 + 动爻),缺的是单次调用的熵: 绝对阈值 0.5 会让各宫分挤在同一侧 → 恒出乾系。本版给单事项一个独立于本次调用的参照系:
| 路径 | 用法 | 效果 |
|---|---|---|
| 股票(自动) | yijing_divine { matter: "贵州茅台本周涨跌", script: "stock-trend", symbols: ["600519"] } | 自动拉腾讯行情构建 384 爻 inputs;阈值取全市场基线分位 → 单只即可落进 64 卦任意一格 |
| 通用事项(LLM) | ① yijing_factor_prompt 拿打分表 prompt ② 对话大模型填 JSON ③ 扁平化为 inputs 回传 yijing_divine | L1→L7 拆解真正由 LLM 完成,且打分驱动 384 爻(此前只产文案不产分数) |
| 批量/校准 | node scripts/divine_batch_stocks.mjs --live · node scripts/calibrate_stock_baselines.mjs --n 400 | 批次内分位 / 生成基线表 |
- 基线表
lib/yijing/baselines-stock.json(随包发布):各宫 p25/p50/p75 + 每爻阳率 + 样本内卦种数。 400 只随机样本实测 48/64 种(绝对阈值 8/64、批次分位 28/64)。 - 爻义随之变为「相对市场中位偏强/偏弱」(如 JS 爻阳 = 技术面强于市场中位),比绝对阈值更有信息量。
- 宫级简写:
inputs: {"EM":0.72}即该域全部活跃检查点同值(8 个数驱动全引擎),走归一化语义>0.5 为阳。 - 可观测性:输出带
inputs_coverage(含unmatched未匹配键名单)与degraded低置信标记—— 传错宫码或没给输入,不会再静默输出「100% 可行」。
云模型接线(v0.3.4 已接通真实 LLM)
未配置时完全离线:分解返回结构化因数清单、结论走确定性模板(断网也能跑,verdict 不受影响)。 配置后由真实 LLM 生成 L1→L7 分解文案与 L1 卦象总评(判定/聚合仍为确定性代码):
| 方式 | 做法 |
|---|---|
| 环境变量(推荐,密钥不落盘) | DAOYI_LLM_API_KEY=sk-xxx DAOYI_LLM_PROVIDER=deepseek node scripts/divine_with_llm.mjs "决策事项" commercial |
| 插件配置 | cordis.patch.yml / Config:cloudModelEnabled: true + cloudModelProvider + cloudModelApiKey + cloudModelName |
| 代码注入 | setCloudModelAdapter(fn)(测试 / DSH Runtime) |
| DSH 会话当前模型(v0.5.1 起默认自动) | 对话中被调用时自动使用当前对话的模型——Runtime 注入 config.sessionModel(或 env DAOYI_LLM_SESSION_*)即生效,无需手动开 cloudModelEnabled、无需自备 Key。关闭:cloudModelAutoSession: false(或显式 cloudModelEnabled: false);自备 apiKey 时不抢会话模型 |
- 厂商预设:
deepseek(deepseek-chat) /qwen(qwen-max) /glm(glm-4-plus) /moonshot(moonshot-v1-8k) /minimax(abab6.5s-chat) /openai(gpt-4o-mini) /custom(自填 Base URL,任意 OpenAI 兼容端点)。 - 自定义模型清单(v0.3.4):
cloudModelCustomModels传 JSON 数组[{"name":"my-gpt","label":"我的 GPT","baseUrl":"https://api.example.com/v1","model":"gpt-4o","keyEnv":"OPENAI_API_KEY"}](envDAOYI_LLM_CUSTOM_MODELS同构);name即选用 id,yijing_divine/yijing_report的model参数 或cloudModelProvider传它即可热切换;yijing_model_list随时查清单与当前选择。 - 环境变量:
DAOYI_LLM_ENABLED/DAOYI_LLM_PROVIDER/DAOYI_LLM_API_KEY/DAOYI_LLM_MODEL/DAOYI_LLM_BASE_URL。 - 安全:API Key 只从 config/env 读取,绝不出现在日志与回传中;
telemetryEnabled默认关。 - 任何失败(401 / 超时 / 断网)自动降级为确定性模板,推演结论依然成立。
免费额度闸门(v0.4.2 起:每分钟速率 + 队列等待)
- 主节流 = 每分钟速率限制(v0.4.2 变更):免费 LLM 调用默认上限 10 次/分钟(滑动窗口 60s,
freeLlmPerMinute/ envDAOYI_LLM_FREE_PER_MINUTE可调,0=不限制)。窗口满时后来的调用进入 FIFO 队列排队等待, 待最早的时间戳滑出窗口后逐个补位——超出不拒绝、不降级,仅延迟。 - 每日硬上限降级为可选兜底:
freeLlmDailyLimit默认 0(关闭);仅显式配置 >0 时作为每日总闸,用尽才降级离线模板。 - 计数口径:每次真实 LLM 外发计 1 次(一次
yijing_divine= decompose + conclude = 2 次;离线推演不计数、不花钱)。 - 本地硬闸:计数/限速只认本地
$DSH_HOME/storages/dsh-daoyi-yijing/llm-quota.json(envDAOYI_LLM_QUOTA_FILE可覆盖),断网也拦,无任何后端请求/遥测。 - 可观测:
evaluate结果llm.rate暴露{rateLimit, queued, waitMs};发生过排队时llm.notice提示等待时长;yijing_model_list可查额度快照(只读)。 - 运维旁路:
freeQuotaEnabled: false→ 不限速、不排队、不计数。 - 详见
docs/ENGINEERING.md「免费额度闸门」节与CHANGELOG.md0.4.2 条目。
64 卦判词库(v0.5.0 补全)
- 离线结论文案不再只有「verdict 三选一」:
lib/yijing/hexagram-texts.mjs为全部 64 卦提供独立判词 (卦辞要义judgment+ 行事建议advice+ 卦性tone),文案头部形如 「乾为天:元亨利贞,刚健不息(主动进取,忌用过刚)——本卦判:可行,刚健中正,宜进取」, 动爻变卦行带变卦判词。 - 判词表与
HEXAGRAMS双射一致、64 条互异,由scripts/test_hexagram_texts.mjs(19 断言)守护。
可选在线模式(v0.5.0:行情适配层)
插件核心默认离线(确定性、零额度、断网可用);需要实时行情时可选用在线模式:
- 适配层
adapters/quote.mjs:腾讯财经qt.gtimg.cn(批量、免费、无鉴权),输出与基线同构的 子域信号{code, subIdx, delta}。归一化规则透明(RULES_TEXT导出): GZ01 绝对估值(PE 分段锚定,便宜→阳/贵→阴,亏损→NA)、JS01 趋势方向(收盘位置居中化)、 JS02 动量强度(同基线)、JS04 量能配合(换手分档×当日方向)、JS08 波动特征(振幅分档); JB/HG 无字段 → NA,不造假填充。 - 断网/超时/字段缺失 → 回退 NA;整体取数失败 → 调用方整体回退基线(测试验证回退后趋势与离线逐只一致)。
- 取数器可注入:默认全局
fetch;代理环境(undici 不读代理变量)用createCurlFetcher({ proxy: 'http://127.0.0.1:xxxx' })。 - 批处理用法:
node scripts/divine_batch_stocks.mjs --live→ 输出logs/stock-batch-results-live.json。 - 实测(2026-10-21 腾讯真实行情 56/56):卦象种类 5 → 8、GZ 域 37/56 激活、平均覆盖率 6.8% → 11.2%; 但单期上限为 2⁵=32(HG 宏观是市场级常量、JS/ZJ/HY 价类域彼此相关),干净 64 结构上不可达—— 补数据的价值在多因子研判质量,卦象变多只是副产品。
⚠️ 股票推演结果由公开数据映射的因子评分驱动,属结构化多因子研判示意,不构成任何投资建议。
Comments
Loading…