返回市场
代码模式示例

代码模式示例

作者:amirkiarafiei2 星标更新:2025-11-19

项目介绍

MCP代码模式示例

作为代码执行MCP工具可使LLM代理更高效地调用工具

此仓库演示了以可发现代码形式执行工具与传统工具调用相比的优势。它配合文章MCP代码模式:用于LLM代理中高效工具执行的上下文工程

重要提示: 本项目不使用实际的模型上下文协议(MCP)。它使用本地原生工具(Python/TypeScript)来模拟架构,用于测试和演示目的。

📖 概念

传统代理在最开始将所有工具定义加载到上下文窗口中。这导致了以下问题:

  1. 上下文污染: 浪费未使用的工具的令牌。
  2. 数据传输低效: 大量数据(如文件内容)通过LLM传输。

代码模式通过仅给代理提供三个通用工具来解决这个问题:list_directoryread_fileexecute_typescript。代理从文件系统中发现所需的工具,并编写代码将它们链接在一起,绕过LLM进行数据传输。

📚 阅读详细解释,请参阅docs/medium.md

🚀 快速开始

先决条件

  • Python 3.8+
  • Node.js 18+(用于TypeScript执行)
  • Google Gemini API密钥(或其他支持的LLM)

安装

  1. 克隆并安装:

    git clone https://github.com/amirkiarafiei/mcp-code-mode-example.git
    cd mcp-code-mode-example
    pip install -r requirements.txt
    npm install
    
  2. 配置环境:

    cp .env.example .env
    # 打开.env文件并添加你的GEMINI_API_KEY
    

🧪 运行比较

1. 传统方法(“臃肿”的方式)

最开始加载所有20个工具定义到上下文中。

python agent_example_1.py

2. 代码模式方法(高效的方式)

仅加载3个通用工具。代理发现所需的内容并编写代码。

python agent_example_2.py

📊 实际结果

我们在一个任务上比较了两种方法:“从Teams下载会议总结并上传到Drive”(从20个可用工具中选择)。

指标传统方法代码模式改进
初始上下文约10k令牌约600令牌减少94%
最终上下文约14k令牌约2k令牌减少86%
数据流通过LLM直接通过代码更快且更便宜

运行上述脚本以查看特定运行的实际令牌使用统计信息。

📂 项目结构

  • agent_example_1.py:加载20多个工具的传统代理。
  • agent_example_2.py:具有文件系统/执行工具的代码模式代理。
  • agent_filesystem/:模拟为脚本目录的“MCP服务器”。
  • tools/:工具的Python实现(用于示例1)。
  • docs/:文档和文章。

🤝 贡献

欢迎贡献!此项目旨在教育目的,展示Anthropic的MCP和Cloudflare的代码模式概念。