发布 2026-10-14 · 更新 2026-10-25

把 AI Agent 接上行情数据

给 AI Agent 一条能拉结构化行情数据的通路,然后让它分析。一次可运行的实操 —— 把定义页那个循环真正闭上。


本页目录

这篇要做什么

定义页最后留下了一个问题:你知道怎么问吗 —— 以及怎么判断答案靠不靠谱吗?

这篇走完前半句:给 AI Agent 一条可靠的通路,去拉结构化行情数据,让它算出来再解释,而不是凭记忆猜。

读完你会有一个能回答「这只票最近一个月怎么样」的 Agent —— 用的是代码算出来的数字,不是模型背下来的印象。

规范页那条纪律贯穿全程:代码算数,模型叙述。


前置条件

你需要:

  • 一个能调用工具(tool)的 AI Agent(Claude Code、Cursor、Codex,或任何支持 MCP 的客户端)
  • 一个 Agent 能访问到的行情数据源
  • 大约十分钟

不需要量化背景。能说清你要什么,就够开始了。


第一步 —— 选一条数据路径

Agent 拿到行情数据,一共四条路。它们的核心差别只有一件事:回来的东西能不能验证?

路径 怎么工作 可验证?
抓网页 Agent 读 HTML ✗ 页面改版就断;数字无法复现
本地数据文件 你下载 CSV,Agent 读 ✓ 但下载那一刻就过时了
REST API Agent 调接口,拿 JSON ✓ 结构化、可重复
MCP 工具 Agent 把数据源当工具调用 ✓ 结构化,且 Agent 知道这个工具存在

第一次跑,REST API 最短。等你清楚自己要什么之后,MCP 是更好的长期方案。


第二步 —— 先手动拉一个数

在让 Agent 介入之前,先证明数据源是通的。这个端点不需要 Key:

curl "https://api.ashareapi.com/v1/quote?code=sh600519"

你会拿到一个 JSON 信封,data 是一段日线数组,最新的在最前 —— 所以最新收盘价是 data[0].last。如果这里能返回数字,剩下的都是接线活。如果这里不通,就停在这里 —— 任何 Agent 都救不活一个不响应的数据源。

开始循环调用之前要知道一件事:匿名访问限每分钟 5 次、单次最多 250 条。够你把这页走一遍,不够反复试。要循环就加一个 Key。


第三步 —— 把工具给 Agent

这一步的重点不是某个具体工具,而是:让 Agent 一律通过工具拿数字,绝不凭记忆生成。

如果你的客户端支持 MCP,指向数据源,让它自己发现工具:

{
  "mcpServers": {
    "ashareapi": {
      "type": "http",
      "url": "https://api.ashareapi.com/mcp"
    }
  }
}

这是 Claude Code 的写法。Cursor 用同一个对象、去掉 type;Codex 用 TOML([mcp_servers.ashareapi] + url)。要用付费工具就加 "headers": { "Authorization": "Bearer ct-..." }。

如果你的客户端不支持 MCP,一个小脚本里的普通 REST 调用同样管用:

import httpx

def quote(code: str) -> dict:
    r = httpx.get("https://api.ashareapi.com/v1/quote", params={"code": code})
    r.raise_for_status()
    return r.json()["data"]

print(quote("sh600519"))

两种方式殊途同归:数字来自一次你能重跑的调用。 这就是工具和故事的全部区别。


第四步 —— 提一个必须用到数字的问题

现在问 Agent 一个逼它用工具的问题:

「用数据源的 quote 工具,拉 sh600519 最近 30 根日线,告诉我最高收盘价和它出现在哪天。」

盯两件事:

  1. 它调工具了吗? 如果没调就答了,那个数字是编的。
  2. 你能重跑那次调用、拿到同样的答案吗? 能,就是可复现的 —— 规范页第二条。

第五步 —— 检查答案

这一步大多数教程会跳过。别跳过。

检查什么 怎么查
数字来自调用吗? 看记录里的工具调用。没有调用,就没有数字。
窗口说清了吗? 「最近 30 根日线」—— 不是「最近」。
字段名叫对了吗? 是 last,不是「价格」。不同字段含义不同。
能复现吗? 重跑调用。答案一样,才算结果。

一个追溯不到某次调用的数字,不是数据 —— 是文字。


你现在有了什么

你把循环闭上了:Agent 提问 → 工具用数字回答 → 代码计算 → 模型解释。

这是定义页那个问题的前半句。后半句 —— 判断建立在这之上的策略可不可信 —— 是另一篇教程的事:前视偏差防护、成本、幸存者偏差。

门槛从来不是「工具不够强」,而是「你得先学会编程」。 你刚刚没写一行策略就做到了 —— 你描述了你要什么,然后检查了答案。


下一步

出处