ByteNoteByteNote

字节笔记本

2026年2月16日

Karpathy:基于 Claude Code 的智能机器学习工程师代理

API中转
¥120

本文介绍 Karpathy,一个基于 Claude Code SDK 和 Google ADK 的智能机器学习工程师代理。该项目展示了如何利用 Claude Scientific Skills 实现自动化的机器学习实验流程,从数据准备到模型训练评估的全流程自动化。

项目简介

Karpathy 是一个开源的智能机器学习工程代理,由 K-Dense AI 开发维护。截至目前,该项目在 GitHub 上已获得 1.2k stars,使用纯 Python 编写。该项目致敬 Andrej Karpathy 对 AI 领域做出的杰出贡献。

项目名称虽然与 Andrej Karpathy 同名,但并非官方项目,而是社区开发者出于敬意创建的实验性项目。

核心特性

  • 🤖 智能代理架构:基于 Google ADK 构建的多代理协作系统
  • 🔬 科学技能集成:内置 Claude Scientific Skills 机器学习工具集
  • 📝 自动实验规划:智能分解 ML 任务,创建可执行的研究计划
  • 👥 专家团队协作:数据工程师、实验管理员、代码编写者等专业代理协同工作
  • 🔒 安全沙箱执行:所有代码在隔离的 sandbox 目录中运行
  • ⚡️ 快速环境搭建:一键配置 uv 虚拟环境和 ML 依赖包

技术栈

  • Python 3.13+ - 主要编程语言
  • Google ADK - 代理开发框架
  • Claude Code SDK - 代码执行和工具调用
  • uv - 极速 Python 包管理器
  • PyTorch - 深度学习框架
  • Transformers - Hugging Face 预训练模型库

安装指南

前置要求

  • Python 3.13 或更高版本
  • uv 包管理器
  • Claude Code 已安装并认证

安装步骤

bash
# 克隆项目
git clone https://github.com/K-Dense-AI/karpathy.git
cd karpathy

# 安装依赖
uv sync

环境配置

karpathy 目录创建 .env 文件:

bash
OPENROUTER_API_KEY=your_openrouter_api_key_here
AGENT_MODEL=your_model_name_here

快速开始

运行启动脚本自动配置沙箱环境并启动 ADK Web 界面:

bash
python start.py

启动脚本会自动完成以下操作:

  1. 创建 sandbox 目录并集成 Claude Scientific Skills
  2. 配置 Python 虚拟环境,安装 PyTorch、transformers、scikit-learn 等 ML 包
  3. 复制 .env 文件到沙箱目录
  4. 启动 ADK Web 服务

然后访问 http://localhost:8000,在左上角选择 karpathy 代理开始对话。

使用示例

与代理交互

text
用户:帮我训练一个图像分类模型,使用 CIFAR-10 数据集

Karpathy:我来帮你完成这个任务。首先让我创建计划,然后协调专家团队执行。

[Plan Creator] 正在创建实验计划...
[Data Engineer] 准备 CIFAR-10 数据集...
[Experiment Manager] 设计模型架构和训练流程...
[Code Writer] 实现训练代码...
[Code Executor] 运行训练并监控指标...

专家代理系统

Karpathy 包含多个专业代理,可根据任务需求灵活调用:

代理名称职责
Plan Creator创建全面的实验计划,保存到 plan.md
Plan Reviewer审核计划的完整性和质量
Research Agent使用 perplexity-search 技能进行主题研究
Data Discoverer发现和描述数据集,执行探索性数据分析
Data Engineer准备和管理数据集(清洗、分割、版本控制)
Experiment Manager设计和运行实验(超参搜索、消融实验)
Evaluation Agent定义指标、评估模型、对比基线
Code Planner设计代码架构和实现方案
Code Reviewer审核代码计划的正确性和完整性
Code Writer按计划实现代码
Code Executor运行和测试代码

手动设置沙箱(可选)

如果不使用启动脚本,可以手动配置:

bash
# 设置沙箱环境
python -m karpathy.utils

# 手动启动 ADK Web 界面
adk web

工作原理

代理架构

Karpathy 的核心是一个主代理(MainAgent),负责理解用户意图并协调专家团队:

python
from google.adk.agents import LlmAgent
from google.adk.models.lite_llm import LiteLlm

main_agent = LlmAgent(
    name="MainAgent",
    model=LiteLlm(model=MODEL),
    description="确保用户的机器学习请求成功完成",
    instruction=load_instructions("main_agent"),
    tools=[delegate_task],
    output_key="final_output",
)

任务委托机制

主代理通过 delegate_task 工具将子任务分配给专家代理:

python
async def delegate_task(prompt: str, append_system_prompt: str):
    """将任务委托给专家代理"""
    result = await query(
        prompt=f"{COMMON_INSTRUCTIONS}\n\nUser Prompt: {prompt}",
        options=ClaudeAgentOptions(
            system_prompt={
                "type": "preset",
                "preset": "claude_code",
                "append": append_system_prompt,
            },
            cwd="sandbox",
            permission_mode="bypassPermissions",
        ),
    )
    return result

沙箱隔离

所有代码执行都在 sandbox 目录中进行,确保:

  • 实验之间互不干扰
  • 依赖环境独立管理
  • 便于复现和分享结果

项目链接

注意事项

免责声明:本项目与 Andrej Karpathy 无官方关联,项目名称仅作为致敬和对其 AI 贡献的尊重。

如需更强大的多代理 ML 能力,可注册 K-Dense 平台(目前处于封闭测试阶段)。

分享: