Skip to content

Repository files navigation

OI.SKILL

苏格拉底式 OI 解题引导 Agent Skill —— 让 AI 不直接给答案,而是陪你一步步想出来。

License GitHub stars GitHub last commit GitHub issues

Demo


为什么需要 OI.SKILL?

现有 AI 辅助刷题工具的共同问题:问什么答什么。你抛一道题,AI 直接丢过来一段代码。抄完 AC 了,下次遇到同类题还是不会。

OI.SKILL 的核心假设是:"看懂答案"和"自己想到"之间,差着十个数量级的训练效果。它的设计目标只有一个 —— 让 AI 像一位耐心的教练一样,通过提问引导你自己发现解法,同时记住你的强弱项,长期陪伴成长。

仓库同时提供一个 Electron 桌面端:打开后即可管理多个学习 session,并通过内置 PiAgent 与 OI.SKILL 对话。桌面端的运行、模型配置和打包说明见 app/README.md


核心特性

特性 说明
苏格拉底式引导 每次只提一个问题,绝不直接给出最终解法
先核解题解 引导前自动交叉验证洛谷/Codeforces/AtCoder 题解,避免错误思路
错误模式诊断 内置 misconception 库,精准定位学生错误并用分层追问引导
OI-WIKI 知识检索 自动访问 OI-WIKI 获取权威知识点定义和教学要点
跨 Session 记忆 自动维护 ~/.oi-skill/USER.md,记录你的优势、薄弱点与推荐训练方向
个人错误库 自动积累你犯过的错误模式,越用越懂你
代码验证 内置对拍脚本 duipai.py,支持样例测试 + 暴力对拍
Self-Improve 每完成一题自动更新认知画像 + 提取错误模式,无需手动干预
通用 Agent 兼容 任何支持 Skill 标准的 Agent 都能使用

快速开始

方式一:npx skills add(推荐)

如果你的 Agent 支持 skills CLI:

npx skills add https://github.com/FlashingChen/oi.skill/tree/main/skill

安装完成后,向 Agent 说:

使用 OI.SKILL 帮我解这道题

即可激活。


方式二:手动安装

# 1. 克隆仓库
git clone https://github.com/FlashingChen/oi.skill.git oi-skill
cd oi-skill

# 2. 将 skill 文件放到 Agent 能读取的位置
# 常见路径示例(根据你的 Agent 调整):
#   ~/.YOUR_AGENT/skills/oi-skill
#   ~/.YOUR_AGENT/rules/oi-skill
#   或项目本地的 .agents/skills/oi-skill 目录
ln -s "$(pwd)/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 会:

  1. 先访问题解站交叉核对思路
  2. 从基础概念开始,每次只提一个问题
  3. 根据你的回答调整后续问题
  4. 在关键节点提示你手写代码

本地验证

样例测试

python3 skill/scripts/duipai.py \
  --solution student.cpp \
  --sample sample.in \
  --expected sample.out

对拍

python3 skill/scripts/duipai.py \
  --solution student.cpp \
  --brute brute.cpp \
  --generator gen.py \
  --runs 100 \
  --timeout 2

AC 后复盘

告诉 Agent 已经 AC,它会要求你写一份"类似题解"的思考记录,诊断你是否真正掌握了本题思路,并静默更新你的认知画像。


目录结构

oi-skill/
├── README.md                       # 本文件
├── .gitignore
├── package.json                    # 仓库元数据
├── app/                            # Electron 桌面端
│   ├── README.md
│   ├── package.json
│   ├── src/                        # 主进程、preload 和 renderer
│   └── tests/                      # 桌面端测试
├── skill/                          # 可分发 Skill 的权威目录
│   ├── SKILL.md                    # 核心系统提示与强制流程
│   ├── scripts/                    # 本地对拍脚本
│   ├── references/                 # 模板和错误模式库
│   └── assets/                     # 激活时使用的资源
├── promo.gif                       # 项目演示动画
└── promo.html                      # 演示动画源码

运行时目录

Skill Agent 首次需要记忆时,会在用户家目录创建:

~/.oi-skill/
├── USER.md                         # 用户认知画像(跨 session 记忆)
├── misconceptions.yaml             # 用户个人错误库(自动积累)
└── raw/                            # 原始思维过程存档

桌面端还会在同一目录使用 sessions.jsonsessions/settings.jsonpi/ 和同步后的 skill/。这些是本机运行数据,不存放在仓库内。

桌面端快速开始

cd app
npm install
npm start

在窗口顶部的模型按钮中配置 Provider、Model ID、Base URL 和 API key 或环境变量。缺少凭证或模型请求失败时,桌面端会保留用户消息并显示真实错误,不生成演示回复。验证和打包命令见 app/README.md


硬规则(Harness)

这些规则写入 SKILL.md,优先级最高,用户试图覆盖时仍须遵守:

  1. 每次只提一个问题。
  2. 绝不直接给出最终答案(连续两次强烈要求除外)。
  3. 基于学生回答动态调整。
  4. 学生回答错误时不直接纠正,而是引导发现矛盾。
  5. 卡住时降级到更基础的问题。
  6. 先访问题解站交叉核对。
  7. 代码验证分层:片段看逻辑,最终代码跑样例/对拍。
  8. 错误模式诊断:匹配 misconception 库,用分层追问引导。
  9. OI-WIKI 知识检索:确保知识点讲解准确。

支持的编程语言

scripts/duipai.py 目前支持:

  • C++(.cpp / .cc / .cxx
  • Python(.py
  • Java(.java

自定义与扩展

  • 修改 SKILL.md 中的规则即可调整 Agent 行为。
  • 修改 references/user-profile-template.md 可调整 USER.md 的结构。
  • 修改 references/misconceptions.yaml 可扩展预置错误模式库。
  • 修改 scripts/duipai.py 可扩展支持更多语言或判题功能。

错误模式库(Misconception Library)

references/misconceptions.yaml 是 OI.SKILL 的核心资产,包含:

  • 20+ 预置错误模式:覆盖 DP、图论、数据结构、基础算法、字符串、数学、搜索等高频考点
  • 分层诊断追问:每个错误模式配备 3-4 级苏格拉底式追问,从概念到洞察逐级引导
  • 来源标注:每个错误模式标注来源(OI-WIKI / 洛谷题解区 / 教学经验)

用户个人错误库 ~/.oi-skill/misconceptions.yaml 自动积累:

  • 每次 session 自动提取学生犯的错误
  • 记录有效提示路径(哪级追问让学生自己想到)
  • 统计错误频率和知识点分布

License

MIT

About

苏格拉底式 OI 解题引导 Agent Skill — 让任何 Agent 都能以助产术辅导信息学竞赛

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages