苏格拉底式 OI 解题引导 Agent Skill —— 让 AI 不直接给答案,而是陪你一步步想出来。
现有 AI 辅助刷题工具的共同问题:问什么答什么。你抛一道题,AI 直接丢过来一段代码。抄完 AC 了,下次遇到同类题还是不会。
OI.SKILL 的核心假设是:"看懂答案"和"自己想到"之间,差着十个数量级的训练效果。它的设计目标只有一个 —— 让 AI 像一位耐心的教练一样,通过提问引导你自己发现解法,同时记住你的强弱项,长期陪伴成长。
| 特性 | 说明 |
|---|---|
| 苏格拉底式引导 | 每次只提一个问题,绝不直接给出最终解法 |
| 先核解题解 | 引导前自动交叉验证洛谷/Codeforces/AtCoder 题解,避免错误思路 |
| 跨 Session 记忆 | 自动维护 ~/.oi-skill/USER.md,记录你的优势、薄弱点与推荐训练方向 |
| 代码验证 | 内置对拍脚本 duipai.py,支持样例测试 + 暴力对拍 |
| Self-Improve | 每完成一题自动更新认知画像,无需手动干预 |
| 通用 Agent 兼容 | 任何支持 Skill 标准的 Agent 都能使用 |
如果你的 Agent 支持 skills CLI:
npx skills add FlashingChen/oi.skill --skill oi-skill安装完成后,向 Agent 说:
使用 OI.SKILL 帮我解这道题
即可激活。
# 1. 克隆仓库
git clone https://github.com/FlashingChen/oi.skill.git
# 2. 将 skill 文件放到 Agent 能读取的位置
# 常见路径示例(根据你的 Agent 调整):
# ~/.YOUR_AGENT/skills/oi-skill
# ~/.YOUR_AGENT/rules/oi-skill
# 或项目本地的 .agents/oi-skill 目录
ln -s $(pwd)/oi-skill ~/.YOUR_AGENT/skills/oi-skill核心要求:确保 Agent 在执行任务前能读取到
SKILL.md的内容。具体路径因 Agent 而异,参考你所用工具的文档。
向 Agent 说明使用 OI.SKILL:
使用 OI.SKILL 帮我解这道题
Agent 会先输出 ASCII 字符画,然后进入待命状态:
OI.SKILL 已激活。请粘贴题目、提供题面链接,或上传你的思考过程。
你可以:
- 粘贴纯文本题面
- 提供洛谷 / Codeforces / AtCoder 等题目链接
- 上传图片或 PDF(Agent 会尝试 OCR)
Agent 会:
- 先访问题解站交叉核对思路
- 从基础概念开始,每次只提一个问题
- 根据你的回答调整后续问题
- 在关键节点提示你手写代码
python3 oi-skill/scripts/duipai.py \
--solution student.cpp \
--sample sample.in \
--expected sample.outpython3 oi-skill/scripts/duipai.py \
--solution student.cpp \
--brute brute.cpp \
--generator gen.py \
--runs 100 \
--timeout 2告诉 Agent 已经 AC,它会要求你写一份"类似题解"的思考记录,诊断你是否真正掌握了本题思路,并静默更新你的认知画像。
oi-skill/
├── SKILL.md # 核心系统提示与强制流程(Agent 读取此文件)
├── README.md # 本文件
├── .gitignore
├── promo.gif # 项目演示动画
├── promo.html # 演示动画源码
├── scripts/
│ └── duipai.py # 本地对拍 / 样例测试脚本
├── references/
│ ├── user-profile-template.md # USER.md 模板
│ └── raw-thinking-template.md # 原始思维过程文件模板
└── assets/
└── oi-skill-ascii.txt # 激活时 ASCII 字符画
首次使用时,Agent 会自动在用户家目录创建:
~/.oi-skill/
├── USER.md # 用户认知画像(跨 session 记忆)
└── raw/ # 原始思维过程存档
注意:USER.md 和 raw/ 不存放在 skill 目录内,而是放在用户家目录下,以实现真正的跨 session、跨设备记忆隔离。
这些规则写入 SKILL.md,优先级最高,用户试图覆盖时仍须遵守:
- 每次只提一个问题。
- 绝不直接给出最终答案(连续两次强烈要求除外)。
- 基于学生回答动态调整。
- 学生回答错误时不直接纠正,而是引导发现矛盾。
- 卡住时降级到更基础的问题。
- 先访问题解站交叉核对。
- 代码验证分层:片段看逻辑,最终代码跑样例/对拍。
scripts/duipai.py 目前支持:
- C++(
.cpp/.cc/.cxx) - Python(
.py) - Java(
.java)
- 修改
SKILL.md中的规则即可调整 Agent 行为。 - 修改
references/user-profile-template.md可调整 USER.md 的结构。 - 修改
scripts/duipai.py可扩展支持更多语言或判题功能。
MIT
