mcpField
K
karpathy-practice-environments

karpathy-practice-environments

github.com/learnprompt测试与质量118122 次安装16 周前更新
代码仓库

关于 karpathy-practice-environments

karpathy-practice-environments 为 Agent 技能训练设计练习环境,适合构建或评估 Agent 的开发者。它将背景知识、示例、递进练习、自动评分和反馈重试组成训练循环。

主要功能

  1. 01设计 Agent 练习环境
  2. 02组织背景知识与示例
  3. 03生成递进式练习
  4. 04定义自动评分标准
  5. 05设计失败反馈与重试
  6. 06构建技能学习课程

适用场景

  1. 01为 Agent 的特定技能搭建练习场
  2. 02快速评估 Agent 能力
  3. 03规划分阶段训练内容
  4. 04为练习任务编写评分标准

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/learnprompt/andrej-karpathy-skills --skill karpathy-practice-environments

安装后在 Claude Code 中输入/karpathy-practice-environments确认已加载。

详细介绍

技能 14:大模型教科书 + 练习环境

来源:https://x.com/karpathy/status/1885026028428681698 | https://x.com/karpathy/status/1960803117689397543 “让大模型去上学” | “用于强化学习的环境”帖子

核心原则

大模型像学生一样学习。为它们提供教科书、例题和练习场。

Karpathy 的洞见:大模型训练中缺少的并不是更多参数,而是练习环境,让 Agent 可以尝试 → 失败 → 获得反馈 → 再次尝试。这就像一个学生,读了理论之后还需要做习题。

将此应用到你的 Agent:构建能让它们练习技能并获得自动评分的环境,而不是只让它们对着虚空生成输出。

三种训练数据类型

每个良好的学习环境都需要这三种数据:

1. EXPOSITION (pretrain equivalent)
   → Background knowledge, concepts, context
   → The "textbook chapter" the agent reads before practicing
   
2. WORKED EXAMPLES (SFT equivalent)
   → Complete input-output pairs with reasoning shown
   → "Here's a solved problem — learn the pattern"
   
3. PRACTICE PROBLEMS with feedback (RL equivalent)
   → Problems with verifiable correct answers
   → Automatic scoring so agent knows how it did
   → Enough variety that memorization doesn't work

构建练习场(通用模板)

对于任何你希望 Agent 提升的技能:

#!/usr/bin/env python3
"""
Practice Gym for: [SKILL_NAME]
Karpathy-style RL environment for agent skill development
"""

import json
import random
from typing import Callable

class PracticeGym:
    """
    A practice environment where an agent can repeatedly attempt
    a task and receive automatic feedback.
    """
    
    def __init__(self, task_generator: Callable, scorer: Callable):
        self.task_generator = task_generator  # generates new practice problems
        self.scorer = scorer                   # returns 0.0-1.0 score for an attempt
        self.history = []
    
    def sample_task(self):
        """Generate a new practice problem."""
        return self.task_generator()
    
    def evaluate(self, task, attempt):
        """Score an agent's attempt. Returns dict with score + feedback."""
        score = self.scorer(task, attempt)
        result = {
            "task": task,
            "attempt": attempt,
            "score": score,
            "passed": score >= 0.8,
        }
        self.history.append(result)
        return result
    
    def summary(self):
        """Summarize performance across all attempts."""
        if not self.history:
            return "No attempts yet."
        scores = [r["score"] for r in self.history]
        return {
            "total_attempts": len(scores),
            "avg_score": sum(scores) / len(scores),
            "pass_rate": sum(1 for s in scores if s >= 0.8) / len(scores),
            "recent_trend": "improving" if scores[-1] > scores[0] else "declining"
        }

练习环境设计提示词

为任意技能构建练习场:

Design a practice environment for training an LLM agent to [SKILL].

Skill description: [WHAT THE AGENT SHOULD GET BETTER AT]
Current performance: [HOW WELL IT DOES NOW]
Target performance: [WHAT GOOD LOOKS LIKE]

Design the gym with:

1. TASK GENERATOR
   - Input format: [what the task looks like]
   - Variation parameters: [what changes between tasks]
   - Difficulty levels: [easy / medium / hard criteria]
   - Example task: [concrete example]

2. SCORER  
   - What makes an attempt correct? (exact match / rubric / functional test)
   - Score breakdown: [what earns partial credit]
   - Automatic vs human evaluation: [which parts can be automated]
   - Example: good attempt vs bad attempt with scores

3. CURRICULUM
   - Start: [simplest tasks to build confidence]
   - Progress: [how to increase difficulty as performance improves]
   - Mastery criterion: [when is the skill "learned"?]

4. FEEDBACK FORMAT
   What should the agent receive after each attempt?
   - Score (0-1)
   - Specific error: [what went wrong]
   - Hint for next attempt: [one actionable tip]

快速评估循环提示词

快速测试 Agent 在一组练习题上的表现:

Run an evaluation loop on this agent capability.

Agent task: [WHAT THE AGENT IS SUPPOSED TO DO]

Test cases:
1. Input: [test input 1]
   Expected output: [expected 1]
   
2. Input: [test input 2]
   Expected output: [expected 2]
   
3. Input: [test input 3]
   Expected output: [expected 3]

For each test case:
1. Attempt the task
2. Compare to expected output
3. Score: PASS / PARTIAL / FAIL
4. Explain the error (if any) in one sentence

Final report:
- Pass rate: N/3
- Most common failure mode: [pattern in errors]
- Suggested improvement: [one specific fix]

课程设计模板

构建循序渐进的学习过程:

Design a learning curriculum for an agent to master [SKILL].

Like Karpathy's "take LLMs to school" approach — structure it as:

WEEK 1 — Foundations (exposition):
- Core concepts to internalize
- 3-5 worked examples with full reasoning traces
- Quiz: 5 basic problems with answers

WEEK 2 — Pattern Recognition (practice):
- 20 practice problems, graduated difficulty
- Automatic scoring criteria
- Common error analysis

WEEK 3 — Generalization (RL-style):
- Novel problems the agent hasn't seen
- Real-world variants
- Adversarial examples (edge cases designed to fail)

Mastery test: [describe the final eval that confirms the skill is learned]

常见技能的评分标准

代码生成
Score 1.0: Correct output, handles edge cases, clean style
Score 0.8: Correct output, misses 1 edge case
Score 0.5: Core logic correct, fails on some inputs
Score 0.2: Wrong approach but partially useful
Score 0.0: Doesn't compile or clearly wrong
推理/分析
Score 1.0: Correct conclusion + correct reasoning chain + appropriate confidence
Score 0.8: Correct conclusion, minor reasoning gap
Score 0.5: Correct conclusion, wrong reasoning
Score 0.2: Wrong conclusion but shows relevant knowledge
Score 0.0: Wrong conclusion, no relevant reasoning
遵循指令
Score 1.0: All instructions followed, output matches spec exactly
Score 0.8: Minor deviation from spec, intent preserved
Score 0.5: Core task done, 1-2 instructions ignored
Score 0.2: Significant departure from instructions
Score 0.0: Instructions ignored entirely

一页纸环境

Karpathy 的做法:发布环境规范(而非实现),让任何人都能构建自己的练习场:

Write a Gist-style environment spec for [SKILL_GYM].

Format:
# [GYM_NAME] — Practice Environment Spec
## What this trains
## Task format
## Scoring criteria  
## Sample task + ideal response
## Curriculum (3 stages)
## How to evaluate mastery

This is a spec, not code. Anyone with an LLM should be able to implement it.

工作流

属于工作流:月度体检(第 3 步)

位置上游下游
第 3 步(练习)karpathy-understanding-first(识别盲区后)karpathy-education-first(把练习成果教学化)

完整链路:meta-reflection → understanding-first → practice-environments → education-first

提示词约定

Build a practice environment for <SKILL_OR_CAPABILITY>. Include: 1) Exposition — what this skill is and why it matters (3-5 sentences), 2) Worked examples — 2-3 complete input→output demonstrations, 3) Practice tasks — 5 exercises with increasing difficulty, 4) Automatic grading — for each task define pass/fail criteria that can be checked without human judgment, 5) Retry loop — if failed, what feedback to give and how to adjust difficulty.

验证清单

  • 练习环境有明确的技能定义(不是模糊的「变强」)
  • 例题覆盖了典型和边界情况
  • 评分标准不需要人工判断(自动化)
  • 失败时有具体反馈(不只是「错了」)
  • 难度有递进(不是一步到位)
  • Agent 可以自主重试直到通过

评论

支持 Markdown