last30days-skill-cn
Jesseovo
last30days-cn 是一个 AI Agent 技能(Skill),能够自动搜索中国互联网 8 大主流平台最近 30 天的内容,综合分析后生成有据可查的研究报告。
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:yohanchen1/MathModelingAgent
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
一个闭环科学建模 Agent:持续观测、验证和纠偏,而不是一次性生成答案。 模型负责提出,工具负责验证,证据决定结论。
MathModelingAgent 面向开放式数学建模、预测、优化、估计、仿真和机制分析。它把人与智能体的协作组织成一个可追问、可复检、可恢复的科学闭环:
提出模型 → 执行计算 → 观测结果 → 独立验证 → 发现偏差 → 修正模型 → 再验证
直到结论获得足够证据支持,或者系统明确返回 CONDITIONAL、INCONCLUSIVE、REFUTED 等非确定状态。
LLM 作为数学建模辅助工具,能够帮助理解题目、提出候选模型、编写代码和整理报告,但它也可能在题意、公式、边界条件、代码结果、引用或常识判断上产生幻觉。一个“看起来完整”的答案,不等于一个可信的数学结论。
数学建模论文的本质,不只是给出一个可能正确的数字,而是把问题、数据、假设、推导、计算、验证和局限有条理地描述清楚。没有人能够理解、追问和复核的答案,即使碰巧正确,也很难成为重要的科学交付。
普通的 LLM + Python 流程通常是开环的:
理解题目 → 建模 → 写代码 → 得到结果 → 输出答案
其中代码 exit 0、优化器返回一个解、图像看起来合理、solver 报告 feasible,或 LLM 认为结果符合直觉,都只能说明某个局部环节完成了,不能单独证明最终结论成立。
MathModelingAgent 把它改造成闭环:
┌────── 验证与反例 ──────┐
↓ │
问题 → 建模 → 计算 → 结果 → 鲁棒性 → 结论
↑ ↑ ↑ ↑ │
└────── 修正、降级、换方向 ─────────┘
如果观测结果与题目要求、数学约束或现实解释不一致,系统不会继续把答案写得更完整,而是回到相应阶段,修正假设、增加验证、换模型或降低结论强度。
这里的“控制”不是指用控制算法解决所有建模题,而是用反馈、观测、误差、约束和纠偏来组织 Agent 自己的建模过程:
| 闭环概念 | MathModelingAgent 中的对应物 |
|---|---|
| 目标 | 题目要求、约束和需要回答的问题 |
| 系统状态 | 当前假设、模型、主张、证据、失败和未解决问题 |
| 观测 | 数值结果、验证结果、反例、误差和审计 finding |
| 控制动作 | 重算、修改假设、换模型、增加实验、补验证、降低结论 |
| 反馈 | PASS / FAIL / INCONCLUSIVE 与新的科学证据 |
| 边界 | 数学约束、数据条件、验证义务和阶段门禁 |
| 终态 | SOLVED / CONDITIONAL / INCONCLUSIVE / REFUTED 等 |
人与智能体的边界也因此变得清晰:智能体可以自主执行可逆的计算、整理和检查;凡是改变问题理解、全局假设、模型方向或结论强度的决定,都必须留下可读的依据和变化记录,并在需要时交由人确认。每个阶段都有明确的输入、输出、检查方式和下一步,而不是把关键判断藏在一个无法解释的答案里。
这也是本项目的三层定位:
每个重点环节都会先把完整、可读、可追问的文本直接输出在聊天正文中,再等待用户纠正或确认;确认后才写入 artifact,并允许 run-state 进入下一阶段。适用范围包括 D0/D-R、数据画像、全局假设、候选方向、SP1…、模型、计算结果、验证、鲁棒性、评价和 D4。
如果某一阶段只生成了文件、工具摘要或一句结论,而没有在聊天中展示完整内容,它不算完成,真实 run 会停在当前阶段。
模式预算是一次 run 的执行上限,不代表一定会全部消耗。粗略可以用下面的模型理解总成本:
C_total ≈ A × (C_model + C_compute + C_verify) + Q × C_research
当前默认预算如下。计算预算只表示工具执行上限,不等同于模型 token 费用;实际消耗取决于问题复杂度、是否触发修正、工具耗时和证据缺口。
| 模式 | 最大尝试轮数 | 文献检索预算 | 计算预算上限 | 相对 Fast 的计算预算 |
|---|---|---|---|---|
| Fast | 2 | 0 | 60 秒 | 1× |
| Standard | 12 | 12 | 1800 秒 | 30× |
| High-Assurance | 24 | 30 | 7200 秒 | 120× |
High-Assurance 还要求独立审计和更严格的终态门禁,因此通常比表中的计算预算比例更慢;但它不是“必然正确”,只是给验证、反例和修正留下更多预算。
模式在 run 初始化时确定。需要升档时创建新的 run 或 correction lineage,可以复用输入快照,但不能静默修改原 run 的历史结果。
Claim(主张):影响结论的重要陈述,如"C1:该方案是全局最优解"、"C2:模型可泛化到训练数据之外"。
Obligation(义务):按主张类型要求证据——
Evidence(证据):记录方法、工具、命令、环境、输入输出哈希、退出码、产物、容差、局限与支持的主张;等级:
LEGACY_UNVERIFIED → DERIVED → EXECUTED → VERIFIED → INDEPENDENTLY_VERIFIED → EXTERNALLY_VALIDATED
原则:证据强度不能弱于主张强度。
验证不是让另一个 LLM 再"看一遍答案",而是按固定顺序攻击:
裁决只有三态:
PASS:可复现证据支持FAIL:矛盾 / 反例 / 无效方法 / 复现失败INCONCLUSIVE:证据不足——不能因为"看起来合理"升级为 PASS不只有 SOLVED:PARTIAL 部分解决 / CONDITIONAL 结论依赖条件 / INCONCLUSIVE 证据不足 / REFUTED 被反驳 / INFEASIBLE 不可行 / UNIDENTIFIABLE 信息不足 / BLOCKED 外部阻塞 / CANCELLED 取消。ATTEMPT 永远不能直接跳到 SOLVED。
算进展:关闭一条义务、新增可复现证据、反驳候选、收紧界或区间、移除阻塞、修复问题、正确降低结论强度。
不算进展:换说法、同参数重跑、写更长、exit 0、模型说"有信心"。
连续多轮无进展 → 换方向 / 请求用户决策 / 以非 SOLVED 状态暂停。
SOLVED 硬门禁:范围冻结 + 必选 verification 通过并聚合为 SATISFIED 的 obligations + SUPPORTED claims + 关键对抗检查通过 + 可复现材料齐全 + 局限已声明;High-Assurance 还需独立审计(审计器只读产物,不依赖求解过程的私有推理)。
本版本新增:v3 run/ledger evidence graph;独立的 verification / obligation / claim / run 状态;inputs/raw 冻结快照和 SHA-256 校验;typed verification recipes;真实输出量化后的硬约束复检;九段科学报告、symbols 和 Answer Coverage;结构化失败启发;PROJECT_INITIAL_REVIEW 与 PAPER_FINAL_REVIEW 两种论文质量评审;以及不修改父 run 的 correction lineage。
PASS 只表示某条 verification recipe 通过,不自动表示 claim SUPPORTED 或 run SOLVED。用户 waiver、未证明全局最优和部分证据只能进入 CONDITIONAL。CUMCM/MCM/ICM 评分是 paper-quality proxy,不是官方 CUMCM/COMAP 评分。
math-modeling-agent:建立和推进模型。目标不是"写一篇看似完整的答案",而是把问题推进到有证据支持的结论,或清晰可恢复的科学状态。math-modeling-audit:独立审计已有模型/论文,逐条回答哪些主张 PASS / FAIL / INCONCLUSIVE 以及为什么;不替作者修改。工具只是产生证据的方式,可以替换,工作流不变。
本插件保留原 GitHub 项目的核心行为:问题/附件探查、子问题顺序求解、Modeler → Analyzer → Correction 迭代、逐轮日志和可恢复运行;对应关系见 skills/math-modeling-agent/references/original-project-parity.md。
数学计算后端扩展位于 skills/math-modeling-agent/scripts/computation/:它只负责探测可调用后端、生成能力快照和校验计算记录,不捆绑 Mathematica/SageMath 等外部引擎。
工具缺失不会伪装成验证成功:记录缺失 → 降低证据等级 → 降低结论强度 → 保留未满足的义务。
默认运行目录 math-modeling-runs/<task-id>/:
run.json ledger.json events.jsonl # 原子状态 + 契约(interactions/decisionStack)+ 日志
problem-brief.md inputs.json # 冻结的问题重述 + 输入清单
inputs/raw/ inputs/manifest.json # 自包含输入快照 + SHA-256 校验
attempts/<n>/ # 每轮:report.md + code/ + data/ + plots/ + _drafts/
failed/directions/<id>/ # 方向级失败:wall memo + 代码 + 放弃理由
failed/code-drafts/<attempt>-<name>/ # 实现级失败:bug 版/超时版/弃用版(不删除)
failed/failures.jsonl + failed/issues.md # 结构化失败与索引(DATA/TOOL/IMPLEMENTATION/MODEL/VALIDATION/EVIDENCE/RESEARCH_GAP)
research/ walls/ # 文献检索 / 突破备忘录
reproducibility.json final-report.md
每个会改变模型结构的决策在对话中交互确认并写入 ledger(D0 重述/D1 路由/D2 子问题假设/
D3 方向/D4 裁决),run-state.mjs gate 在每次状态转移前强制校验;终态前强制鲁棒性
敏感度分析;失败尝试按类归档到独立目录。
崩溃恢复:跨进程互斥锁 + stale 锁与 reclaim guard 回收 + Windows 共享冲突重试;已完成且输入未变的工作不重跑;任何失败都保留最佳候选与原始产物。
模拟终审框架(非 COMAP 官方评分表):一票否决与奖项封顶 → 七类 100 分评分 → 模型逐个审计 → 关键结果审计 → MCM A/B/C 与 ICM D/E/F 专项 → 固定 14 节终审报告。评分不修改建模侧的 SOLVED 判定。
安装:
dsh plugin --profile web add github:yohanchen1/MathModelingAgent#v0.5.2
dsh --profile web --dump-config # 检查组合层(应看到 dsh-math-modeling-agent-skills 行)
dsh web # 重启以加载插件
(npm 源通道:dsh plugin --profile web add dsh-math-modeling-agent —— 从 npm registry 拉最新版;
dsh plugin 会在 profile 目录执行 pnpm 安装并自动把插件注册进 dsh.profile.bundles,
不要用 npm install 代替,那会装到错误位置。如本机镜像源同步滞后,可显式走官方源:
dsh plugin --profile web add dsh-math-modeling-agent --registry=https://registry.npmjs.org/)
维护者在发布后应分别核对 GitHub 解包目录、npm tarball 解包目录和 profile 安装目录:
node skills/math-modeling-agent/scripts/distribution-parity.mjs <source-root> <candidate-root>
该命令比较 package.json files allowlist 内所有文件的 SHA-256;它不把 AI
解题中的偶发失败当作分发失败。dsh --profile web --dump-config 用于检查组合,
但新版 DSH 可能重写 profile 的空 cordis.yml,不是严格只读操作。
开始建模——直接描述任务即可。每个环节都是人与 LLM 的深度信息交换:LLM 给出带依据链的 完整分析(题面原句/数据证据/文献/显式判断标记),你纠正、补充背景或提供自己的参考文献, LLM 更新并展示差异。建模前必须先做文献调研(AI 检索原理与方法文献,你可增删),每个候选 方向都有文献出处;每轮在对话直接输出 runlog 式摘要(问题重述/分析/假设/建模求解/验证/鲁棒性/ 评价改进/参考文献),失败尝试按类归档,终态前强制鲁棒性敏感度分析:
建立这个数学建模问题的模型,先分析题目和数据。
任何"最优""显著""泛化"的结论都必须提供相应证据,证据不足不要强行确定。
独立审计——给已有论文/模型/代码:
独立审计这份结果,逐条给出 PASS / FAIL / INCONCLUSIVE,不要帮我修改原文。
skills/
├── math-modeling-agent/ # 建模、执行、修正、生成证据
└── math-modeling-audit/ # 独立复算、反例攻击、证据审查、MCM/ICM 终审
assets/ # README 工作流总览图
tests/ # 状态机、锁与恢复、验证协议、打包完整性、MCM 评分
cordis.patch.yml package.json README.md LICENSE
dsh plugin --profile web remove dsh-math-modeling-agent
然后重启当前 DSH host。
exit 0 只是程序状态,不是数学结论。INCONCLUSIVE 优于编造。继承"问题分解 + 多轮尝试 + 失败后换方向"的 Agent 建模思想(受 IMO25 等启发)。核心变化:把验证裁决从 LLM 主观评价中拿出来——不是"分析者觉得 4/5 分可以通过",而是 Claim → Obligation → 工具/独立检查 → Evidence → PASS / FAIL / INCONCLUSIVE。LLM 可以提出主张、攻击主张,但不能仅凭自己的判断宣布主张已被证明。
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: math-modeling。