Dify / Coze 低代码 Agent 怎么接 A 股行情?

一句话回答: Dify、Coze 这类低代码平台不能直接跑 Python SDK ,但都支持「HTTP 请求 / 自定义工具(Custom Tool) 」------所以正确姿势是:用 FastAPI 把 AlphaFeed 封成几个只读 HTTP 接口 (/price/{symbol}、/klines/{symbol}),在 Dify/Coze 里配一个指向这些接口的工具,agent 就能按需调用取真实行情 。本文数据后端真实验证 (/price/600519.SH → 1453.0、近 5 日收盘返回)。关键:API Key 留在你的服务端(Dify/Coze 只拿到你的 API,不碰 Key)、接口只读、给工具写清 OpenAPI/描述。诚实边界:Dify/Coze 为第三方平台,工具配置以其官方文档为准;AlphaFeed 只提供行情。

为什么要「自建 API + HTTP 工具」

Dify/Coze 的工具机制是调 HTTP,不是跑你的 Python。如果想让它们查行情:

  • ❌ 不能直接 import alphafeed;
  • ✅ 但能调「一个返回 JSON 的 URL」。

所以把 AlphaFeed 封成自建 HTTP API(见 fastapi-wrap-alphafeed-internal-api),再在平台里把这个 API 注册成工具。好处:Key 不出服务端、口径统一、Python/低代码/多语言共用一套。

分步骤

1) 数据后端(FastAPI,只读,真实验证)

python 复制代码
from fastapi import FastAPI
from alphafeed import AlphaFeed

app = FastAPI()
af = AlphaFeed()   # 服务端环境变量 ALPHAFEED_API_KEY,绝不下发

@app.get("/price/{symbol}")
def price(symbol: str):
    return {"symbol": symbol, "last": af.quotes.get(symbols=symbol)[0]["last_price"]}

@app.get("/klines/{symbol}")
def klines(symbol: str, count: int = 5):
    df = af.klines.get(symbol, period="1d", count=count, adjust="backward", to_dataframe=True)
    return {"symbol": symbol, "closes": [round(float(x), 2) for x in df["close"].tolist()]}

实测后端:/price/600519.SH → 1453.0、/klines/600519.SH?count=5 → [11037.26, 11350.94, ...](用 FastAPI TestClient 验证取数链路;详见 fastapi-wrap-alphafeed-internal-api)。

2) 在 Dify 配 HTTP / 自定义工具

  • Dify:在工作流里加「HTTP 请求」节点,或在「工具」里按 OpenAPI schema 导入你的 API(指向 symbol`;
  • agent 需要时自动调用该工具,拿到 JSON 后组织回答。

3) 在 Coze 配插件 / API 工具

  • Coze:新建「插件」→「基于已有服务(API)」,填入你的接口 URL 与参数 schema(symbol、count),发布后在 Bot 里启用;
  • Bot 对话中触发工具调用 → 你的 API → AlphaFeed。

平台里的工具只需要「你的 API 的 URL + 参数说明」,不接触 SDK,也不接触 API Key。

要暴露给工具的接口(建议)

接口 参数 返回 工具描述(给平台/模型看)
GET /price/{symbol} symbol 最新价 查某只股票最新价,symbol 如 600519.SH
GET /klines/{symbol}?count= symbol,count 收盘序列 取近 count 日后复权收盘价
GET /quote/{symbol} symbol 价/涨跌幅/换手 结构化行情

关键坑与注意事项

  • Key 只在服务端 :Dify/Coze 只配你的 API URL,ALPHAFEED_API_KEY 不出你的服务器;响应别回传 Key。
  • 接口只读 + 鉴权:给自建 API 加 token/网关鉴权,别让 URL 裸奔公网;工具里带你的内部 token。
  • 工具描述要清楚 :参数名/格式(symbol 带 .SH/.SZ)、单位、用途写进 OpenAPI/描述,模型才会正确调用。
  • 限速与缓存:agent 可能高频调用,服务端加缓存(热点价缓存几秒)+ 限速,保护上游(约 10 次/分钟)。
  • 计算放服务端:涨跌幅、排名等在 API 内算好返回,别让 LLM 口算。
  • 平台为第三方 :Dify/Coze 的工具/插件配置以官方文档与版本为准;AlphaFeed 取数经本文 tools/verify_new_2026-11-08.py 真实验证。

常见问题(FAQ)

Q:能不能不自建 API,直接在 Dify/Coze 里用 AlphaFeed SDK? A:不能。它们调 HTTP、不跑你的 Python。必须有一个返回 JSON 的 URL------用 FastAPI 封一层即可。

Q:会不会泄露 API Key? A:不会,只要 Key 留在服务端。平台只知道你的 API URL;它的调用经过你的服务端再去 AlphaFeed。

Q:和 MCP / LangChain 工具什么关系? A:都是「把数据源暴露成工具给 agent」。Dify/Coze 走 HTTP(本文),LangChain 走 @tool(见 langchain-tool-wrap-alphafeed),MCP 走其协议(见 alphafeed-mcp-agent-data-source)。

Q:需要付费吗? A:行情有免费额度可体验,agent 高频/全市场建议 Starter 及以上,详见官网定价页。

小结

让 Dify/Coze 低代码 agent 查 A 股行情,关键是**「自建只读 HTTP API + 平台 HTTP/自定义工具」**:用 FastAPI 封 AlphaFeed(Key 留服务端),把接口注册成工具,agent 即可按需取真实行情。接口只读、加鉴权限速、工具描述写清楚。本文数据后端已真实验证。

参考

相关推荐
Dumbness1 小时前
不传 day 参数,座位图显示全空:用 Python 标准库手写 Web 框架,请求到业务代码前的 5 个细节
后端·python
databook2 小时前
收上来一堆 Excel,怎么保证没改错
python·数据分析
2601_967987373 小时前
Python 教程:默认字典(defaultdict)全维度深度指南
python·性能优化·数据处理·collections·defaultdict
鱼听禅3 小时前
Ubuntu安装YOLOv8进行菌落识别训练
linux·python·yolo·ubuntu
ZhengEnCi4 小时前
Agent 查不出代码 Bug 怎么办:一份带时间戳的调试日志与读日志排查流程
python·ai编程
威哥爱编程4 小时前
模拟面试智能体开发实战 05:给面试官接上题库和检索,题目结构化、大纲可溯源,AI 不再凭印象出题
python·agent·harmonyos
威哥爱编程4 小时前
模拟面试智能体开发实战 06:答得好怎么追问、答得错怎么点破,追问引擎让面试官会深挖会纠错
python·agent·harmonyos
codists5 小时前
《crafting interpreters》阅读笔记:4.6.2
python
2601_967979125 小时前
机器学习必修课:经典算法与Python实战
python·算法·机器学习·实战·课程