소스 정보
- 저장소
- QVerisAI/open-qveris-agents
- 최근 소스 활동
- 2026년 7월 14일 08:18
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 2
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
SOC 직업 분류 기준
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/QVerisAI/open-qveris-agents --skill portfolio-health-check명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | portfolio-health-check |
| description | 投资组合健康检查:快速诊断、深度诊断、优化处方三阶段串行完成持仓分析。支持对话模式(交互式阶段确认)和 API 模式(无状态一次性执行)。 |
本技能通过三个阶段串行完成一次完整的组合分析:快速诊断 → 深度诊断 → 优化处方。三个阶段的执行步骤全部写在本文件内,无需跳转其它 SKILL 文件。
交互式场景(用户在聊天窗口逐步输入持仓和参数):
程序化调用(payload 完整传入,无需追问):不追问、不确认、直接执行;各阶段独立调用,不串联。
scripts/portfolio-health-check/ 下的 Python 脚本里(qveris_client.py / pipeline_main.py / prescription_main.py)。SKILL_ROOT = 本 SKILL.md 所在目录。执行前从 SKILL.md 加载路径推导技能根目录,用 cd "$SKILL_ROOT",不要硬编码绝对路径。python scripts/portfolio-health-check/<脚本>.py <参数> 调用包内 .py 脚本。禁止 python -c 内联执行、禁止读脚本源码"理解"调用方式、禁止设置/覆盖/检查 QVERIS_TOKEN(API Key 已由环境变量预配置)。命令返回错误时直接把错误告知用户,不 fallback 到 web_search、不编造数据。目标:把持仓整理成结构化快速诊断结果——标的识别、持仓确认、集中度检查、总体评价。
用 QVeris identify 命令一次性获取名称/代码互查、公司简介、行业分类:
cd "$SKILL_ROOT" && python scripts/portfolio-health-check/qveris_client.py identify "贵州茅台"
cd "$SKILL_ROOT" && python scripts/portfolio-health-check/qveris_client.py identify "贵州茅台" "中国平安" "沪深300ETF"
"贵州茅台")、完整代码("600519.SH")、纯数字("600519")、ETF 名("沪深300ETF")。identify 按优先级尝试 hangseng_polysource.stock.basicCorpInfo.retrieve.v2(主,返回全称/行业分类/主营/概念)→ ths_ifind.company_basics.v1(fallback 补 name)。结果自动写入 state/portfolio_state.json 的 stage1,供后续脚本读取;用户更正后更新同一文件,不另存。code_lookup.codes(THS 代码列表)、code_lookup.is_ambiguous(是否多候选)、primary_code、company(全称/主营/概念)、asset_type(stock/fund_or_etf)、industry(个股才有)。is_ambiguous=true → 列候选、标"待确认";A+H 多市场默认取第一个(通常 A 股)、备注其余;resolved=false → 改用 search 命令更宽泛搜索;QVeris 找不到再用公开网络补全。| 资产名称 | 代码 | 占比 | 资产类别 | 备注 |
|---|---|---|---|---|
| 示例资产 | 600519.SH | 30% | 股票/ETF/债券/现金/其他 | 待确认(如需) |
无法确认的字段写"待确认"/"无法确认"。确认提示示例:"请确认以下持仓信息;如有不准确请直接修改名称、仓位或现金占比。"
用户明确确认持仓后:
portfolio-quick-diagnosis/analysis_prompt.md 生成分析要点(分析逻辑、检索范围、推断边界、风险判断)。portfolio-quick-diagnosis/report_prompt.md 生成最终结构化中文交付文案。输出结构化快速诊断结果后,询问用户是否继续深度诊断。
仅在阶段一完成且用户明确同意后进行。目标:量化分析波动率、相关性、回撤、因子暴露、风险贡献。
| 参数 | 字段 | 选项 |
|---|---|---|
| 换仓频率 | rebalance_frequency | intraday/weekly/monthly/quarterly/buy_and_hold |
| 仓位风格 | position_style | market_timing/full_rotation/constant_mix/dca/core_satellite |
| 风险偏好 | risk_tolerance | conservative/moderate/aggressive/very_aggressive |
| 投资期限 | investment_horizon | <1y/1-3y/3-5y/>5y |
用户不理解某参数时用选项形式提问。
从 state/portfolio_state.json 的 stage1 读持仓,写一个 payload JSON 数据文件到 /tmp/portfolio_payload.json,结构:
{
"holdings": [
{"code": "600519.SH", "name": "贵州茅台", "weight_pct": 30.0},
{"code": "300750.SZ", "name": "宁德时代", "weight_pct": 25.0}
],
"cash_pct": 10.0,
"params": {
"rebalance_frequency": "monthly", "position_style": "core_satellite",
"risk_tolerance": "moderate", "investment_horizon": "3-5y",
"portfolio_market_value":
每个 holding 必须有 code 和 weight_pct。
cd "$SKILL_ROOT" && python scripts/portfolio-health-check/pipeline_main.py \
/tmp/portfolio_payload.json --emit-artifacts \
--output-dir /tmp/portfolio_output --as-of $(date +%Y-%m-%d)
pipeline_main.py 内部自动完成:QVeris 取数(行情/基本面/市值/基准)→ 按 rebalance_frequency 选数据粒度和回看窗口 → 15 步量化诊断 → 整理成 client_output。不要手动调 QVeris/THS,不要手动跑分析逻辑,CLI 是唯一计算入口。
读取 /tmp/portfolio_output/diagnosis_result.json。它是 envelope:status="ok" 时 data 含 correlation_matrix/risk_metrics/risk_contribution/concentration/benchmark/factor_exposure/sector_exposure/liquidity/risk_flags/metadata,client_output 含 headline/sections/markdown;_internal.json 供阶段三使用。
解读(status=ok):先用 1-2 句给总体判断 → 优先用 client_output 作对客底稿 → 需补充再按序读 risk_flags(触发旗标+严重度)、risk_metrics.portfolio(波动/夏普/回撤)、concentration、correlation_matrix.high_correlation_pairs、factor_exposure、liquidity、benchmark。不要贴原始 JSON,翻译成人话;不确定处标注为推断;只有用户明确要报告文件时才提 artifacts 路径。
status=error:告知未完成,按 error_message 判断是数据问题(建议查代码/稍后重试)还是代码 bug(如实告知)。
解读完毕,询问用户是否继续优化处方。
仅在阶段二完成且用户明确同意后进行。目标:基于约束给出分层优化建议。
allowed_markets(A股/港股通/美股…)allowed_instruments(股票/ETF/期货/期权…)additional_capital_ratio(无/10-30%/30-50%/50%+)objectives(资产增值/稳定现金流/对冲风险/打新底仓)用户不理解时先给常见目标选项,不要让用户长段自由描述。
写一个 constraints JSON 数据文件到 /tmp/portfolio_constraints.json:
{
"allowed_markets": ["A-share"],
"allowed_instruments": ["stock", "etf"],
"additional_capital_ratio": "10-30%",
"objectives": ["growth"]
}
cd "$SKILL_ROOT" && python scripts/portfolio-health-check/prescription_main.py \
--diagnosis /tmp/portfolio_output/diagnosis_result.json \
--internal /tmp/portfolio_output/_internal.json \
--constraints-file /tmp/portfolio_constraints.json \
--output-dir /tmp/optimization_output
--internal 指向阶段二输出的 _internal.json;缺失可省略(优化结果降级,跳过回验和压力测试)。prescription_main.py 内部完成:剥出诊断数据和 _internal → 解析约束 → 推理/映射/回验/压力测试 → 返回结构化处方。阶段三所有数据来自阶段二输出,不要再调 QVeris。
读取 /tmp/optimization_output/optimization_result.json。status="ok" 时 data 含 recommendations/exclusive_groups/asset_alignment/constraints_applied/summary/client_output/execution_info。优先用 client_output 作对客底稿,翻译成人话,只做方向性建议、不给具体买卖指令。
scripts/portfolio-health-check/qveris_client.py — 阶段一标的识别入口scripts/portfolio-health-check/pipeline_main.py — 阶段二唯一计算入口scripts/portfolio-health-check/prescription_main.py — 阶段三唯一计算入口portfolio-quick-diagnosis/analysis_prompt.md、portfolio-quick-diagnosis/report_prompt.md — 阶段一分析/报告 prompt