代码模式工具执行

通过代码模式执行工具,提高LLM代理的效率和减少上下文污染。

  • by amirkiarafiei
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 amirkiarafiei/mcp-code-mode-example

使用说明

MCP代码模式示例

将MCP工具作为代码执行,可实现LLM代理的高效工具调用

此存储库演示了执行以下工具的好处 可发现代码 对 传统工具调用。它附在文章中 MCP代码模式:LLM代理中高效工具执行的上下文工程.

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

📖 概念

传统代理加载 全部 将工具定义提前放入上下文窗口。这导致:

  1. 环境污染: 在未使用的工具上浪费代币。
  2. 数据传输效率低下: 大型数据(如文件内容)流经LLM。

代码模式 通过为代理提供3个通用工具来解决这个问题: list_directory, read_file,以及 execute_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
    # Open .env and add your GEMINI_API_KEY
    

🧪 运行比较

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

将所有20个工具定义预先加载到上下文中。

python agent_example_1.py

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

仅加载3个通用工具。代理发现它需要什么并编写代码。

python agent_example_2.py

📊 真实世界结果

我们在一项任务上比较了这两种方法: “从Teams下载会议摘要并将其上传到Drive” (20种可用工具中)。

度量 传统 代码模式 改进
初始上下文 ~10000个代币 ~600个代币 减少94%
最终背景 约14k个代币 约2k个代币 减少86%
数据流 通过LLM 直接通过代码 更快更便宜

运行上面的脚本,查看特定运行的实时令牌使用统计数据。

📂 项目结构

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

🤝 贡献

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