使用MCP执行代码
这是文章背后想法的外行实现 使用MCP执行代码:构建更高效的AI代理\\ Anthropic 类似的现有实现仅限于某些后端,或者很难解开这些概念。所以,我在一个周末建造了这个。
代码设计
基本实施的关键组成部分是:
- 选择任何代理框架:我选择了Pydantic AI
- 为其提供搜索文件系统的机制:这本质上是微妙的系统提示的一部分
- 为它提供一种执行代码的机制(在我们的例子中是Python):系统提示还包括如何使用这个“工具”函数
- 让它访问一堆MCP:我选择了几个简单的MCP,包括文件系统和时间操作
- 最后,一个值得如此复杂的任务!!!-是否可以指定文件夹中的文件数,并且只能指定.py和所有文件中的行数,然后将结果保存到一个以“当前日期时间作为后缀”的文件中
实施细节
实际的示例实现在pydantic_main.py中,它只是演示了使用具有“代码执行”功能的代理的最低要求。
然后是token_savings_demo.py代码,它演示了使用普通MCP与代码执行MCP。它打印节省的内容和大量中间内容,用于调试目的。对于赋予代理的相对琐碎的任务,它显示了50-90%的令牌节省。
______________________________________________________________________
截至今天,代码只做了最基本的工作来帮助理解流程。我们可以做很多潜在的增强。例如,对于Anthropic文章中提到的“search_tools”工具(可能会进行一些智能搜索),添加持久化代码的能力,从而产生成功的结果(记住技能),沙盒的安全方面等。
怎么跑?
- 创建一个.env文件,内容如下:
ANTHROPIC_API_KEY=sk-ant-YOURKEY
# MCP_SERVERS_CONFIG=/absolute/path/to/mcp-servers.json
# ^ If not provided it looks for the a local mcp-servers.json in the execution folder- 使用“uv”安装代码依赖项
uv sync- 运行主方法(用于测试功能)
python pydantic_main.py- 与传统方法进行比较
python token_savings_demo.py查找日志/和请求/文件夹,查看发生了什么(调用次数、代码输出等)。此外,请注意控制台中生成和执行的动态代码。最后是代币节省的产出。 作为运行(第一次)的一部分,为MCP服务器逻辑生成“包装器”代码,以供动态代码生成步骤使用。这些将位于服务器/文件夹下
欢迎反馈!
