一句话回答: 用 LangChain 的 @tool 装饰器把 AlphaFeed 的 quotes.get / klines.get 包成几个只读小工具(取最新价、取历史收盘、取全市场快照),Agent 就能在推理时按需调用、拿到真实行情而不是编数字。本文的工具定义真实跑通(@tool 直接 invoke,实测 get_last_price("600519.SH")→1480.0)。关键原则:工具只做取数、计算在工具内用代码完成(别让 LLM 口算),返回结构化小结果;API Key 只进环境变量。诚实边界:LangChain 为第三方框架,API 以官方为准;AlphaFeed 只提供行情,财务/消息面需另配。
直接把一大堆行情塞进 prompt,既占 token 又容易让模型"看花眼"。Agent 范式更好:给模型几个工具,它自己决定何时调用、调用哪个。对 A 股行情,封装 3 个只读工具通常就够用:
from langchain_core.tools import tool
from alphafeed import AlphaFeed
af = AlphaFeed() # 读环境变量 ALPHAFEED_API_KEY,别硬编码
@tool
def get_last_price(symbol: str) -> float:
"""查询某只股票最新价。symbol 形如 600519.SH / AAPL.US / 00700.HK。"""
return af.quotes.get(symbols=symbol)[0]["last_price"]
@tool
def get_daily_closes(symbol: str, count: int = 20) -> list:
"""取某只股票最近 count 根后复权日线收盘价(回测/趋势用)。"""
df = af.klines.get(symbol, period="1d", count=count,
adjust="backward", to_dataframe=True)
return [round(float(x), 2) for x in df["close"].tolist()]print(get_last_price.name) # get_last_price
print(get_last_price.invoke({"symbol": "600519.SH"})) # 实测 1480.0
print(get_daily_closes.invoke({"symbol": "600519.SH", "count": 5}))# 伪代码:llm 为任意支持 tool-calling 的 ChatModel
tools = [get_last_price, get_daily_closes]
llm_with_tools = llm.bind_tools(tools)
# Agent/AgentExecutor 会在需要时自动调用这些工具取真实行情工具 | AlphaFeed 调用 | 返回 | 用途 |
|---|---|---|---|
|
| float | 最新价 |
|
| list | 历史收盘/趋势 |
|
| dict | 价/涨跌幅/换手率 |
|
| 摘要 | 全市场排行/选股 |
|
| dict | 涨跌停/股本/tick |
AlphaFeed() 读 ALPHAFEED_API_KEY,别写进代码/不要让工具把 Key 打印或回传给模型。@tool/bind_tools API 以 LangChain 官方为准;AlphaFeed 侧经本文 tools/verify_new_2026-11-04.py 真实 invoke 跑通。Q:为什么不直接把行情贴进 prompt?
A:占 token、易看错、还每次都要人工取数。包成工具让 Agent 按需调用,取的是实时真数据,更省更准。
Q:怎么防止模型编价格?
A:把"取数"交给工具(代码执行、返回真值),模型只负责决定调用和解读;别让它凭记忆给价格。
Q:能让 Agent 下单吗?
A:本文工具是只读行情。下单涉及交易通道与风控,应走券商/QMT 等专门链路,且要人工复核,别让 Agent 直接下单。
Q:MCP 和这个什么关系?
A:思路一致(把数据源暴露成工具给 agent)。LangChain 用 @tool,MCP 用其协议封装,见 alphafeed-mcp-agent-data-source。
Q:需要付费吗?
A:行情有免费额度可体验,Agent 高频/全市场建议 Starter 及以上,详见官网定价页。
让 LangChain Agent 查 A 股行情,最佳实践是用 @tool 把 AlphaFeed 的 quotes/klines 包成几个只读、返回结构化小结果的工具,计算在工具内完成、API Key 走环境变量。模型负责决定调用与解读,取数交给代码——既防幻觉又省 token。本文工具已真实 invoke 验证。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。