☰
快速上手 LangAlpha:Programmatic Tool Calling 如何用 Python 调用 MCP 工具的完整指南
2026/10/11 18:28:38 网站建设 项目流程

【免费下载链接】LangAlpha

Claude Code for Financial Market

项目地址:https://gitcode.com/gh_mirrors/la/LangAlpha
点击查看免费下载

LangAlpha 是一款面向金融市场的开源 AI Agent 框架(Claude Code for Financial Market),其核心原理是Programmatic Tool Calling(PTC,程序化工具调用):它把任意 MCP 服务器自动转换为一个带文档的Python 模块,AI 模型不再逐个发 JSON 工具调用,而是直接写 Python 代码import这些工具,在沙箱里批量处理金融数据,只有最终结果回到模型上下文。

为什么传统 MCP 工具调用不够用?

传统 MCP 用法是:每个工具绑定为一次 JSON 工具调用,模型一次调一个、拿回一段结果。这在两种场景下会很吃力:

场景传统 JSON 工具调用的问题
工具太多每个服务器的完整 schema 都要随每次请求携带,浪费 token
数据是表格12 只股票 × 10 年日线 ≈ 3 万行数据,塞进上下文会撑爆窗口,模型也无法"读懂"成片的表格文本

LangAlpha 的解法一句话概括:让模型写代码,而不是搬运数据。

三步看懂:MCP 工具是如何变成 Python 模块的

第 1 步:生成包装函数

LangAlpha 在 src/ptc_agent/core/tool_generator.py 中的ToolFunctionGenerator读取每个 MCP 服务器的工具 schema,自动生成一个 Python 模块:

  • 每个 MCP 工具 → 一个带类型注解的 Python 函数(参数名、必填/可选、枚举值都从 schema 解析而来)
  • 每个工具 → 一份 Markdown 文档,写到沙箱的tools/docs/<服务器名>/目录
  • 参数名若是 Python 关键字(如type)会自动改名并保留"线上名"映射,保证调用不错位

第 2 步:装进沙箱,挂好 MCP 客户端

install_tool_modules 把生成的模块批量上传到沙箱,同时生成一份 mcp_client.py——它是静态的 MCP 客户端运行时 + 每工作区一份 JSON 配置(通过哪种传输方式连哪个服务器:stdio 本地进程、HTTP、或 OAuth 中继)。这样沙箱里的代码一调用函数,就能真的打到 MCP 服务器上。

第 3 步:模型写代码,数据留在沙箱

模型通过ExecuteCode工具(code_execution.py)执行 Python,写法就是普通的 import:

from tools.price_data import get_stock_data data = get_stock_data(symbol="CBRS", interval="1d", period="1y") # 在沙箱里聚合、建模、画图…… print(data["data"].iloc[-1]) # 只有结果回到上下文

那 3 万行 K 线数据全程留在沙箱里被 pandas 处理,回到模型上下文的只有打印出来的摘要或一张图表。

省 token 的关键:工具文档按需加载

在 formatter.py 里可以看到,系统提示中每个 MCP 服务器只占几行:

langalpha_market_data: 市场数据 MCP 服务器 - Module: tools/langalpha_market_data.py - Tools: N tools available - Import: from tools.langalpha_market_data import <tool_name>

完整文档在沙箱的文件里,模型第一次需要某个服务器时才去读它的.md。新增一个 MCP 服务器,提示词只贵一行——这是 PTC 相对 JSON 工具绑定的直接收益。

数据留在哪?证据在 Sources 面板

PTC 不只是省 token,还让"证据链"更完整:无论模型是直接调用工具,还是它的 Python/Bash 在沙箱里调用,LangAlpha 的数据溯源层都会记录提供方、参数、时间戳和结果指纹,在聊天界面的 Sources 面板逐轮展示,你可以核对答案背后到底用了哪些数据。

什么时候不走 Python?直接 JSON 调用更安全

代码是默认路径,但不是唯一路径。涉及敏感操作(尤其是券商下单)的工具被固定为直接 JSON 工具调用:一次调用 = 一道系统可见、可审批、只执行一次的订单,沙箱脚本无法绕过。每个工具都可在 Plugins 页面单独切换曝光模式(summary/detailed)或调用方式,详见 plugins/ 下的插件目录与 plugins/README.md。

想扩展自己的 MCP 服务器?

LangAlpha 内置的市场数据、基本面、期权等服务器都以插件包形式放在 plugins/ 下(如 plugins/langalpha_market_data/),遵循 Agent Plugins 格式,你也可以在 Plugins 页面从 git 地址安装第三方服务器,或通过 agent_config.yaml 自定义子代理。整体全栈架构可参考仓库根目录的 README.md。

小结:LangAlpha 的 PTC 用"生成 Python 模块 + 沙箱执行 + 文档按需加载"三板斧,解决了金融 Agent 的两个痛点——工具 schema 吃上下文、表格数据塞不进窗口。这正是它被称为"金融市场里的 Claude Code"的核心原理。

【免费下载链接】LangAlpha

Claude Code for Financial Market

项目地址:https://gitcode.com/gh_mirrors/la/LangAlpha
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询