Stock Analytics Skill is an LLM-based stock market analysis skill set built for individual investors.
概览
🎉 - 2026年6月25日 - 重构为基于 stock-sdk 的架构 - 新增股息率计算功能 - 支持A股、港股、美股、基金多市场 - 84个SDK方法,覆盖更多数据维度 Stock Analytics Skill 是一个基于大语言模型(LLM)的股市投资分析技能集,专为个人投资者设计。它通过模块化的Skill架构和本地数据获取工具,帮助投资者进行市场分析、资产配置和投资决策。 - :覆盖A股、港股、债券基金、ETF、基金等多个投资品种 - :根据投资者配置,自动调用对应分析技能 - :可直接获取港股、基金实时行情数据 - :专注于长期稳健复利策略,不鼓励短期炒作 - :模块化设计,方便自定义和扩展 - 追求长期稳健收益的个人投资者 - 无太多时间盯盘的上班族 - 希望系统化学习投资的小白投资者 复制 position.example.md 为 position.md,然后编辑 position.md 配置您的持仓信息: position.md 包含个人持仓数据,已加入 .gitignore,不会被提交到仓库。请放心编辑。 - :定义您的持仓配置,包括持仓标的、目标占比、配置规则等 - :定义Agent的工作流程,包括各场景对应调用哪个Skill、分析报告生成流程等 在开始使用大模型分析之前,需要将 agents.md 文件内容**并发送给大模型,让大模型理解您的工作流程。
README
Stock Analytics Agent - 股市投资分析助手
🚀 V3.1 升级 - 2026年11月
- 数据地基:FullQuote(PE/PB/52 周/换手/量比)+ 市场总览 + 持仓快照
- 计算层:区间收益 / 回撤 / 波动 / 相关性 / beta 由工具计算,不靠心算
- 调用治理:单轮 ≤8 次、同参去重、递归上限
- 报告输出:
--out落盘 + 结构检查 + 合规词表- 双模式:harness 直读(模式1)+ LangChain.js 独立 CLI Agent(模式2)
- 25 个投资 skill,口径统一、可核验、含空方论点
项目简介
Stock Analytics Agent 是一个基于大语言模型(LLM)的股市投资分析智能体,专为个人投资者设计。它通过模块化 Skill 架构 + 本地数据获取工具 + AI Agent 双模式,帮助投资者进行市场分析、资产配置和投资决策。
核心特点
- 🤖 双模式运行:既可作为 harness 技能集被 IDE Agent 直读,也可作为独立 CLI Agent 对话
- 📊 多维度分析:覆盖 A股、港股、美股、债券、ETF、基金等多个投资品种
- 🎯 智能持仓管理:读取
position.md自动调用对应分析技能 - 🧮 计算层:收益、回撤、波动、相关性与 beta 由工具计算,回答不靠心算
- 🔍 口径可核验:估值分位/股息率/回撤统一口径标注,回答附「溯源清单」防幻觉
- ⚖️ 客观中立:强制空方论点、估值陷阱检查,不给收益承诺
- 🛠 本地数据获取:A股/港股/美股/基金实时行情、净值、股息与 K 线
- 📤 报告输出:
--out写入 Markdown,自动做结构检查并提示交付审查 - 📈 长期投资导向:专注长期稳健复利,不鼓励短期炒作
两种使用方式
按场景选择,可随时切换。两者共享同一套 skill 与数据层,逻辑零分叉。
| 模式 1 · harness 直读 | 模式 2 · 独立 CLI Agent | |
|---|---|---|
| 适用 | Trae / Cursor / Codex 等 IDE Agent | 终端独立对话,无需 IDE |
| LLM | 由 harness 提供,无需配置 | 需 .env 配置 API key / 模型 |
| 启动 | 把 AGENTS.md 给 Agent 即可 |
bun run main.ts --ask "..." |
| 数据 | Agent 调 CLI 取数 | Agent 内置 10 个 tools 取数 |
| 场景 | 开发环境顺手分析 | 脚本化、多轮 REPL、管道集成 |
模式 2 用法:
# 单次提问
bun run main.ts --ask "帮我分析一下招商银行的基本面"
# 单次提问并写报告(自动做结构检查)
bun run main.ts --ask "生成今日持仓日报" --out reports/daily_report_20261103.md
# 多轮对话(REPL,输入 exit 退出)
bun run main.ts --agent
系统架构
graph TB
subgraph Agent["🤖 Agent 层 · 两种使用模式"]
direction LR
M1["模式 1 · harness 直读Trae/Cursor/Codex读 AGENTS.md + skills + position.md"]
M2["模式 2 · 独立 CLI--ask / --agentLangChain.js + .env LLM"]
end
subgraph Skill["📚 Skill 层 · .agents/"]
S1["25 个投资 skillstock-deep-analysis 等"]
S2["3 个 business skillhtml-report / report-reviewskill-quality-review"]
S3["3 个 dev skillbelos-street / bun / grill-me"]
end
subgraph Data["⚙️ 数据层 · src/"]
CLI["main.tscli / data / agent / format"]
STATS["stats.ts收益 / 回撤 / 波动 / corr / beta"]
SDK["行情 / 基金 / K线 / 股息"]
end
Market["东方财富 / 天天基金A股 · 港股 · 美股 · 基金"]
M1 -->|"load_skill + 调 CLI"| Skill
M2 -->|"10 个 tools + load_skill"| Skill
M1 --> Data
M2 --> Data
CLI --> STATS
CLI --> SDK
SDK --> Market
分层说明:
- Agent 层:决定「怎么用」——harness 直读 or LangChain.js 对话
- Skill 层:投资方法论(口径纪律、空方论点、估值框架),渐进式加载不爆上下文
- 数据层:
main.ts→src/→ 行情/基金/K线/股息,两种模式共享;计算层负责收益、回撤、波动与相关性
Agent 工具(10 个)
| 工具 | 用途 |
|---|---|
get_stock_quote |
A股/港股/美股行情:PE/PB/52 周/换手/量比/市值 |
get_fund_quote |
基金单位净值、累计净值、净值日期 |
get_dividend_yield |
股息率(单期口径,随附 yield_basis) |
get_kline |
K 线(前复权;日 250 / 周 104 / 月 120 根) |
search_stock |
名称 → 代码,兼做歧义澄清 |
load_skill |
加载投资方法论全文(路径白名单) |
get_market_overview |
5 个核心指数 + 两市成交额;缺失项显式声明 |
get_portfolio_snapshot |
持仓金额/占比/drift/上限;仅份额与成本齐全时算盈亏 |
compute_series_stats |
区间收益/回撤/波动/corr/beta/价格分位 |
web_search |
新闻/公告/政策(需 SEARCH_API_KEY,无 key 明确报错) |
所有工具返回统一信封
{ ok, data, meta },meta带source / asOf / unit;失败返回{ ok: false, error },不抛异常、不编造缺失字段。
投资理念
投资理念与风险偏好由 position.md 按每位投资者自定义,工具不预设立场——长期复利、成长、价值、红利、量化等不同风格均可适配。
Skill 技能清单
投资分析 skill(25 个 · .agents/skills/)
市场分析类(8)
| Skill | 功能 |
|---|---|
| stock-analytics | 股市行情分析、资金流向、热点板块 |
| market-valuation | A股估值高低判断、加减仓时机 |
| macro-data-interpretation | CPI/PPI/PMI/GDP/社融解读 |
| macro-sector-transmission | 宏观变量→行业传导 |
| bond-yield-analysis | 债券利率走势、久期策略 |
| hk-stock-analysis | 港股市场、南向资金、AH 联动 |
| announcement-analysis | 公告与财报解读 |
| credit-analysis | 主体信用资质、违约概率评估 |
ETF / 基金类(8)
| Skill | 功能 |
|---|---|
| dividend-low-vol-etf | 红利低波 50ETF(515450)加减仓 |
| broad-index-etf-analysis | 宽基 ETF(A500/沪深300/中证500) |
| a500-index-investment | A500 专属 PE 建仓、倒金字塔 |
| cash-flow-etf-analysis | 现金流 ETF、分红稳定性 |
| bond-fund-analysis | 债券基金、利率影响 |
| fund-screening | 按风险偏好筛选基金 |
| fund-comparison | 多只基金对比 |
| asset-allocation-rebalancing | 资产配置与再平衡 |
个股 / 估值类(9)
| Skill | 功能 |
|---|---|
| stock-deep-analysis | 个股深度分析(基本面/估值/财务) |
| stock-investment-logic | 券商风格个股研究 |
| valuation-framework | 估值方法与定价框架 |
| comparable-company-analysis | 可比公司 Comps 分析 |
| investment-memo | 一页纸投资备忘 |
| buffett-value-investing | 巴菲特四大原则价值投资 |
| investment-idea-generator | 量化筛选、主题扫描 |
| thematic-stock-picker | 按主题选股(AI/新能源等) |
| growth-stock-screener | 八维成长股筛选 |
业务技能(.agents/business/)
| Skill | 功能 |
|---|---|
| html-report | HTML 报告生成封装 |
| report-review | 交付前多维审查 |
| skill-quality-review | Skill 质量/合规评审 |
开发技能(.agents/dev/)
| Skill | 功能 |
|---|---|
| belos-street | 编码规范与工程流程 |
| bun | Bun 运行时 API |
| grill-me | 需求澄清 |
技能路由:投资问题搜
skills/;交付报告搜business/;代码工程搜dev/。详见AGENTS.md。
使用场景
| 场景 | 触发条件 | 调用 Skill |
|---|---|---|
| 市场分析 | A股整体行情、大盘走势 | stock-analytics |
| 市场估值 | A股估值高低、加仓时机 | market-valuation |
| 红利 ETF | 红利低波 515450 加减仓 | dividend-low-vol-etf |
| 宽基 ETF | A500/沪深300 估值 | broad-index-etf-analysis |
| A500 策略 | A500 建仓、倒金字塔 | a500-index-investment |
| 现金流 ETF | 现金流 ETF 策略 | cash-flow-etf-analysis |
| 债券基金 | 债券基金、利率影响 | bond-fund-analysis |
| 港股 | 港股/恒生医疗科技 ETF | hk-stock-analysis |
| 个股分析 | 个股基本面、估值 | stock-deep-analysis |
| 个股深度 | 深度投资逻辑研究 | stock-investment-logic |
| 价值投资 | 巴菲特理念、安全边际 | buffett-value-investing |
| 估值分析 | 估值方法、相对估值 | valuation-framework |
| 可比公司 | 估值对标、Comps | comparable-company-analysis |
| 投资备忘 | 一页纸报告 | investment-memo |
| 公告财报 | 公告、年报、业绩预告 | announcement-analysis |
| 信用分析 | 信用资质、违约概率 | credit-analysis |
| 债券利率 | 利率走势、久期 | bond-yield-analysis |
| 宏观数据 | CPI/PMI 等解读 | macro-data-interpretation |
| 宏观传导 | 宏观→行业传导 | macro-sector-transmission |
| 投资筛选 | 量化筛选、主题发现 | investment-idea-generator |
| 主题选股 | AI/新能源等主题 | thematic-stock-picker |
| 八维选股 | 成长股 8 维筛选 | growth-stock-screener |
| 基金筛选 | 按风险偏好选基金 | fund-screening |
| 基金对比 | 多基金对比 | fund-comparison |
| 资产配置 | 配置、再平衡、仓位 | asset-allocation-rebalancing |
快速开始
1. 环境自检与安装
# 安装 Bun 运行时(已有则跳过)
curl -fsSL https://bun.sh/install | bash
bun --version
# 安装依赖
bun install
2. 配置持仓
cp position.example.md position.md
# 编辑 position.md 填入你的持仓标的、目标占比、配置规则
position.md是个人持仓配置,已加入.gitignore不会提交。
3. 配置模型(仅模式 2 需要)
cp .env.example .env
# 编辑 .env 填入 LLM 配置
.env 内容(OpenAI 兼容端点均可):
OPENAI_API_KEY=sk-your-api-key
OPENAI_BASE_URL=https://api.deepseek.com # DeepSeek / MoonShot 等
DEFAULT_MODEL=deepseek-flash # 模型名因供应商而异
# OPENAI_APPEND_V1=false # Azure/网关需保留原 URL 时关闭补 /v1
模式 1(harness)无需
.env,由 IDE Agent 自带 LLM。
4. 冒烟测试与自检
bun run main.ts -s sh600519 --pretty # 返回贵州茅台行情即环境就绪
bun run check # 类型检查 + 单测 + golden + lint
5. 开始使用
- 模式 1:把
AGENTS.md交给 IDE Agent(或作为 system prompt),直接对话 - 模式 2:
bun run main.ts --ask "今天A股表现怎么样?"或--agent进多轮对话
CLI 工具
基本用法
bun run main.ts [options]
参数说明
| 参数 | 说明 | 示例 |
|---|---|---|
-s, --stocks |
A股/ETF/指数代码(逗号分隔,自动识别 sh/sz/hk) | -s sh600519,sh600036 |
-f, --funds |
基金代码(逗号分隔) | -f 006493,006961 |
--hk |
港股代码(逗号分隔) | --hk 00700,01810 |
--us |
美股代码(逗号分隔) | --us AAPL,MSFT |
--dividend |
股息率查询 | --dividend sh600941 |
--search |
搜索股票/基金 | --search 招商银行 |
--kline |
K线数据 | --kline sh600519 |
--period |
K线周期:daily / weekly / monthly | --kline sh600519 --period weekly |
-o, --format |
输出格式:json / table / csv | -o table |
--pretty |
美化 JSON 输出 | --pretty |
--ask |
向 AI 助手提单个问题(模式2) | --ask "分析招商银行" |
--out |
把 --ask 的最终回答写入 Markdown 并做结构检查 |
--out reports/daily.md |
--agent |
进入 AI 多轮对话(模式2) | --agent |
stdout 只输出数据,标题/提示走 stderr,可直接管道给 JSON 解析工具。
输出格式
JSON(默认):
[
{
"name": "贵州茅台",
"code": "600519",
"price": 1212.72,
"change": -19.28,
"change_percent": -1.57,
"update_time": "2026/10/21"
}
]
Table:
名称 代码 价格 涨跌 涨跌幅
贵州茅台 600519 1212.72 -19.28 -1.57%
支持的市场
- A股:sh600519(贵州茅台)、sh600036(招商银行)等
- 港股:00700(腾讯控股)、01810(小米集团)等
- 美股:AAPL(苹果)、MSFT(微软)等
- 基金:006493、006961(南方中债)等
- ETF:sh515450(红利低波50ETF)等
使用示例
# 查询行情
bun run main.ts -s sh600941,sh600036 --pretty
# 查询股息率(含 yield_basis 口径标注)
bun run main.ts --dividend sh600941
# AI 助手单次提问(模式2)
bun run main.ts --ask "用巴菲特理念分析一下贵州茅台"
用户:今天我的持仓表现怎么样?
Agent:
1. 读取 position.md 了解持仓配置
2. 调 CLI 获取各持仓标的数据
3. 逐一加载对应 Skill 分析(含空方论点、口径标注)
4. 调 asset-allocation-rebalancing 给出再平衡建议
5. 输出报告 + 「📎 本次回答依据」溯源清单
项目结构
stock-analytics-agent/
├── main.ts # 薄入口:解析参数 → 分发
├── src/
│ ├── cli/ # program/query/render(CLI 编排、渲染、spinner)
│ ├── data/ # sdk/dividend/stats(行情、净值、股息、K线、统计)
│ ├── agent/ # config/index/run/skills/tools/position/trace/envelope/compliance
│ ├── format.ts # 输出格式化
│ ├── types.ts # 集中类型定义
│ └── index.ts # 统一导出
├── test/ # bun test 用例 + golden fixture
├── .agents/
│ ├── skills/ # 25 个投资 skill
│ ├── business/ # html-report / report-review / skill-quality-review
│ ├── dev/ # belos-street / bun / grill-me
│ ├── rules/ # project_rules / memory / agent_brief
│ └── memory/decisions.md # 决策日志
├── upgrade/v3.0/ # 3.0 升级归档
├── upgrade/v3.1/ # 3.1 方案、评审与基线说明
├── AGENTS.md # Agent 配置(skill 路由、场景映射)
├── position.example.md # 持仓配置模板
├── .env.example # LLM 配置模板(模式2)
├── package.json
└── README.md
致谢
| 项目 | 说明 | 链接 |
|---|---|---|
| stock-sdk | 零依赖股票数据 SDK,84 个命名空间方法 | GitHub |
| 天天基金 / 东方财富 | 数据源 | eastmoney.com |
扩展开发
添加新 skill:
- 在
.agents/skills/下建目录,写SKILL.md - 在
AGENTS.md添加场景映射
添加新数据源:
- 在
src/data/建模块(参考sdk.ts) - 在
src/cli/program.ts加参数,src/index.ts导出
注意事项
⚠️ 法律声明
- 仅供个人学习和技术研究,禁止商业用途
- 数据来自公开第三方接口,归属权归各平台所有
- 不存储用户数据,不涉及账户登录
⚠️ 风险提示
- 仅供学习参考,不构成投资建议
- 投资有风险,入市需谨慎
- 回答附「溯源清单」供核验,量化口径以文档标注为准
许可证
MIT License
推荐工具
换一个关键词,或者移除筛选条件。
安装
npx skillfish add belos-street/stock-analytics-skill