别再每次决策都烧 token。 用结构化推演 + 晶体复用,把 90% 的决策留在 CPU 里跑,只在必要时调 LLM。
整合 API-Football / The Odds API / Understat xG 等 5 大数据源 · 6 维爻位 + 64 卦决策 · 经验自学习 · DeepSeek / Kimi / 通义 / 智谱 / Claude / GPT / Gemini 等 12 家 LLM 任选
大多数 AI agent 每做一次决策就烧一次 LLM(几 k ~ 几万 token)。诸葛亮的架构让你 大幅降低 这个成本:
决策路径token 消耗备注纯 LLM agent 做决策~3000–10000 token/次每次都要把上下文塞进 prompt诸葛亮:数据源 → 爻位 → 卦象 → 决策0 token纯 CPU 数值计算诸葛亮:命中历史晶体0 token直接复用结构化模式,跳过 LLM诸葛亮:LLM 润色孔明评语(可选)~200–500 token只在 你需要时 调,且可以关掉
实际场景:批量预测 50 场比赛
这才是 zhuge-skill 的核心价值——不是因为易经玄学,是因为 结构化推演能做的事就不该花 token 做。
我是一个能分析数据 + 推演决策 + 持续自学习的 AI 助手。当前主要场景是 足球比赛预测,但底层是通用的 64 卦推演引擎,可扩展到任何决策场景。
能力命令说明单场预测python start.py predict "Napoli vs Lazio"拉数据 → 6 维爻位 → 卦象 → 决策批量预测python scripts/batch.py "A vs B" "C vs D"一次跑多场结果回传python scripts/backfill.py比赛后回填实际结果,更新命中率命中率统计python scripts/stats.py看历史表现经验结晶python scripts/crystallize.py提炼成功模式为「晶体」( 本地 操作)共同进化python scripts/sync.py pull从公共池 只拉取 匿名晶体(单向消费,HTTP GET,不携带本地数据)权重校准python scripts/calibrate.py用回传数据自动调爻位权重战报python scripts/report.py --llmLLM 写古风周报/月报守护模式python scripts/backfill.py --loop 30每 30 分钟自动回传
给 Agent 的提示词:
"用诸葛亮 skill 预测明天的 Napoli vs Lazio"
Agent 应该调用:
bash
python start.py predict "Napoli vs Lazio" --league serie-a
输出要点:
text
预测 → 写经验库 → 等结果 → backfill 回传 → stats 看准确率
↓
共同进化 ← sync 拉公共晶体(只入) ← crystallize 本地结晶 ← calibrate 校准权重
Skill 运行需要以下环境变量。 均为可选——未填写时对应功能会 优雅降级 而不是崩溃。
变量用途获取地址不填的后果API_FOOTBALL_KEY获取联赛/球队/比赛数据https://dashboard.api-football.com/无数据,预测退化为 demo 模式THE_ODDS_API_KEY获取博彩赔率https://the-odds-api.com/6 维爻位中的「赔率维度」缺失
Skill 支持 12 个供应商。 只需配置其中一个,其他留空:
变量供应商用途DEEPSEEK_API_KEYDeepSeek孔明评语生成( 推荐,便宜)OPENAI_API_KEY + OPENAI_API_BASEOpenAI / 任何 OpenAI-compat同上ANTHROPIC_API_KEYAnthropic Claude同上GEMINI_API_KEYGoogle Gemini同上KIMI_API_KEYMoonshot Kimi同上QWEN_API_KEY阿里通义同上ZHIPU_API_KEY智谱 GLM同上DOUBAO_API_KEY字节豆包同上YI_API_KEY01.AI同上BAICHUAN_API_KEY百川同上MINIMAX_API_KEYMiniMax同上CLAUDE_RELAY_KEY + CLAUDE_RELAY_BASE第三方中转⚠️ 见下方 §LLM 中转风险
未配置任何 LLM 时:跳过"孔明评语"步骤,其它功能正常。
脚本行为是否向外发数据start.py predict本地推演❌ 否(除非调 LLM 生成评语,见下方)scripts/predict.py本地推演❌ 否scripts/backfill.py从数据源 API 拉结果↓ 仅拉入,不外发scripts/stats.py本地统计❌ 否scripts/calibrate.py本地调参❌ 否scripts/crystallize.py本地提炼"晶体"❌ 否(只写本地 data/crystals_local.jsonl)scripts/sync.py pull从公共 URL 拉匿名晶体(只 GET)↓ 仅拉入, 不外发scripts/share.py生成本地 md/json 到 exports/❌ 否(纯本地文件,不联网)scripts/report.py --llm调 LLM 写周报↗ prompt 送 LLM 供应商
任何调用 LLM 的脚本( predict --llm / report --llm)会把以下内容发送到 你配置的 LLM 供应商:
Skill 支持一个叫 relay 的中转模式( CLAUDE_RELAY_BASE=https://apiport.cc.cd 等)。 启用中转意味着:
生产环境强烈建议:直连官方 API(设置 ANTHROPIC_API_KEY / OPENAI_API_KEY 指向官方端点), 不要用 relay。
Relay 仅适用于:
sync.py)与本地导出( share.py)#v1.0.1 的架构事实:本 skill 的代码里 没有任何一行把本地数据发到网络。
scripts/sync.py 只有两个子命令: pull(HTTP GET 从公共 URL 拉)和 status(本地查看)。 push 函数已从代码中移除,不是"默认关闭"——是根本没写。scripts/share.py 只把你本地的预测记录渲染成 exports/predictions_*.md|json 文件,供你自己手动分享, 不联网。公共晶体池(作为 sync.py pull 的来源):
https://raw.githubusercontent.com/yangfei222666-9/zhuge-crystals/main/crystals.jsonlZHUGE_REMOTE_CRYSTAL_URL 环境变量改为你自己的 forkcurl 就能看到内容,完全透明详见 PRIVACY.md 的架构级隐私合约。
start.py 带 wizard 模式会交互提示后 可选写入 .env( wizard.write_env)
.env,不污染系统级 env会创建: data/experience.jsonl / data/crystals_local.jsonl / data/crystals_shared.jsonl(均在 skill 目录下)
不会 修改其它 skill、不会修改系统 PATH、不会安装全局依赖
打开这三个文件,grep 关键词确认行为:
bash
# 1. 确认 sync.py 没有任何上传逻辑(应只看到 docstring 里 "没有 push" 的字样)
grep -n "requests.post\|push\|upload\|POST" scripts/sync.py
# 2. 确认 share.py 不联网(应无匹配)
grep -n "requests\|urlopen\|http" scripts/share.py
# 3. 确认全仓库没有隐藏的上传端点
grep -rn "requests.post\|urlopen.*POST\|upload" scripts/ core/
# 应只看到 core/llm.py 里调你自己配置的 LLM 供应商(不含本地数据库)
# 4. 确认 wizard 写 .env 需要用户确认
grep -n "write_env\|\.env" core/wizard.py
start.py — 一键入口(带欢迎动画 + wizard)core/ — 核心算法(卦象/爻位/LLM 适配/孔明/结晶)adapters/ — 数据源(API-Football/The Odds API/Understat)scripts/ — 入口脚本data/ — 64 卦表 + 种子经验库 + 晶体池✓ Hermes Agent / OpenClaw / Claude Code / Cursor / 任何 Python 环境
✓ 12 LLM 供应商(豆包/Kimi/通义/智谱/Yi/百川/MiniMax/DeepSeek/OpenAI/Claude/Gemini/中转)
✓ 三种配置方式:环境变量 / .env / 命令行参数
✓ 网络降级:任何外部 API 失败都不阻塞核心流程
scripts/predict.py 预测输出显示晶体复用次数 + 首见年龄 + 信任标签scripts/crystallize.py --dry-run 预览结晶结果不写入scripts/stats.py --crystals 晶体排行 + stale 监控scripts/error_log.py --resolve <id> + priority / status 字段(生命周期对齐 self-improving-agent 方法论)first_seen / last_seen / recurrence_count, match_crystal 命中回写 crystals_local.jsonlscripts/error_log.py:JSONL 错误日志,接入 backfill 守护循环 / fetch_actual_result / core/llm.py 三个 except 点README.en.md 英文版(为国际用户 / Show HN 准备)CHANGELOG.md 独立文件assets/demo.png — 诸葛亮推演引擎实录截图(启动动画 + 6 维爻位实时评分)push 已移除)不一致,已重写为 §晶体拉取 与本地导出,对齐代码sync.py 改为 pull(只 GET), share.py 标为纯本地导出sync 推/拉 → sync 拉公共晶体(只入)sync.py 的 push 函数从代码中移除,固化为单向消费架构(只 pull 不 push)sync.py 子命令简化为 pull(从公开 URL 只读拉取)和 status(本地查看)share.py 明确为本地导出工具(生成 exports/*.md|json),不联网