纳米试剂
观看了我们如何将GPT-5和Claude Code用于纳米试剂 这里.
什么? 用于实验性、小型工程代理的MCP服务器,具有多提供商LLM支持。
为什么? 测试和比较 能动性 云和本地LLM在性能、速度和成本方面的能力。
“这不再是一个简单的即时电话。这是关于你的代理如何将多个工具链接在一起,以代表你完成真正的工程结果。”-根据我们的评估
🎬 在行动中看到它
多模型评估流程 -观看9个型号(GPT-5、Claude Opus、Local GPT-OSS)在同一台M4 Max上并行运行:
模型比较:GPT-5与本地模型 -令人惊讶的结果:GPT-OSS 20B/120B在设备上运行,成本为0.00美元:
🔥 我们测试的主要发现
- 令人惊讶的赢家:考虑到速度和成本,GPT-5 Nano/Mini的性能通常优于较大型号
- 地方革命:GPT-OSS 20B/120B型号在M4 Max(128GB RAM)上完成真实的代理编码任务
- 成本现实检查:Claude Opus 4.1非常昂贵——性能不是一切
- 三角贸易:性能vs速度vs成本-您并不总是需要最昂贵的型号
安装
快速安装(推荐)
- cp ./.env.sample ./.env 并填写变量 - cp ./apps/nano_agent_mcp_server/.env.sample ./apps/nano_agent_mcp_server/.env 并填写变量
- 克隆存储库
- git clone https://github.com/disler/nano-agent
- 全局安装
nano-agent为Claude Code(任何mcp客户端)公开它
- cd nano-agent/apps/nano_agent_mcp_server - ./scripts/install.sh - uv tool install -e .
- 内容提供商
.mcp.json.sample向.mcp.json使用nano-agent - 你最终应该得到一个
.mcp.json文件看起来像这样:
{
"mcpServers": {
"nano-agent": {
"command": "nano-agent",
"args": []
}
}
}- 您也可以在不安装的情况下进行测试
nano-agent全局运行此目录
{
"mcpServers": {
"nano-agent": {
"command": "uv",
"args": ["--directory", "apps/nano_agent_mcp_server", "run", "nano-agent"]
}
}
}现在你可以跟随 下面的纳米试剂相互作用部分 以测试纳米试剂。
纳米试剂相互作用
有三种方法可以与纳米试剂相互作用。
- 纳米试剂 通过CLI (
uv run nano-cli run)
- 非常适合了解代理功能
- 纳米试剂 通过克劳德代码 或任何MCP客户端(
.mcp.json或等效配置)
- 非常适合委派工作和扩展现场计算
- 纳米试剂 通过高阶提示 (HOP)和低阶提示(LOP)模式,用于跨提供商和模型测试和比较模型。
通过CLI
记住,直接运行时,当前目录就是您运行的位置 uv run nano-cli run 从。
cd apps/nano_agent_mcp_server
# Test tools without API
uv run nano-cli test-tools
# Run with different models (provider auto-detected from model name)
uv run nano-cli run "List all Python files in the current directory" # gpt-5-mini (default)
uv run nano-cli run "Create a hello world script in python" --model gpt-5-nano
uv run nano-cli run "Summarize the README.md" --model gpt-5
# Test Anthropic models (requires ANTHROPIC_API_KEY)
uv run nano-cli run "Hello" --model claude-3-haiku-20240307 --provider anthropic
uv run nano-cli run "Hello" --model claude-sonnet-4-20250514 --provider anthropic
uv run nano-cli run "Hello" --model claude-opus-4-20250514 --provider anthropic
uv run nano-cli run "Hello" --model claude-opus-4-1-20250805 --provider anthropic
# Test local Ollama models (requires ollama service) (be sure to install the model first with `ollama pull gpt-oss:20b`)
uv run nano-cli run "List files" --model gpt-oss:20b --provider ollama
uv run nano-cli run "List files and count the total number of files and directories" --model gpt-oss:120b --provider ollama
# Verbose mode (shows token usage)
uv run nano-cli run "Create and edit a test file" --verbose通过克劳德代码
直接呼叫MCP服务器
mcp nano-agent: prompt_nano_agent "Create a hello world script in python" --model gpt-5
mcp nano-agent: prompt_nano_agent "Summarize the README.md" --model claude-opus-4-1-20250805 --provider anthropic
mcp nano-agent: prompt_nano_agent "Read the first 10 lines and last 10 lines of the README.md" --verbose
etc...通过子代理呼叫MCP服务器
@agent-nano-agent-gpt-5-mini "Create a hello world script in python"
@agent-nano-agent-gpt-5 "Summarize the "
@agent-nano-agent-claude-opus-4-1 ""
@agent-nano-agent-gpt-oss-20b ""
@agent-nano-agent-gpt-oss-120b ""
@agent-nano-agent-claude-sonnet-4 ""
@agent-nano-agent-claude-3-haiku ""通过高阶提示(HOP)和低阶提示(LOP)模式
在克劳德代码调用
/perf:hop_evaluate_nano_agents .claude/commands/perf/lop_eval_1__dummy_test.md
/perf:hop_evaluate_nano_agents .claude/commands/perf/lop_eval_2__basic_read_test.md
/perf:hop_evaluate_nano_agents .claude/commands/perf/lop_eval_3__file_operations_test.md
/perf:hop_evaluate_nano_agents .claude/commands/perf/lop_eval_4__code_analysis_test.md
/perf:hop_evaluate_nano_agents .claude/commands/perf/lop_eval_5__complex_engineering_test.md理解HOP/LOP:它是如何工作的
这 HOP/LOP模式 能够对多个模型进行系统的并行评估:
- HOP(高阶提示):读取测试文件、并行委派给代理并对结果进行评分的编排器
- LOP(低位提示):带有提示、预期输出和评分标准的单独测试定义
- 执行流程:跳→ 读取LOP→ 同时呼叫9个代理→ 收集结果→ 生成比较表
示例:当你跑步时 /perf:hop_evaluate_nano_agents lop_eval_3__file_operations_test.md:
- HOP从LOP文件读取测试规范
- 提取要测试的代理的提示和列表
- 并行执行所有代理(GPT-5、Claude、本地模型)
- 每个代理通过nano-agent MCP服务器独立运行
- 结果根据性能、速度和成本进行评分
- 输出显示了排名比较,结果令人惊讶(例如,Claude-3-haiku经常击败昂贵的型号)
这种架构通过为所有提供商使用相同的OpenAI Agent SDK来确保公平的比较,从而创建了一个真正的苹果对苹果基准测试。
特性
- 🤖 多提供商支持:在OpenAI(GPT-5)、Anthropic(Claude)和Ollama(本地模型)之间无缝切换
- 🔧 文件系统操作:自主读取、写入、编辑和分析文件
- 🏗️ 嵌套代理体系结构:MCP服务器生成内部代理以执行任务
- 🎯 统一接口:所有提供商都使用相同的OpenAI SDK以保持一致性
- 📦 实验准备就绪:体面的测试、错误处理和令牌跟踪
- 🚀 易于集成:与Claude Desktop配合使用,或作为CLI使用
纳米试剂工具
您可以根据需要添加/删除/改进工具。
Nano Agent工具存储在 nano_agent_tools.py.
工具包括:
read_file-读取文件内容list_directory-列出目录内容(默认为当前工作目录)write_file-创建或覆盖文件get_file_info-获取文件元数据(大小、日期、类型)edit_file-通过替换精确匹配的文本来编辑文件
项目结构
nano-agent/
├── apps/ # ⚠️ ALL APPLICATION CODE GOES HERE
│ └── nano_agent_mcp_server/ # Main MCP server application
│ ├── src/ # Source code
│ │ └── nano_agent/ # Main package
│ │ ├── modules/ # Core modules
│ │ │ ├── constants.py # Model/provider constants & defaults
│ │ │ ├── data_types.py # Pydantic models & type definitions
│ │ │ ├── files.py # File system operations
│ │ │ ├── nano_agent.py # Main agent execution logic
│ │ │ ├── nano_agent_tools.py # Internal agent tool implementations
│ │ │ ├── provider_config.py # Multi-provider configuration
│ │ │ ├── token_tracking.py # Token usage & cost tracking
│ │ │ └── typing_fix.py # Type compatibility fixes
│ │ ├── __main__.py # MCP server entry point
│ │ └── cli.py # CLI interface (nano-cli)
│ ├── tests/ # Test suite
│ │ ├── nano_agent/ # Unit tests
│ │ └── isolated/ # Provider integration tests
│ ├── scripts/ # Installation & utility scripts
│ ├── pyproject.toml # Project configuration & dependencies
│ ├── uv.lock # Locked dependency versions
│ └── .env.sample # Environment variables template
├── .claude/ # Claude Code configuration
│ ├── agents/ # Sub-agent configurations (9 models)
│ │ ├── nano-agent-gpt-5-nano.md # OpenAI GPT-5 Nano
│ │ ├── nano-agent-gpt-5-mini.md # OpenAI GPT-5 Mini (default)
│ │ ├── nano-agent-gpt-5.md # OpenAI GPT-5
│ │ ├── nano-agent-claude-opus-4-1.md # Claude Opus 4.1
│ │ ├── nano-agent-claude-opus-4.md # Claude Opus 4
│ │ ├── nano-agent-claude-sonnet-4.md # Claude Sonnet 4
│ │ ├── nano-agent-claude-3-haiku.md # Claude 3 Haiku
│ │ ├── nano-agent-gpt-oss-20b.md # Ollama 20B model
│ │ ├── nano-agent-gpt-oss-120b.md # Ollama 120B model
│ │ └── hello-world.md # Simple greeting agent
│ ├── commands/ # Claude Code commands
│ │ ├── perf/ # Performance evaluation commands
│ │ │ ├── hop_evaluate_nano_agents.md # Higher Order Prompt orchestrator
│ │ │ ├── lop_eval_1__dummy_test.md # Simple Q&A test
│ │ │ ├── lop_eval_2__basic_read_test.md # File reading test
│ │ │ ├── lop_eval_3__file_operations_test.md # Complex I/O test
│ │ │ ├── lop_eval_4__code_analysis_test.md # Code understanding
│ │ │ └── lop_eval_5__complex_engineering_test.md # Full project test
│ │ ├── convert_paths_absolute.md # Convert to absolute paths
│ │ ├── convert_paths_relative.md # Convert to relative paths
│ │ ├── create_worktree.md # Git worktree management
│ │ ├── plan.md # Planning template
│ │ ├── prime.md # Codebase understanding
│ │ └── build.md # Build commands
│ ├── hooks/ # Development hooks
│ ├── settings.json # Portable settings (relative paths)
│ └── settings.local.json # Local settings (absolute paths)
├── eval_results_1_dummy_test.md # Q&A test benchmark results
├── eval_results_2_basic_read_test.md # File reading benchmark results
├── eval_results_3_file_operations_test.md # I/O benchmark results
├── eval_results_4_code_analysis_test.md # Code analysis benchmark results
├── eval_results_5_complex_engineering_test.md # Project creation benchmark results
├── images/ # Documentation images
│ └── nano-agent.png # Project logo/diagram
├── app_docs/ # Application-specific documentation
├── ai_docs/ # AI/LLM documentation & guides
│ ├── python_uv_mcp_server_cookbook.md # MCP server development guide
│ ├── openai_agent_sdk_*.md # OpenAI SDK documentation
│ ├── anthropic_openai_compat.md # Anthropic compatibility guide
│ ├── ollama_openai_compat.md # Ollama compatibility guide
│ └── new_openai_gpt_models.md # GPT-5 model specifications
└── specs/ # Technical specifications开发指南
先决条件
- Python 3.12+(需要正确的类型支持)
- 紫外线 包管理器
- OpenAI API密钥(用于GPT-5模型测试)
开发设置
cd apps/nano_agent_mcp_server
uv sync --extra test # Include test dependenciesClaude代码挂钩配置
如果你使用Claude Code来处理这个代码库,这个项目包括钩子来增强开发体验。默认情况下,钩子使用相对路径以实现可移植性。
要为本地环境激活具有绝对路径的钩子: 在.claude/settings.local.json中将相对路径转换为绝对路径 在Claude Code中运行此命令: 这将更新所有钩子路径,以使用计算机的绝对路径 在.claude/settings.json.backup中自动创建备份
/convert_paths_absolute.md
注: 挂钩是可选的,但提供了有用的功能,如:
- 工具使用前/后通知
- 会话跟踪
- 用于调试的事件日志记录
有关生产用途,请参阅 安装 上面的部分。
紫外线依赖性管理
使用UV和可选依赖项时:
uv sync-仅安装主要依赖项(mcp、typer、rich)uv sync --extra test-安装主+测试依赖项(包括pytest、openai等)uv sync --all-extras-安装主+所有可选依赖组uv pip list-显示虚拟环境中已安装的所有软件包
重要提示: 始终使用 --extra test 当您需要运行测试时,例如 uv sync 单独使用将删除测试依赖关系。
配置
- 复制环境模板:
cp .env.sample .env- 添加您的OpenAI API密钥:
echo "OPENAI_API_KEY=sk-your-key-here" > .env运行服务器
cd apps/nano_agent_mcp_server
uv run nano-agent --help服务器使用MCP协议通过stdin/stdout进行通信。
纳米代理架构
嵌套代理层次结构
关键概念: 这是一个具有两个不同代理层的嵌套代理系统。
┌─────────────────────────────────────────────────────────────┐
│ OUTER AGENT (e.g., Claude Code, any MCP client) │
│ • Communicates via MCP protocol │
│ • Sees ONE tool: prompt_nano_agent │
│ • Sends natural language prompts to nano-agent │
└─────────────────────────────────────────────────────────────┘
│
│ MCP Protocol
▼
┌─────────────────────────────────────────────────────────────┐
│ NANO-AGENT MCP SERVER (apps/nano_agent_mcp_server) │
│ • Exposes SINGLE MCP tool: prompt_nano_agent │
│ • Receives prompts from outer agent │
│ • Spawns internal OpenAI agent to handle request │
└─────────────────────────────────────────────────────────────┘
│
│ Creates & Manages
▼
┌─────────────────────────────────────────────────────────────┐
│ INNER AGENT (OpenAI GPT with function calling) │
│ • Created fresh for each prompt_nano_agent call │
│ • Has its OWN tools (not visible to outer agent): │
│ - read_file: Read file contents │
│ - list_directory: List directory contents │
│ - write_file: Create/overwrite files │
│ - get_file_info: Get file metadata │
│ • Runs autonomous loop (max 20 turns) │
│ • Returns final result to MCP server → outer agent │
└─────────────────────────────────────────────────────────────┘验证和测试
单元测试(真实的API调用)
# Run all integration tests
uv run pytest tests/ -v
# Test specific functionality
uv run pytest tests/nano_agent/modules/test_nano_agent.py::TestExecuteNanoAgent -v
# Quick validation
uv run pytest -k "test_execute_nano_agent_success" -vCLI验证
# Validate tools work (no API needed)
uv run nano-cli test-tools
# Quick agent test
export OPENAI_API_KEY=sk-your-key
uv run nano-cli run "What is 2+2?" # Uses DEFAULT_MODEL多提供商支持
nano代理通过使用OpenAI SDK的统一接口支持多个LLM提供者。所有提供程序都通过与OpenAI兼容的端点访问,从而提供一致的API。
可用供应商和型号
您可以根据需要添加/删除提供者和模型。
OpenAI(默认)
- 模型:
gpt-5,gpt-5-mini(默认),gpt-5-nano,gpt-4o - 需求:
OPENAI_API_KEY环境变量 - 特别功能:
- GPT-5型号使用 max_completion_tokens 而不是 max_tokens - GPT-5型号仅支持温度=1 - 扩展上下文窗口(400K令牌)
Anthropic
- 模型:
claude-opus-4-1-20250805,claude-opus-4-20250514,claude-sonnet-4-20250514,claude-3-haiku-20240307 - 需求:
ANTHROPIC_API_KEY环境变量 - 实施:使用Anthropic的OpenAI兼容端点
- 基本URL:
https://api.anthropic.com/v1/
Ollama(本地模型)
- 模型:
gpt-oss:20b,gpt-oss:120b,或您在本地拉取的任何模型 - 需求:Ollama服务在本地运行
- 实施:使用Ollama的OpenAI兼容API
- 基本URL:
http://localhost:11434/v1
使用不同的提供商
CLI使用情况
# OpenAI (default)
uv run nano-cli run "Create a hello world script"
# Use specific OpenAI model
uv run nano-cli run "Analyze this code" --model gpt-5 --provider openai
# Anthropic
uv run nano-cli run "Write a test file" --model claude-3-haiku-20240307 --provider anthropic
# Ollama (local)
uv run nano-cli run "List files" --model gpt-oss:20b --provider ollama多模型评估系统
纳米试剂包括一个复杂的多层评估系统,用于比较不同供应商和型号的LLM性能。这通过使用相同的执行环境(OpenAI Agent SDK)为基准测试创造了一个公平的竞争环境,而不管底层提供者是谁。
“不要相信任何个人基准。你需要打开所有这些模型的盖子,说,真正的价值在哪里?”-工程学就是权衡取舍。
🎯 面包和黄油:HOP/LOP模式
评价体系的核心创新是 HOP/LOP(高位提示/低位提示) 模式,它创建了一个用于并行模型测试的分层编排系统:
┌─────────────────────────────────────────────────────────────┐
│ 1. HIGHER ORDER PROMPT (HOP) │
│ File: .claude/commands/perf/hop_evaluate_nano_agents.md │
│ • Orchestrates entire evaluation process │
│ • Accepts test case files as $ARGUMENTS │
│ • Formats and grades results │
│ • Generates performance comparison tables │
└─────────────────────────────────────────────────────────────┘
│
│ Reads & Executes
▼
┌─────────────────────────────────────────────────────────────┐
│ 2. LOWER ORDER PROMPT (LOP) │
│ Files: .claude/commands/perf/lop_eval_*.md │
│ • Defines test cases (prompts to evaluate) │
│ • Lists agents to test (@agent-nano-agent-*) │
│ • Specifies expected outputs │
│ • Provides grading rubrics │
└─────────────────────────────────────────────────────────────┘
│
│ @agent References
▼
┌─────────────────────────────────────────────────────────────┐
│ 3. CLAUDE CODE SUB-AGENTS │
│ Files: .claude/agents/nano-agent-*.md │
│ • Individual agent configurations │
│ • Each specifies model + provider combination │
│ • Color-coded by model family: │
│ - green: GPT-5 series (nano, mini, standard) │
│ - blue: GPT-OSS series (20b, 120b) │
│ - purple: Claude 4 Opus models │
│ - orange: Claude 4 Sonnet & Claude 3 Haiku │
└─────────────────────────────────────────────────────────────┘
│
│ Calls MCP Server
▼
┌─────────────────────────────────────────────────────────────┐
│ 4. NANO-AGENT MCP SERVER │
│ Function: prompt_nano_agent(prompt, model, provider) │
│ • Creates isolated agent instance per request │
│ • Uses OpenAI Agent SDK for ALL providers │
│ • Ensures consistent execution environment │
│ • Returns structured results with metrics │
└─────────────────────────────────────────────────────────────┘为什么是这种架构?
- 公平比较:所有模型都使用相同的OpenAI Agent SDK,消除了实现差异
- 并行执行:代理同时运行,减少时间变化
- 结构化指标:对所有提供商的时间、代币和成本进行一致的跟踪
- 可扩展性:易于添加新模型、提供者或测试用例
- 视觉层次感:颜色编码的试剂使结果易于在Claude Code中扫描
- 可重复性:相同的提示和执行环境确保了一致的基准测试
许可证
麻省理工学院
精通AI编码
为代理工程做准备
学习用AI编写基础代码 人工智能编码原理
跟随 IndyDevDan youtube频道 了解更多AI编码技巧和窍门。
