| name | hithink-finance |
| description | 当用户或 Agent 需要通过同花顺金融数据服务获取、查询、同步、分析或导出 A 股行情、财报、指数、板块、公募基金、特色数据或本地 DuckDB 数据,或需要选择、安装、配置、诊断 REST API、MCP、hithink-finance CLI、Python SDK/marketdb 时使用。 |
hithink finance
这是“同花顺金融数据服务”的统一 Agent 入口和主路由。它负责识别需求、探测当前能力、处理配置边界并选择接入方式;选定方式后只读取对应的一级入口,由该入口继续按需披露详细契约。
直接描述需求
允许用户使用自然语言开始,不要求用户先理解命令、接口、thscode 或复权参数。例如:
- “查一下贵州茅台今天的价格。”
- “比较茅台和平安银行最近一年的走势。”
- “查沪深 300 当前成分股。”
- “看看今天有哪些涨停股。”
- “把全市场历史行情导出到文件。”
- “检查我的本地行情库是否需要更新。”
先把自然语言转换为明确的数据任务,再按当前环境选择接入方式。不要把命令选择、代码后缀或参数枚举转嫁给用户。
任务与能力路由
| 用户意图 | 任务类别 | 处理重点 |
|---|
| 股票名称、简称、代码或资产类别确认 | 标的消歧 | 转换为唯一 thscode 后再取数 |
| 最新价格、历史行情、公司行动、复权 | 行情 | 明确时间窗口与复权口径 |
| 利润表、资产负债表、现金流、财务指标 | 财务 | 明确报告期与频率 |
| 指数、概念板块、行业板块、成分股 | 指数与板块 | 区分股票、标准指数和 .TI 板块 |
| 基金资料、净值、收益、持仓、持有人、ETF/LOF 行情 | 公募基金 | 先区分 fund-otc/fund-etf/fund-lof/fund-reits 与能力边界 |
| 涨停、连板、异动、热榜、龙虎榜 | 特色数据 | 先确认是否为 today-only 能力 |
| 全市场数据、本地库、SQL、同步、导出 | 数据管理 | 检查数据新鲜度并让大结果落盘 |
路由流程
- 从用户原始表达识别任务类别,明确数据、资产类别、时间范围、新鲜度、复权口径、结果规模和输出形式;只在缺失信息会显著改变结果时做一次简短确认。
- 处理名称、代码和口径等用户输入,不要求用户先提供技术参数。
- 只做无副作用的当前环境探测,不要求用户重复安装:
- 是否已配置统一凭据:先检查
HITHINK_FINANCE_API_KEY,再检查用户级 credentials.env,只报告来源和存在状态,不显示值。
- 当前会话是否已连接
hithink-finance-a-share、hithink-finance-a-share-index 或 hithink-finance-meta MCP。
- PATH 中是否存在
hithink-finance;存在时读取 hithink-finance --version,不要先升级。
- 用户是否正在 Python/Notebook 项目、是否已有
marketdb,或是否明确要求 Python。
- 是否只有 HTTP/curl 环境,或用户明确要求自行集成。
- 根据任务和能力边界选择一种主路径;不要为了“完整”而同时安装或探测全部工具。
- 只读取下表对应的一个一级 reference,再由该入口路由到其子目录契约。
- 执行后报告数据源、时间范围、口径、行数、输出路径与线上验证边界。
接入方式决策
| 场景 | 首选 | 一级入口 |
|---|
| 人类终端、Agent 执行、自动化、远端与本地数据一体化 | CLI | cli.md |
| Chat/IDE 会话已连接托管服务 | MCP | mcp.md |
| 零依赖 HTTP、自定义脚本、服务端集成 | REST API | api.md |
| Python、Notebook、研究流程或已有 marketdb | Python SDK | python-sdk.md |
CLI 高度封装远端取数、本地 DuckDB、结构化输出和大结果落盘,对人类与 Agent 都友好。MCP 最适合 Chat 场景。REST API 可塑性最高。Python SDK 适合二次开发和研究。
统一 API Key
所有远端方式共用在 https://fuyao.aicubes.cn/admin 获取的 API Key。
统一凭据不要求安装 CLI。每次 Skill 被触发时按以下顺序检查,找到后直接复用,不再提示用户配置:
- 当前操作通过安全输入临时提供的 Key。
HITHINK_FINANCE_API_KEY。
- 用户级
credentials.env:Windows %APPDATA%\hithink-finance\credentials.env,macOS ~/Library/Application Support/hithink-finance/credentials.env,Linux ${XDG_CONFIG_HOME:-~/.config}/hithink-finance/credentials.env。
- 兼容旧来源:
FUYAO_TOKEN、API_KEY 或已有 CLI 系统凭据;旧名称不再用于新配置。
全部缺失时,根据当前平台给出 CLI 安装与配置入口 中的全局环境变量指引,并使用以下说明:
请先前往 https://fuyao.aicubes.cn/admin 注册并获取统一 API Key。获取后,可以按照下面的命令配置当前用户的全局环境变量;也可以直接发给我,我来为你完成配置。API Key 属于敏感凭据,聊天平台可能保留消息记录,因此更推荐使用隐藏输入或环境变量方式。
- 不得要求用户必须把 Key 发到对话;用户主动提供时接受并完成配置,不复述 Key。
- 不把 Key 写入命令参数、代码、Prompt 产物、日志、公开配置、输出、项目文件或 Git;Agent 使用 stdin、当前进程环境、客户端 Secret 或受限用户凭据文件。
- 当前 Agent 环境无法避免 Key 出现在工具参数或日志中时,退回平台隐藏输入命令并说明限制,不假装已经配置成功。
- MCP 使用客户端 Secret 或
HITHINK_FINANCE_API_KEY 插值;REST/Python 读取统一凭据来源。
- 只有缺失或已确认无效时才重新引导;切换接入方式不得再次索取 Key。
CLI 推荐与联动
- 用户明确选择 MCP、REST 或 Python 时,不安装 CLI。
- 用户直接提出金融任务、未指定接入方式且 CLI 不存在时,简短告知将安装官方 CLI 并继续;平台需要授权时遵循授权机制。安装失败时回退到已有 MCP、REST 或 Python 路径。
- CLI 刚安装、统一凭据刚配置或更新、或 CLI 认证失效但统一凭据有效时,按 CLI setup 通过
--api-key-stdin 安全登录;已有 CLI 凭据需要同步时使用 --replace,不先 logout。
- CLI 系统凭据是统一凭据的安全副本,使 CLI 可独立运行;普通调用不重复写入系统凭据。
- 确定使用 CLI 后,先定位当前 Agent 的 Skills 目录,并核验其中有 9 个 CLI 配套 Skill(每个目录都必须含
SKILL.md)。hithink-finance skills status --format json 只提供包内 canonical 来源,不能证明当前 Agent 已发现或加载这些 Skills。
- 当前 Agent 缺少配套 Skill 时,先运行
hithink-finance skills sync --format json 并对同一目录复查。该命令可能不认识所有 Agent 工具;仍缺失且已知当前 Agent 的可写 Skills 目录时,Agent 必须从 canonical 主动复制缺失的完整 Skill 目录,再复查并在需要时新建会话重新发现。只复制官方的缺失目录,不覆盖无关 Skills,不把包内来源复制到项目目录或未知 Agent 目录;路径未知或无写入权限时,报告该唯一阻塞项。
data init 的远端全量下载、导入和复权重建是长任务,必须以前台、可等待全部子进程的方式执行,并把执行宿主超时设为不少于 15 分钟。只有退出码为 0 且结构化信封 ok=true 才能开始下一条同库命令;超时或非 0 退出不等于已完成。先检查是否仍有存活 PID 持有该 DB;存在时等待它退出,不得在该 DB 上继续执行,也不得删除仍被存活 PID 持有的锁。用户明确要求中止时,才先说明影响并终止对应进程。
- 安装、升级、卸载和数据清理仍属于环境变更。用户直接要求金融任务且未选择其他接入方式时,前述“告知后安装并继续”构成本次 CLI 安装授权;其他环境变更仍需明确授权。
通用执行契约
- 不要求用户先提供完整
thscode。用户给名称、简称、不完整代码或不确定资产类别时,先搜索并消歧为唯一 thscode;只有多个可信候选会改变结果时才请用户确认,不要猜 .SH、.SZ、.BJ 或指数类型。
- 首次需要向用户展示
thscode 时,用一句话说明它是带交易所或指数后缀的唯一证券代码;后续不重复科普。
- 最新快照、财报和指数任务不追问复权。A 股历史行情未指定复权时,使用所选接入方式当前契约声明的默认值(当前为
forward,即前复权)并在结果中明示;用户要求原始成交价格时使用 none。口径会显著影响结论且用户意图仍不明确时,简要解释“前复权保持当前价格、后复权保持起始价格、none 保留原始价格”,再做一次确认。
- 最新行情、财报、指数和特色数据走远端;本地已有且足够新的历史 OHLCV、复权、面板和 SQL 优先走本地数据库。
- REST/MCP 的成功条件是业务信封
code=0;CLI 的成功条件是退出码 0 且 JSON 结构化信封 ok=true。
- 全市场、分页全集、长时间窗口或多标的结果必须落盘,只报告路径、行数、窗口和摘要。
- 真实数据不可用时报告原因;不得使用相似数据、静态示例或模拟数据冒充。
- 分析结果注明数据源、时间、报告期、复权口径和“非投资建议”。
- 离线契约只能证明支持范围,不能证明当前会话已连接或账号有权限;线上可用性必须通过实际授权请求验证。
失败输出契约
失败时按固定顺序向用户报告:失败阶段、原始错误摘要、是否重试及原因、唯一的下一步动作、尚未完成的验证。不要只返回错误码或泛化为“服务不可用”。
- 认证缺失或无效:先重新检查统一凭据来源;缺失时给出一次首次引导,无效时只要求更新同一统一来源,不按接入方式重复索取。
- 参数、标的或能力不支持:修正可确定的输入;存在多个有效语义时再请用户确认,不要盲目重试。
- 网络错误、
4001 或 5xxx:只做有界退避重试;仍失败时报告尝试次数和最后错误。
- 空数据:先判断非交易日、today-only、报告期或筛选条件是否导致预期空结果,不要直接宣称服务故障。
- 本地数据缺失或过旧:报告数据库路径和最新日期,给出初始化或同步建议,不静默切换为全市场远端逐股请求。
故障路由
- CLI 不存在、版本异常、认证未配置或内置 Skills 不完整:进入 CLI 入口。
- MCP 未连接、认证失败或需要识别工具意图:进入 MCP 入口。
- REST 参数、字段或错误码不明确:进入 API 入口。
- Python 安装、远端 toolkit 或本地 marketdb 问题:进入 Python SDK 入口。
适用对象与结果偏好
- 普通用户直接说股票名称和想知道的问题;Skill 负责代码、工具和参数转换。
- Agent/自动化默认使用结构化输出、稳定错误语义和明确退出状态。
- Python/研究用户可指定时间窗口、复权口径、字段、文件格式和本地数据库路径。
- 用户可指定“只给摘要 / 返回表格 / 保存 CSV 或 Parquet / 给出可复现命令”;未指定时,小结果摘要展示,大结果落盘。
常见避错
- 错误:先要求用户提供完整
thscode;正确:先用名称或代码搜索并消歧。
- 错误:切换 MCP、CLI 或 Python 后再次索要 Key;正确:重新检查并复用统一凭据来源。
- 错误:为验证认证下载全市场数据;正确:使用目标能力的最小有界真实请求。
- 错误:把 CLI 安装当成所有任务的前置条件;正确:用户明确选择其他入口时直接使用该入口。
常见问题
- 第一次使用去哪里拿 Key? 前往 https://fuyao.aicubes.cn/admin;随后可按平台命令配置,也可选择由 Agent 代配。
- 已经配过 Key 为什么还提示? 先检查当前进程是否继承用户环境变量,再检查用户级凭据文件;不要直接重新索取。
- CLI 登录后其他方式能直接用吗? 统一环境变量或凭据文件能跨方式复用;只有旧 CLI Keyring 时先迁移到统一来源。
- 统一 Key 更新后 CLI 怎么办? 通过 stdin 执行
auth login --api-key-stdin --replace,不先 logout。
- 客户端不读取全局环境变量怎么办? 从统一来源配置客户端 Secret,然后重连,不让用户重新注册或输入。
- 能查基金吗? 支持公募基金资料、披露、净值、收益、持有人结构、ETF/LOF 快照和 ETF 日线;不支持申赎交易、风险指标或基金推荐。
- 能查港股或分钟行情吗? 当前不能;明确说明边界,仅在数据含义等价时给出替代入口。
能力边界
- 擅长处理:A 股行情与复权、财报与指标、指数/板块/特色数据、公募基金资料与场内行情、本地 DuckDB 同步与导出。
- 需要用户素材或确认:多个同名标的无法唯一消歧、投资组合或自有清单、非默认时间/复权/输出要求。
- 超出范围:分钟 K/tick/Level-2,港股/美股、基金申赎交易/风险指标/推荐、期货/期权,宏观数据/新闻公告原文/研报/回测引擎。
- 超出范围时明确说明;只有数据含义等价时才提供替代路径,不得用近似数据、静态示例或模拟数据冒充真实结果。