@caidazi/mcp 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +169 -0
- package/bin/caidazi-mcp.js +8 -0
- package/caidazi-asset-research/SKILL.md +99 -0
- package/caidazi-finance-search/SKILL.md +60 -0
- package/caidazi-fund-etf-research/SKILL.md +76 -0
- package/caidazi-macro-research/SKILL.md +60 -0
- package/caidazi-market-pulse/SKILL.md +80 -0
- package/caidazi-portfolio-review/SKILL.md +61 -0
- package/caidazi-stock-screener/SKILL.md +84 -0
- package/caidazi-user-assets/SKILL.md +110 -0
- package/manifest.yaml +162 -0
- package/package.json +46 -0
- package/src/allowed-tools.js +23 -0
- package/src/cli.js +60 -0
- package/src/config.js +82 -0
- package/src/mcp-server.js +60 -0
- package/src/rest-client.js +137 -0
- package/src/tool-schema.js +109 -0
package/README.md
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# 财搭子外部 Skills
|
|
2
|
+
|
|
3
|
+
面向通用 AI Agent 的公开 skill 包。
|
|
4
|
+
|
|
5
|
+
本仓库包含两部分:
|
|
6
|
+
|
|
7
|
+
- `@caidazi/mcp`:通用 stdio MCP bridge。Agent 通过标准 MCP 调用工具,bridge 内部转发到财搭子后端。
|
|
8
|
+
- `caidazi-*` skills:告诉 Agent 什么时候调用财搭子工具、如何处理 API Key/工具不可用、结果如何组织。
|
|
9
|
+
|
|
10
|
+
投资逻辑、数据拼接、候选生成、打分和私有账户访问都留在服务端 wrapper 内部。
|
|
11
|
+
|
|
12
|
+
统一使用 `CAIDAZI_API_KEY`。
|
|
13
|
+
|
|
14
|
+
## Agent 安装契约
|
|
15
|
+
|
|
16
|
+
如果你是正在安装本仓库的 AI Agent,请以 `manifest.yaml` 为真源,不要写死某个客户端的旧配置路径。
|
|
17
|
+
|
|
18
|
+
1. 拉取 `https://github.com/caidazi/dafa-skills.git`,读取 `manifest.yaml`。
|
|
19
|
+
2. 安装 `skills.included` 中的 skill 目录;如果当前 Agent 不支持 skills,继续配置 MCP,并在报告中说明没有 skill 路由增强。
|
|
20
|
+
3. 配置 MCP,默认使用 stdio bridge:
|
|
21
|
+
- name: `mcp.server_name`
|
|
22
|
+
- transport: `mcp.transport`
|
|
23
|
+
- command: `mcp.command`
|
|
24
|
+
- args: `mcp.args`
|
|
25
|
+
- env: `CAIDAZI_API_KEY`,key 必须来自 secret/env 引用
|
|
26
|
+
- config: 使用当前 Agent 官方支持的 MCP 配置方式;不要猜测旧配置路径。
|
|
27
|
+
4. 处理 API Key:
|
|
28
|
+
- 不要生成 key,不要要求用户把完整 key 发到聊天里。
|
|
29
|
+
- 不要通过 `printenv`、`echo`、日志、截图或最终报告回显完整 key。
|
|
30
|
+
- 不要把 key 写入仓库、README、issue、PR 或普通项目配置文件。
|
|
31
|
+
- 如果缺 key,引导用户到财搭子 App 领取,并用 secret store、MCP 配置 UI、本机环境变量或交互式 secret 输入设置。
|
|
32
|
+
5. 处理 endpoint 安全:
|
|
33
|
+
- 默认不要把后端 REST API 配成 Agent 的 MCP endpoint。
|
|
34
|
+
- `backend_api.test_base_url` 是 bridge 的临时后端地址,不是 Agent-facing MCP endpoint。
|
|
35
|
+
- 如果后端地址是 HTTP,必须显式设置 `CAIDAZI_ALLOW_HTTP=true`,表示用户确认这是可信测试环境。
|
|
36
|
+
- hosted HTTPS MCP 端点上线并通过健康检查后,才可改用 `mcp.hosted_endpoint`。
|
|
37
|
+
6. 验证:
|
|
38
|
+
- 先做本地验证:manifest 可解析、skills 已索引或 MCP-only、MCP 配置已写入或生成草案。
|
|
39
|
+
- MCP 必须完成当前 Agent 的 MCP 健康检查;只安装 skills 不能算 MCP 已接入。
|
|
40
|
+
- Agent 必须能通过 MCP tools/list 发现 `required_mcp.public_tools`。
|
|
41
|
+
- 网络 smoke test 只能使用 `required_mcp.smoke_safe_tools`。
|
|
42
|
+
- 禁止用自选、持仓、组合工具做安装验证;这些账户工具只在用户主动询问个人资产时使用。
|
|
43
|
+
7. 安装后向用户说明能做什么,区分公开能力和账户能力,并询问用户想先做哪类任务。
|
|
44
|
+
|
|
45
|
+
安装报告请保持简短,包含:skills 模式、MCP 配置状态、API Key 状态(不回显 key)、传输安全、公开工具可见性、smoke test 结果或跳过原因。
|
|
46
|
+
|
|
47
|
+
### 通用 MCP 配置
|
|
48
|
+
|
|
49
|
+
具体 server name、command、args、env 和验证规则以 `manifest.yaml` 为准。大多数支持 stdio MCP 的 Agent 都可以使用下面的形状;具体写入位置必须使用当前 Agent 官方支持的 MCP 配置方式。
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"mcpServers": {
|
|
54
|
+
"caidazi": {
|
|
55
|
+
"command": "npx",
|
|
56
|
+
"args": ["-y", "@caidazi/mcp"],
|
|
57
|
+
"env": {
|
|
58
|
+
"CAIDAZI_API_KEY": "<set by your Agent secret/env>",
|
|
59
|
+
"CAIDAZI_ALLOW_HTTP": "true"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
`CAIDAZI_ALLOW_HTTP=true` 只用于当前临时测试后端。生产后端改为 HTTPS 后应移除。
|
|
67
|
+
|
|
68
|
+
如果 `@caidazi/mcp` 还没有发布到 npm registry,安装 Agent 可以临时把 args 中的 `@caidazi/mcp` 替换为 `github:caidazi/dafa-skills`。正式对外安装仍应发布 npm 包,因为这是 `npx -y @caidazi/mcp` 能跨 Agent 稳定工作的前提。
|
|
69
|
+
|
|
70
|
+
本地开发验证:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npm install
|
|
74
|
+
CAIDAZI_API_KEY=<redacted> CAIDAZI_ALLOW_HTTP=true npm run validate
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## 用户快速开始
|
|
78
|
+
|
|
79
|
+
复制下面这段发给你的 AI Agent:
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
请为我安装财搭子(Caidazi)Skills 和 MCP。
|
|
83
|
+
|
|
84
|
+
Repo: https://github.com/caidazi/dafa-skills.git
|
|
85
|
+
|
|
86
|
+
请读取 README.md 和 manifest.yaml,以 manifest.yaml 为安装真源。
|
|
87
|
+
|
|
88
|
+
要求:
|
|
89
|
+
1. 安装 manifest.yaml 中列出的 skills;如果当前 Agent 不支持 skills,请进入 MCP-only 模式并说明限制。
|
|
90
|
+
2. 配置 caidazi MCP,server name、transport、command、args、env 都从 manifest.yaml 读取。
|
|
91
|
+
3. 检查 CAIDAZI_API_KEY。
|
|
92
|
+
4. 如果没有 key,不要生成 key,不要让我把完整 key 发到聊天里。请告诉我到财搭子 App -> 大发 agent 页面 -> 左上角 skill icon -> Skills 页面领取,然后用当前 Agent 支持的安全方式设置为 CAIDAZI_API_KEY。
|
|
93
|
+
5. 默认使用 `@caidazi/mcp` stdio bridge。如果 npm registry 还找不到该包,请按 manifest.yaml 的 unpublished_fallback 临时从 GitHub 运行,并在安装报告里说明。当前测试后端是 HTTP,只有我明确授权时才设置 `CAIDAZI_ALLOW_HTTP=true`。
|
|
94
|
+
6. 验证时只调用 smoke_safe_tools,不要调用我的自选、持仓或组合工具。
|
|
95
|
+
7. 安装完成后,请简短说明财搭子能做什么,并问我想先做哪类任务。
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## API Key
|
|
99
|
+
|
|
100
|
+
在财搭子 App 中领取:
|
|
101
|
+
|
|
102
|
+
1. 打开财搭子 App。
|
|
103
|
+
2. 进入大发 agent 页面。
|
|
104
|
+
3. 点击左上角的 skill icon。
|
|
105
|
+
4. 进入 Skills 页面,领取或复制 API Key。
|
|
106
|
+
5. 用安全方式设置为 `CAIDAZI_API_KEY`。
|
|
107
|
+
|
|
108
|
+
不要把完整 API Key 粘贴到聊天、日志或公开文件里。Agent 只能报告 key 是否存在、是否可用,不应回显完整 key。
|
|
109
|
+
|
|
110
|
+
## Endpoint 安全
|
|
111
|
+
|
|
112
|
+
Agent-facing MCP 默认使用 `@caidazi/mcp` stdio bridge。bridge 内部会调用后端 REST API,但 Agent 侧看到的是标准 MCP tools/list 和 tools/call。
|
|
113
|
+
|
|
114
|
+
`backend_api.test_base_url` 是临时测试后端,不是 Agent-facing MCP endpoint。不要把 `/api/tools/registered` 或 `/api/tools/call` 直接配置成 MCP endpoint。hosted HTTPS MCP 端点上线后,必须先通过 MCP initialize/tools-list 健康检查,再作为 `mcp.hosted_endpoint` 使用。
|
|
115
|
+
|
|
116
|
+
## 发布 npm 包
|
|
117
|
+
|
|
118
|
+
`@caidazi/mcp` 要对外支持 `npx -y @caidazi/mcp`,必须发布到 npm registry。只放在 GitHub repo 里,可以被临时 GitHub package spec 使用,但不是最丝滑的默认安装路径。
|
|
119
|
+
|
|
120
|
+
发布前检查:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
npm test
|
|
124
|
+
CAIDAZI_API_KEY=<redacted> CAIDAZI_ALLOW_HTTP=true npm run validate
|
|
125
|
+
npm pack --dry-run
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
首次发布需要:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npm login
|
|
132
|
+
npm whoami
|
|
133
|
+
npm publish
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
发布账号必须有 `@caidazi` scope 的发布权限。本仓库尚未声明 license;正式公开发布前请先确认公司希望使用的开源授权,再补 `license` 字段和 LICENSE 文件。
|
|
137
|
+
|
|
138
|
+
## 能做什么
|
|
139
|
+
|
|
140
|
+
公开能力:
|
|
141
|
+
|
|
142
|
+
- 市场脉搏:热点、大盘走势、板块概览、盘前盘中盘后摘要。
|
|
143
|
+
- 单标的研究:股票、ETF、基金、指数的快速研究和原因分析。
|
|
144
|
+
- 多标的比较:比较多个股票、ETF、基金或指数。
|
|
145
|
+
- 自然语言选股:用自然语言筛选候选股票或 ETF。
|
|
146
|
+
- 财经搜索:搜索资讯、公告、研报、政策和事件进展。
|
|
147
|
+
- 基金/ETF 研究:查询 ETF 持仓、指数相关 ETF、基金和 ETF 对比。
|
|
148
|
+
- 宏观研究:分析政策、利率、通胀、汇率和大类资产影响。
|
|
149
|
+
|
|
150
|
+
账户能力需要 API Key 已绑定财搭子账户,且只能在用户主动询问个人资产时使用:
|
|
151
|
+
|
|
152
|
+
- 用户资产上下文:查询并使用财搭子自选、持仓和组合快照。
|
|
153
|
+
- 组合复盘:基于财搭子自选、持仓或组合快照做轻量复盘。
|
|
154
|
+
|
|
155
|
+
样例 query:
|
|
156
|
+
|
|
157
|
+
- 今天 A 股市场热点是什么?
|
|
158
|
+
- 帮我看下宁德时代最近的核心矛盾。
|
|
159
|
+
- 比亚迪和宁德时代谁更值得跟踪?
|
|
160
|
+
- 找出最近资金强、估值不贵的新能源股票。
|
|
161
|
+
- 纳指 ETF 和恒生科技 ETF 怎么选?
|
|
162
|
+
- 我的自选里今天哪些最值得关注?(会读取账户资产,需你主动发起)
|
|
163
|
+
|
|
164
|
+
## 边界
|
|
165
|
+
|
|
166
|
+
- 不要暴露 API Key、内部表名、原始查询指令、内部账户工具名或具体打分规则。
|
|
167
|
+
- 不要编造行情、公告、研报、宏观数据或用户资产。
|
|
168
|
+
- 不要把候选标的表述为收益承诺或确定性买卖建议。
|
|
169
|
+
- 不要默认读取用户持仓或自选作为安装验证。
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: caidazi-asset-research
|
|
3
|
+
description: 当用户询问股票、ETF、基金、指数的快速研究,或想比较多个标的时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 财搭子资产研究
|
|
7
|
+
|
|
8
|
+
用这个 skill 处理单个标的研究和简单多标的比较。公开流程要尽量少调用、少澄清,优先通过 MCP wrapper 完成。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
- "帮我看看贵州茅台"
|
|
13
|
+
- "这个 ETF 怎么样"
|
|
14
|
+
- "纳指和恒生科技对比一下"
|
|
15
|
+
- "比亚迪和宁德时代谁更强"
|
|
16
|
+
- "这只股票最近为什么动"
|
|
17
|
+
- "我的自选里哪几个值得重点关注"
|
|
18
|
+
|
|
19
|
+
不要用于完整组合诊断、交易执行、自然语言选股或长篇研报。
|
|
20
|
+
|
|
21
|
+
## 可用工具
|
|
22
|
+
|
|
23
|
+
- `extract_assets`
|
|
24
|
+
- `get_asset_overview`
|
|
25
|
+
- `investment_search_pro`
|
|
26
|
+
- `compare_assets`
|
|
27
|
+
- `get_caidazi_user_watchlist`
|
|
28
|
+
- `get_caidazi_positions_summary`
|
|
29
|
+
|
|
30
|
+
## 标的识别
|
|
31
|
+
|
|
32
|
+
用户给出明确代码或名称时直接继续。名称有歧义时调用 `extract_assets`。如果多个标的都可能匹配,且用户只想看一个,最多问一个澄清问题。
|
|
33
|
+
|
|
34
|
+
当用户提到财搭子私有数据:
|
|
35
|
+
|
|
36
|
+
- "我的自选":调用 `get_caidazi_user_watchlist()`。
|
|
37
|
+
- "我的持仓":调用 `get_caidazi_positions_summary(mask_sensitive=true)`。
|
|
38
|
+
|
|
39
|
+
如果账户数据不可用,说明用户可到 财搭子 App -> 大发 agent -> 左上角 skill icon -> Skills 页面领取或绑定账户关联 API Key;在有价值时继续用公开行情数据回答。
|
|
40
|
+
|
|
41
|
+
## 单标的流程
|
|
42
|
+
|
|
43
|
+
1. 识别标的。
|
|
44
|
+
2. 调用 `get_asset_overview(symbol=...)`。
|
|
45
|
+
3. 用户问"为什么"、"最新"、"新闻",或提到具体事件时,再调用 `investment_search_pro`。
|
|
46
|
+
4. 只基于工具返回内容回答。
|
|
47
|
+
|
|
48
|
+
## 多标的比较
|
|
49
|
+
|
|
50
|
+
两个或更多标的时优先使用 `compare_assets`。
|
|
51
|
+
|
|
52
|
+
推荐参数:
|
|
53
|
+
|
|
54
|
+
- `symbols`:来自用户或 `extract_assets` 的规范化代码/名称。
|
|
55
|
+
- `metrics`:按用户问题推断,默认 `["price", "valuation", "overview"]`。
|
|
56
|
+
- `period`:默认 `"latest"`;用户提到今天、本周、本月时分别使用对应周期。
|
|
57
|
+
|
|
58
|
+
当 `compare_assets` 能完成任务时,不要手动循环调用原始工具。
|
|
59
|
+
|
|
60
|
+
## 澄清策略
|
|
61
|
+
|
|
62
|
+
最多问一个问题,限于这些情况:
|
|
63
|
+
|
|
64
|
+
- 标的无法确定;
|
|
65
|
+
- 比较对象缺失;
|
|
66
|
+
- 用户问"我的资产",但 API Key 未关联账户且任务无法继续。
|
|
67
|
+
|
|
68
|
+
不要询问风险偏好。这个 skill 只做研究和比较。
|
|
69
|
+
|
|
70
|
+
## 输出结构
|
|
71
|
+
|
|
72
|
+
单标的:
|
|
73
|
+
|
|
74
|
+
1. 一句话观点。
|
|
75
|
+
2. 概况:业务、位置、近期变化。
|
|
76
|
+
3. 催化:事件、行业或资金线索。
|
|
77
|
+
4. 估值/资金/风险:只展示工具返回内容。
|
|
78
|
+
5. 待验证问题:哪些数据会改变当前判断。
|
|
79
|
+
|
|
80
|
+
多标的:
|
|
81
|
+
|
|
82
|
+
1. 简短结论。
|
|
83
|
+
2. 表格列出每个标的和用户关心的指标。
|
|
84
|
+
3. 主要差异。
|
|
85
|
+
4. 数据缺口。
|
|
86
|
+
|
|
87
|
+
## 错误处理
|
|
88
|
+
|
|
89
|
+
- API Key 无效或过期:引导用户到 财搭子 App -> 大发 agent -> 左上角 skill icon -> Skills 页面重新领取。
|
|
90
|
+
- 工具调用失败:按工具返回的 `message` 说明,不自行推断后台策略。
|
|
91
|
+
- 标的未找到:请用户补充更清晰的代码或名称。
|
|
92
|
+
- 工具未开放:说明该能力暂未对外部 Agent 开放。
|
|
93
|
+
|
|
94
|
+
## 边界
|
|
95
|
+
|
|
96
|
+
- 不要说"如果我是你",不要给直接买卖指令。
|
|
97
|
+
- 不要暴露内部打分、字段映射或工具编排细节。
|
|
98
|
+
- 不要提内部服务名。
|
|
99
|
+
- 不要透露 API Key。
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: caidazi-finance-search
|
|
3
|
+
description: 当用户搜索财经新闻、公告、研报、政策、事件进展,或想查某个主题的最新公开信息时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 财搭子财经搜索
|
|
7
|
+
|
|
8
|
+
用这个 skill 处理高时效的资讯、公告、研报和政策检索。公开 skill 只描述检索目标和输出方式,信源权重、事件聚类和关联分析留在 MCP 内部。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
- "搜一下今天半导体有什么新闻"
|
|
13
|
+
- "宁德时代最近公告有哪些"
|
|
14
|
+
- "这个政策原文和市场解读是什么"
|
|
15
|
+
- "最近有哪些关于机器人产业链的研报"
|
|
16
|
+
- "帮我查一下某公司为什么大涨"
|
|
17
|
+
|
|
18
|
+
不要用于纯行情查询、自然语言选股或完整研报生成。
|
|
19
|
+
|
|
20
|
+
## 可用工具
|
|
21
|
+
|
|
22
|
+
- `investment_search_pro`
|
|
23
|
+
- `get_asset_overview`,仅当用户追问某个标的研究时使用。
|
|
24
|
+
- `get_hot_report` 或 `get_real_time_market_summary`,仅当用户从资讯转向大盘或热点概览时使用。
|
|
25
|
+
|
|
26
|
+
## 流程
|
|
27
|
+
|
|
28
|
+
1. 提取检索 query:公司、行业、政策、事件或关键词。
|
|
29
|
+
2. 推断 `channels`:新闻、公告、研报、政策;不确定时留空交给 wrapper。
|
|
30
|
+
3. 推断 `time_range`:默认最近 7 天;用户说"今天"、"最近"、"今年"时分别传入。
|
|
31
|
+
4. 调用 `investment_search_pro(query=...)`。
|
|
32
|
+
5. 只总结工具返回的来源、发布时间和摘要。
|
|
33
|
+
|
|
34
|
+
## 澄清策略
|
|
35
|
+
|
|
36
|
+
最多问一个问题,且只在关键词过短、无法判断领域时提问。
|
|
37
|
+
|
|
38
|
+
如果用户给出公司或主题,即使没有指定时间,也直接用默认时间范围。
|
|
39
|
+
|
|
40
|
+
## 输出结构
|
|
41
|
+
|
|
42
|
+
1. 一句话结论。
|
|
43
|
+
2. 信息列表:标题、时间、来源、摘要。
|
|
44
|
+
3. 可能影响:只引用工具返回内容。
|
|
45
|
+
4. 数据覆盖和时效限制。
|
|
46
|
+
5. 下一步建议:看某个标的、筛相关候选或查看市场影响。
|
|
47
|
+
|
|
48
|
+
## 错误处理
|
|
49
|
+
|
|
50
|
+
- API Key 无效:引导用户到 财搭子 App -> 大发 agent -> 左上角 skill icon -> Skills 页面重新领取。
|
|
51
|
+
- 工具调用失败:按工具返回的 `message` 说明,不自行推断后台策略。
|
|
52
|
+
- 没有结果:建议放宽关键词、时间范围或渠道。
|
|
53
|
+
- 工具未开放:说明资讯搜索暂未对外部 Agent 开放。
|
|
54
|
+
|
|
55
|
+
## 边界
|
|
56
|
+
|
|
57
|
+
- 不要编造新闻、公告或研报来源。
|
|
58
|
+
- 不要暴露搜索召回、排序、信源权重或事件聚类规则。
|
|
59
|
+
- 不要把未经验证的传闻写成事实。
|
|
60
|
+
- 不要输出内部 endpoint、密钥或私有路径。
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: caidazi-fund-etf-research
|
|
3
|
+
description: 当用户询问基金、ETF、指数基金的研究、筛选、诊断、对比或配置候选时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 财搭子基金 ETF 研究
|
|
7
|
+
|
|
8
|
+
用这个 skill 处理基金和 ETF 高频问题。公开 skill 只负责查询、筛选、比较和表达,基金评价、归因、持仓去噪和评分逻辑留在 MCP 内部。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
- "帮我看看这只 ETF"
|
|
13
|
+
- "找几个港股科技 ETF"
|
|
14
|
+
- "沪深300 ETF 哪个更适合跟踪"
|
|
15
|
+
- "这只基金最近表现为什么差"
|
|
16
|
+
- "我的自选里 ETF 哪些值得关注"
|
|
17
|
+
|
|
18
|
+
不要用于基金销售承诺、收益保证、自动调仓或复杂资产配置方案。
|
|
19
|
+
|
|
20
|
+
## 可用工具
|
|
21
|
+
|
|
22
|
+
- `get_asset_overview`
|
|
23
|
+
- `investment_search_pro`
|
|
24
|
+
- `screen_stocks`
|
|
25
|
+
- `compare_assets`
|
|
26
|
+
- `get_etf_constituents`
|
|
27
|
+
- `get_index_related_etfs`
|
|
28
|
+
- `get_stock_belongings`
|
|
29
|
+
- `get_caidazi_user_watchlist`
|
|
30
|
+
|
|
31
|
+
## 流程
|
|
32
|
+
|
|
33
|
+
单只基金或 ETF:
|
|
34
|
+
|
|
35
|
+
1. 识别名称或代码。
|
|
36
|
+
2. 调用 `get_asset_overview(symbol=...)`。
|
|
37
|
+
3. 如果用户关心 ETF 持仓结构,调用 `get_etf_constituents(symbol, top_n)`。
|
|
38
|
+
4. 只展示工具返回的规模、跟踪对象、费用、风险、持仓和近期变化。
|
|
39
|
+
|
|
40
|
+
筛选基金或 ETF:
|
|
41
|
+
|
|
42
|
+
1. 把用户条件整理成自然语言 query。
|
|
43
|
+
2. 推断市场或品类:A 股 ETF、港股 ETF、美股 ETF、基金。
|
|
44
|
+
3. 调用 `screen_stocks(query, market="ETF", limit)`。
|
|
45
|
+
4. 不要手动构造字段筛选。
|
|
46
|
+
|
|
47
|
+
对比:
|
|
48
|
+
|
|
49
|
+
1. 两个或更多基金/ETF 时调用 `compare_assets(symbols, metrics, period)`。
|
|
50
|
+
2. 不要循环调用多个底层工具拼表。
|
|
51
|
+
|
|
52
|
+
## 澄清策略
|
|
53
|
+
|
|
54
|
+
最多问一个问题。只有在基金名称高度歧义,或用户只说"推荐几个基金"但没有任何市场、方向或风格时提问。
|
|
55
|
+
|
|
56
|
+
## 输出结构
|
|
57
|
+
|
|
58
|
+
1. 一句话结论。
|
|
59
|
+
2. 核心指标或候选表格。
|
|
60
|
+
3. 适合继续研究的原因。
|
|
61
|
+
4. 主要风险和数据时间。
|
|
62
|
+
5. 下一步建议:比较、看持仓、查新闻或加入自选。
|
|
63
|
+
|
|
64
|
+
## 错误处理
|
|
65
|
+
|
|
66
|
+
- API Key 无效:引导用户到 财搭子 App -> 大发 agent -> 左上角 skill icon -> Skills 页面重新领取。
|
|
67
|
+
- 工具调用失败:按工具返回的 `message` 说明,不自行推断后台策略。
|
|
68
|
+
- 未找到基金:请用户提供更准确的名称或代码。
|
|
69
|
+
- 空结果:建议放宽费率、规模、主题、市场或时间条件。
|
|
70
|
+
|
|
71
|
+
## 边界
|
|
72
|
+
|
|
73
|
+
- 不要承诺收益或保本。
|
|
74
|
+
- 不要暴露基金评分模型、归因规则或候选池逻辑。
|
|
75
|
+
- 不要输出内部字段、表名或 SQL。
|
|
76
|
+
- 不要给明确买卖指令。
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: caidazi-macro-research
|
|
3
|
+
description: 当用户询问宏观数据、政策、利率、通胀、流动性、汇率或大类资产影响时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 财搭子宏观研究
|
|
7
|
+
|
|
8
|
+
用这个 skill 处理宏观和大类资产解释。公开 skill 只写查询与摘要结构,宏观框架、数据选择和传导判断由 MCP 返回。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
- "降息对 A 股有什么影响"
|
|
13
|
+
- "最近国内宏观怎么看"
|
|
14
|
+
- "美元走强会影响哪些资产"
|
|
15
|
+
- "通胀数据出来后市场怎么理解"
|
|
16
|
+
- "人民币汇率变化对港股有什么影响"
|
|
17
|
+
|
|
18
|
+
不要用于单股深度、选股或组合诊断。
|
|
19
|
+
|
|
20
|
+
## 可用工具
|
|
21
|
+
|
|
22
|
+
- `get_macro_analysis`
|
|
23
|
+
- `get_market_analysis`
|
|
24
|
+
- `investment_search_pro`
|
|
25
|
+
|
|
26
|
+
## 流程
|
|
27
|
+
|
|
28
|
+
1. 判断宏观主题:利率、政策、通胀、汇率、流动性、经济数据或海外市场。
|
|
29
|
+
2. 判断国家/地区:默认中国;用户提到美国、欧洲、日本、全球时对应传入。
|
|
30
|
+
3. 调用 `get_macro_analysis(country)`。
|
|
31
|
+
4. 如果用户问最新政策或刚发布数据,再调用 `investment_search_pro` 补充事实。
|
|
32
|
+
5. 如果用户问市场影响,可用 `get_market_analysis` 衔接大盘状态。
|
|
33
|
+
|
|
34
|
+
## 澄清策略
|
|
35
|
+
|
|
36
|
+
最多问一个问题。国家/地区能从上下文判断时不要问。
|
|
37
|
+
|
|
38
|
+
不要问风险偏好。这个 skill 解释宏观影响,不做交易适配。
|
|
39
|
+
|
|
40
|
+
## 输出结构
|
|
41
|
+
|
|
42
|
+
1. 一句话宏观判断。
|
|
43
|
+
2. 当前数据或政策背景。
|
|
44
|
+
3. 对股、债、商品、汇率或行业的传导影响。
|
|
45
|
+
4. 置信度和反向风险。
|
|
46
|
+
5. 接下来观察的数据。
|
|
47
|
+
|
|
48
|
+
## 错误处理
|
|
49
|
+
|
|
50
|
+
- API Key 无效:引导用户到 财搭子 App -> 大发 agent -> 左上角 skill icon -> Skills 页面重新领取。
|
|
51
|
+
- 工具调用失败:按工具返回的 `message` 说明,不自行推断后台策略。
|
|
52
|
+
- 数据不足:说明缺口,不要手动编宏观数据。
|
|
53
|
+
- 工具未开放:说明宏观研究暂未对外部 Agent 开放。
|
|
54
|
+
|
|
55
|
+
## 边界
|
|
56
|
+
|
|
57
|
+
- 不要编造宏观数据、发布时间或政策原文。
|
|
58
|
+
- 不要暴露宏观评分模型或传导权重。
|
|
59
|
+
- 不要把宏观结论直接转成买卖指令。
|
|
60
|
+
- 不要输出内部数据源路径。
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: caidazi-market-pulse
|
|
3
|
+
description: 当用户询问市场热点、大盘走势、宏观影响、板块热度、盘前盘中盘后概览时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 财搭子市场脉搏
|
|
7
|
+
|
|
8
|
+
用这个 skill 把宽泛的市场问题转成稳定的财搭子 MCP 调用。公开 skill 只负责路由和表达,不在本地复刻市场打分逻辑。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
- "今天市场热点是什么"
|
|
13
|
+
- "A股/港股/美股怎么看"
|
|
14
|
+
- "大盘为什么涨/跌"
|
|
15
|
+
- "最近宏观有什么影响"
|
|
16
|
+
- "哪些板块比较热"
|
|
17
|
+
- "帮我做个盘前/盘中/收盘概览"
|
|
18
|
+
|
|
19
|
+
不要用于深度单股研究、自然语言选股、完整行业深度或用户私有资产分析。
|
|
20
|
+
|
|
21
|
+
## 可用工具
|
|
22
|
+
|
|
23
|
+
- `get_hot_report`
|
|
24
|
+
- `get_real_time_market_summary`
|
|
25
|
+
- `get_market_analysis`
|
|
26
|
+
- `get_macro_analysis`
|
|
27
|
+
- `investment_search_pro`
|
|
28
|
+
- `get_caidazi_portfolio_snapshot`,仅当用户明确询问"我的自选"或"我的持仓"时使用。
|
|
29
|
+
|
|
30
|
+
## 快速流程
|
|
31
|
+
|
|
32
|
+
1. 判断市场范围:A 股、港股、美股、ETF 或全球。
|
|
33
|
+
2. 用户问"今天"、"现在"、"盘中"、"实时"时,直接调用 `get_real_time_market_summary`。
|
|
34
|
+
3. 用户问热点、主题或活跃板块时,直接调用 `get_hot_report`。
|
|
35
|
+
4. 用户问大盘方向、估值或市场状态时,直接调用 `get_market_analysis`。
|
|
36
|
+
5. 用户问利率、政策、通胀、流动性或全球宏观时,直接调用 `get_macro_analysis`。
|
|
37
|
+
6. 只有当摘要工具覆盖不足,且用户提到具体事件或最新新闻时,再用 `investment_search_pro` 补充。
|
|
38
|
+
|
|
39
|
+
## 私有资产上下文
|
|
40
|
+
|
|
41
|
+
当用户问"我的自选受影响吗"或"对我的持仓怎么看":
|
|
42
|
+
|
|
43
|
+
1. 调用 `get_caidazi_portfolio_snapshot(scope="all", mask_sensitive=true)`。
|
|
44
|
+
2. 如果返回 API Key 未绑定账户,提示用户到 财搭子 App -> 大发 agent -> 左上角 skill icon -> Skills 页面领取或绑定 key。
|
|
45
|
+
3. 如果返回了资产,只基于返回资产分析市场影响,不要编造未返回的持仓。
|
|
46
|
+
|
|
47
|
+
## 澄清策略
|
|
48
|
+
|
|
49
|
+
最多问一个问题,并且只在市场或时间范围完全无法判断时提问。
|
|
50
|
+
|
|
51
|
+
好问题:
|
|
52
|
+
|
|
53
|
+
> 你想看 A 股、港股、美股,还是全部市场?
|
|
54
|
+
|
|
55
|
+
不要询问风险偏好。这个 skill 是市场研究入口,不是交易决策入口。
|
|
56
|
+
|
|
57
|
+
## 输出结构
|
|
58
|
+
|
|
59
|
+
保持简洁:
|
|
60
|
+
|
|
61
|
+
1. 一句话结论。
|
|
62
|
+
2. 三到五个市场驱动因素。
|
|
63
|
+
3. 热门板块、资金或资产,如果工具返回。
|
|
64
|
+
4. 接下来值得观察的信号。
|
|
65
|
+
5. 数据时间、延迟或覆盖限制,如果有。
|
|
66
|
+
|
|
67
|
+
只有在比较多个板块或指数时使用表格。优先用自然中文解释,少用公式。
|
|
68
|
+
|
|
69
|
+
## 错误处理
|
|
70
|
+
|
|
71
|
+
- `API_KEY_INVALID`:说明 key 无效或过期,引导用户到 财搭子 App -> 大发 agent -> 左上角 skill icon -> Skills 页面重新领取。
|
|
72
|
+
- `TOOL_NOT_AVAILABLE_EXTERNALLY`:说明该能力暂未对外部 Agent 开放。
|
|
73
|
+
- 其他工具错误:按工具返回的 `message` 用中文解释,不自行推断后台策略。
|
|
74
|
+
|
|
75
|
+
## 边界
|
|
76
|
+
|
|
77
|
+
- 不要把工具结果包装成投资建议。
|
|
78
|
+
- 不要编造指数点位、宏观数据、板块排名或新闻。
|
|
79
|
+
- 不要透露内部排名、权重、数据拼接或账户查询细节。
|
|
80
|
+
- 不要在回答中暴露 API Key。
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: caidazi-portfolio-review
|
|
3
|
+
description: 当用户希望基于财搭子自选、持仓或组合快照做摘要、风险暴露、变动检查或复盘时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 财搭子组合复盘
|
|
7
|
+
|
|
8
|
+
用这个 skill 做轻量组合摘要和风险暴露检查。它依赖账户关联 API Key,是主端回流入口;不要把它写成完整组合诊断或自动调仓能力。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
- "帮我复盘一下我的持仓"
|
|
13
|
+
- "我的组合最近风险在哪里"
|
|
14
|
+
- "我的自选和持仓有哪些重合"
|
|
15
|
+
- "看一下我的资产受今天热点影响吗"
|
|
16
|
+
- "给我的组合做个摘要"
|
|
17
|
+
|
|
18
|
+
不要用于下单、调仓、收益承诺或完整投顾建议。
|
|
19
|
+
|
|
20
|
+
## 可用工具
|
|
21
|
+
|
|
22
|
+
- `get_caidazi_portfolio_snapshot`
|
|
23
|
+
- `get_caidazi_positions_summary`
|
|
24
|
+
- `get_caidazi_user_watchlist`
|
|
25
|
+
- `get_real_time_market_summary`
|
|
26
|
+
- `get_hot_report`
|
|
27
|
+
- `investment_search_pro`
|
|
28
|
+
|
|
29
|
+
## 流程
|
|
30
|
+
|
|
31
|
+
1. 调用 `get_caidazi_portfolio_snapshot(scope="all", mask_sensitive=true)`。
|
|
32
|
+
2. 如果工具返回未授权,提示用户到 财搭子 App -> 大发 agent -> 左上角 skill icon -> Skills 页面领取或绑定 API Key。
|
|
33
|
+
3. 如果用户问市场影响,再调用 `get_real_time_market_summary` 或 `get_hot_report`。
|
|
34
|
+
4. 如果用户问某个事件影响,再调用 `investment_search_pro` 补充事实。
|
|
35
|
+
5. 只基于返回资产做摘要,不要推断完整券商账户。
|
|
36
|
+
|
|
37
|
+
## 澄清策略
|
|
38
|
+
|
|
39
|
+
最多问一个问题。只有在用户要复盘但没有说明看自选、持仓还是全部资产时,可以默认 `all`,不要打断。
|
|
40
|
+
|
|
41
|
+
## 输出结构
|
|
42
|
+
|
|
43
|
+
1. 组合快照:资产数量、市场分布、可见范围。
|
|
44
|
+
2. 主要暴露:行业、主题、单一资产集中度,仅展示工具返回内容。
|
|
45
|
+
3. 今日或近期关联事件,如果有。
|
|
46
|
+
4. 待检查事项:需要用户回主端确认的数据。
|
|
47
|
+
5. 下一步建议:研究某个资产、筛选候选或查看市场脉搏。
|
|
48
|
+
|
|
49
|
+
## 错误处理
|
|
50
|
+
|
|
51
|
+
- `ASSET_PERMISSION_REQUIRED` 或未绑定账户:引导用户回财搭子领取或绑定 key。
|
|
52
|
+
- API Key 无效:引导用户重新领取。
|
|
53
|
+
- 工具调用失败:按工具返回的 `message` 说明,不自行推断后台策略。
|
|
54
|
+
- 持仓不可用但自选可用:说明边界,继续用自选做轻量复盘。
|
|
55
|
+
|
|
56
|
+
## 边界
|
|
57
|
+
|
|
58
|
+
- 不要声称拥有完整券商账户访问权。
|
|
59
|
+
- 不要展示工具未返回的金额、成本、盈亏或仓位。
|
|
60
|
+
- 不要给直接买卖和调仓指令。
|
|
61
|
+
- 不要持续监控或订阅提醒。
|