Token导航 LogoToken导航TokenDH.com
Nano Agent logo
运维云端stdio官方级别未说明来源级核验

Nano Agent

MCP Server

Nano Agent是一个支持多提供商LLM的实验性小型工程代理MCP服务器,用于测试和比较云端与本地LLM在性能、速度和成本方面的代理能力。

工具数

0

提示词数

0

GitHub Stars

202

资源数

0
多模型支持本地LLMPythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

disler

提供方

disler

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run nano-cli test-tools

详细介绍

纳米试剂

观看了我们如何将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"]
    }
  }
}

现在你可以跟随 下面的纳米试剂相互作用部分 以测试纳米试剂。

纳米试剂相互作用

有三种方法可以与纳米试剂相互作用。

  1. 纳米试剂 通过CLI (uv run nano-cli run)

- 非常适合了解代理功能

  1. 纳米试剂 通过克劳德代码 或任何MCP客户端(.mcp.json 或等效配置)

- 非常适合委派工作和扩展现场计算

  1. 纳米试剂 通过高阶提示 (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:

  1. HOP从LOP文件读取测试规范
  2. 提取要测试的代理的提示和列表
  3. 并行执行所有代理(GPT-5、Claude、本地模型)
  4. 每个代理通过nano-agent MCP服务器独立运行
  5. 结果根据性能、速度和成本进行评分
  6. 输出显示了排名比较,结果令人惊讶(例如,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 dependencies

Claude代码挂钩配置

如果你使用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 单独使用将删除测试依赖关系。

配置

  1. 复制环境模板:
cp .env.sample .env
  1. 添加您的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" -v

CLI验证

# 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                │
└─────────────────────────────────────────────────────────────┘

为什么是这种架构?

  1. 公平比较:所有模型都使用相同的OpenAI Agent SDK,消除了实现差异
  2. 并行执行:代理同时运行,减少时间变化
  3. 结构化指标:对所有提供商的时间、代币和成本进行一致的跟踪
  4. 可扩展性:易于添加新模型、提供者或测试用例
  5. 视觉层次感:颜色编码的试剂使结果易于在Claude Code中扫描
  6. 可重复性:相同的提示和执行环境确保了一致的基准测试

许可证

麻省理工学院

精通AI编码

为代理工程做准备

学习用AI编写基础代码 人工智能编码原理

跟随 IndyDevDan youtube频道 了解更多AI编码技巧和窍门。

目录标签

目录标签

多模型支持本地LLMPythonClaude本地部署代理测试性能比较成本分析

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP