用途
solo 是 math-proof 系列技能中的一个,用于在当前会话中由 AI 独立解决一个困难的数学问题。它不使用任何子智能体,也没有轮次划分:只有你、一个笔记文件,以及最终产出的 proof.md。
主要能力
- 在当前会话中独立完成数学问题的推理与证明。
- 通过分阶段推理,将每个已确定的步骤(引理及其证明、归约、死路及其原因、当前尝试的精确陈述)写入笔记文件 DIR/notes.md,避免未写下的推理丢失。
- 最终产出完整的、自包含的证明文件 DIR/proof.md,供无法访问其他文件的审阅者独立阅读。
- 支持从调用消息中解析问题陈述或问题文件路径,并可指定运行目录。
- 支持在会话被截断后,从笔记文件中最后记录的点继续,而不是重新开始。
使用方式
调用消息格式为:$ARGUMENTS,其中包含问题陈述,以及可选的运行目录。
- 如果消息开头有 DIR=path 形式的标记,则设置运行目录(路径含空格时需加引号),并移除该标记。
- 如果出现其他 NAME=value 形式的前导标记(NAME 为两个或以上大写字母和下划线组成的词,value 为整数),则告知用户 /math-proof:solo 只接受 DIR=path 在问题之前(round 和 wave 设置属于 /math-proof:siege),如果该标记是问题本身的一部分,则可将问题作为文件路径给出,然后停止。
- 如果剩余内容为单行,且整体(去除首尾空白和一对包围引号,反斜杠转义的空格视为空格)是现有文件的路径(可能含空格;用 Read 或 Glob 检查,而非 shell),则该文件为问题文件。
- 如果不存在这样的文件,且剩余内容只能是文件路径(以 .md、.txt 或 .tex 结尾的单行,或去除引号后不含空格但包含 "/" 或 "" 的单个 token),则告知用户所查找的绝对路径下不存在文件,并说明问题可以改为在命令后以文本形式完整给出,然后停止。
- 否则,剩余的全部内容(直到消息结尾)就是问题陈述,逐字保留——包括数学内容、换行等("n=3"、"N=pq" 和 "AB=AC" 是数学内容,不是设置)。
- 运行目录 DIR 默认为当前目录下的 ./math-proof-solo;下文均使用 DIR 的绝对路径。
- 如果消息中既没有可读的问题文件,也没有任何问题文本,则用一句话说明,并给出用法:/math-proof:solo <problem statement, or the path of a file holding it>,然后停止。
设置
运行的文件包括 DIR/problem.md(问题)、DIR/notes.md(笔记)和 DIR/proof.md(交付物)。
- 用 mkdir -p 创建 DIR。
- 如果 DIR/notes.md 已存在,说明该问题已在 DIR 中处理过:检查 DIR/problem.md 是否与给定问题相同(比较文本,忽略空白和行尾差异;对于文件,用 cmp)——如果不同,用一句话说明 DIR 中保存的是另一个问题的工作,并说明 DIR=<another directory> 可选择新目录,然后停止;如果相同,则读取 DIR/notes.md,以及 DIR/proof.md(如果存在)。
- 如果它们记录解决方案已完成(proof.md 已写入且笔记中没有待办事项),说明之前的会话已完成:指出 proof.md 的位置,并说明 DIR=<another directory> 可开始新的尝试,然后停止。
- 否则,之前的会话在完成前结束,其未写下的推理已丢失:从笔记中最后记录的点继续,而不是重新开始。
- 如果 DIR/notes.md 尚不存在,则将问题放入 DIR/problem.md:如果问题来自文件,用 cp 逐字节复制该文件;如果问题来自调用消息中的文本,则精确写入该文本(不添加、删除或改写)。
- 然后完整读取 DIR/problem.md;它是问题的权威文本。
- shell 仅用于上述 mkdir、cp 和 cmp。
任务
解决 DIR/problem.md 中陈述的问题;交付物是 DIR/proof.md。
- 该任务以对话形式运行,可能跨越多条消息,每条消息的输出额度有限;被截断的消息通常会跟随继续请求,只有已写下的内容(而非未写下的推理)保证传递到下一条消息。
- 因此,要边推理边将工作成果写入笔记文件 DIR/notes.md:每当确定某件事——引理及其证明、归约、死路及其原因、当前尝试的精确陈述——在进一步推理之前先写下来。
- 部分答案比没有答案有用得多。写入笔记不是完成——每次写入后继续。
- 重要:每条消息的输出额度也涵盖私有推理,且远小于一个困难问题所需的量——一条完全用于推理、什么都没写的消息会被截断,未写下的推理应视为丢失。
- 因此不要试图在一条消息中完成。分阶段工作:在每条消息的早期,在任何长推导之前,将当前计划和正在尝试的精确陈述写入 DIR/notes.md;然后推理出下一个具体的中间结果,一旦得到就追加到笔记中,并继续。
- 许多简短的书面步骤胜过一条冗长的未写步骤。如果消息被截断,重新读取 DIR/notes.md 并从最后写下的内容继续;绝不重新开始。
- 没有网络访问,也没有代码执行;这是纯推理任务。
- 当问题解决,或已尽可能推进时,将完整解决方案写入 DIR/proof.md。proof.md 由无法打开任何其他文件(包括笔记)的审阅者独立阅读,因此必须自包含:解决方案依赖的每个论证都要在其中完整写出。
- 无人值守工作:没有人回答问题,因此绝不停下来提问。
完成
当 DIR/proof.md 写入后,简要回复:proof.md 的位置,以及它是否完全解决了问题,或者用 proof.md 自己的话说明它留下了什么未解决。
适用场景
- 需要独立解决困难数学问题的场景。
- 需要分阶段推理并记录中间步骤,以避免推理丢失的场景。
- 需要产出自包含证明文件的场景。
限制
- 不使用子智能体,也没有轮次划分。
- 没有网络访问,也没有代码执行。
- 每条消息的输出额度有限,涵盖私有推理。
- 无人值守,不能提问。
- 仅接受 DIR=path 作为前导设置,其他 NAME=value 形式的前导标记不被支持。