作为代码执行MCP工具可使LLM代理更高效地调用工具
此仓库演示了以可发现代码形式执行工具与传统工具调用相比的优势。它配合文章MCP代码模式:用于LLM代理中高效工具执行的上下文工程。
重要提示: 本项目不使用实际的模型上下文协议(MCP)。它使用本地原生工具(Python/TypeScript)来模拟架构,用于测试和演示目的。
传统代理在最开始将所有工具定义加载到上下文窗口中。这导致了以下问题:
代码模式通过仅给代理提供三个通用工具来解决这个问题:list_directory、read_file 和 execute_typescript。代理从文件系统中发现所需的工具,并编写代码将它们链接在一起,绕过LLM进行数据传输。
📚 阅读详细解释,请参阅docs/medium.md
克隆并安装:
git clone https://github.com/amirkiarafiei/mcp-code-mode-example.git
cd mcp-code-mode-example
pip install -r requirements.txt
npm install
配置环境:
cp .env.example .env
# 打开.env文件并添加你的GEMINI_API_KEY
最开始加载所有20个工具定义到上下文中。
python agent_example_1.py
仅加载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的代码模式概念。