用 Claude Code 构建实时加密市场数据 Subagent:crypto-market-agent-sonnet 完整实战指南
2026/9/18 8:44:39 网站建设 项目流程

用 Claude Code 构建实时加密市场数据 Subagent:crypto-market-agent-sonnet 完整实战指南

【免费下载链接】claude-code-hooks-masteryMaster Claude Code Hooks项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-hooks-mastery

本文以当前仓库中的 crypto-market-agent-sonnet.md 及其背后的执行提示词 crypto_market_agent_prompt.md 为骨架,完整拆解「如何用 Claude Code Subagent 体系封装一个按市值排名 Top N 的加密货币实时行情检索与汇总代理」。读完本文,你将掌握 Subagent 文件的前置元数据写法、"薄代理 + 独立提示词文件"的工程化组织方式、TOP_N 参数化传参、标准化 Markdown 表格输出约定,以及它与仓库中 12 个加密 Agent 并行编排(crypto_research.md)的联动关系。

一图看懂:agent 定义文件与执行提示词的分层设计

crypto-market-agent-sonnet是一个典型的 Claude Code 项目级 Subagent(位于.claude/agents/crypto/),完整文件只有 9 行:

--- name: crypto-market-agent-sonnet description: Use proactively for real-time cryptocurrency market data retrieval and analysis for Top N cryptocurrencies by market cap tools: WebSearch, Write model: sonnet color: blue --- Read and Execute: .claude/commands/agent_prompts/crypto_market_agent_prompt.md

它的设计非常克制,由两部分组成:

  1. YAML 前置元数据(frontmatter):定义代理的身份、触发条件、工具权限与模型档位;
  2. 正文一条指令Read and Execute指向独立的执行提示词文件,将完整系统提示词从 agent 文件中剥离。

这是一种值得借鉴的**"薄代理(thin agent)"模式**:代理定义文件只负责"注册",真正的工作逻辑全部沉淀在 crypto_market_agent_prompt.md 中,方便独立维护、版本管理与复用。

前置元数据逐字段解析

字段本文件取值作用
namecrypto-market-agent-sonnet唯一标识,使用小写字母与连字符命名;Claude 依据它与 description 决定何时委托任务
descriptionUse proactively for real-time cryptocurrency market data retrieval and analysis for Top N cryptocurrencies by market cap触发委托的关键字段。官方文档(见仓库内 ai_docs/claude_code_subagents_docs.md)明确:Claude 通过每个 Subagent 的description判断何时把任务委派给它,建议在描述中加入 "use proactively" 这类措辞鼓励主动委托
toolsWebSearch, Write工具白名单。WebSearch负责实时行情检索,Write用于把结果写入文件(在crypto_research编排中要求落盘)。若省略该字段,Subagent 将继承主会话的全部工具
modelsonnet模型档位,可选sonnetopushaikuinherit(继承主会话模型)。sonnet 在能力与速度/成本之间取得平衡
colorblue终端 UI 中标识该代理的背景色,便于在运行时区分当前是哪个 Subagent 在工作

三档模型矩阵:同一套分工,haiku / sonnet / opus 各司其职

仓库用同一套执行提示词,声明了三个仅模型档位与颜色不同的市场数据代理:

文件modelcolor适用场景
crypto-market-agent-haiku.mdhaikugreen快速、低成本的行情速览,适合高频调用
crypto-market-agent-sonnet.mdsonnetblue能力与成本均衡的默认档位
crypto-market-agent-opus.mdopusred复杂市场解读与多源交叉验证

三个文件的description完全相同,因此 Claude 在自动委托时会把行情类任务路由给该家族;而模型档位的差异,则让使用者可以在"成本敏感"(haiku)与"分析深度优先"(opus)之间显式选择。仓库 README.md 的 Sub-Agents 章节也点明了这一设计动机:通过把任务路由到更快更便宜的模型(如 Haiku)来控制成本。

需要留意一个细节差异:官方文档副本(ai_docs/claude_code_subagents_docs.md)指出model字段省略时默认值为inherit(继承主会话模型),而 README.md 的注释示例写作"defaults to sonnet"。本仓库的三款代理都显式声明了model,这本身也是最稳妥的做法——不依赖默认值语义,行为完全可预期。

执行提示词深度解析:市场数据专家如何工作

Read and Execute指向的 crypto_market_agent_prompt.md 才是这套代理真正的工作说明书,共四部分:Purpose(角色定位)、Variables(变量)、Instructions(工作守则)与 Output Format(输出格式)。

角色定位(Purpose)

You are a cryptocurrency market data specialist focused on retrieving and summarizing real-time market information for major cryptocurrencies.

代理被定义为"加密货币市场数据专家",职责是检索并汇总主流币种的实时市场信息,而非做深度投资分析(那是 crypto-coin-analyzer 与 crypto-investment-plays 家族的职责,见下文编排章节)。

变量:TOP_N 参数化

- **TOP_N**: $ARGUMENTS or 10 - The number of top cryptocurrencies to retrieve (defaults to 10 if not specified) - Used for: Determining how many cryptocurrencies to include in the market summary

$ARGUMENTS是 Claude Code 的运行时参数占位符:当用户以@agent-crypto-market-agent-sonnet 20之类方式带参调用时,TOP_N取传入值(如上例为 20);未传参时回退为默认值10。该变量直接决定市场摘要中包含多少只币种。

工作守则(Instructions)

提示词为代理规定了七条硬性行为约束,核心要点如下:

  • 锁定实时数据:检索词应面向实时/最新行情(例如"BTC ETH current price market cap live");
  • 优先聚合页:寻找能在单页展示多币种的数据聚合器,减少搜索调用次数;
  • 多源交叉验证:若初次结果看起来过期或不一致,须交叉核对多个数据源;
  • 标注来源与时间戳:最终摘要尽量附上数据来源与抓取时间,保证可溯源;
  • 优雅降级:某项指标取不到时,明确注明"哪些指标未能获取",而非编造数字;
  • 遵守输出格式:必须以下方 "Output Format" 规定的格式输出,不得自由发挥。

工作流(Workflow)

调用后必须按序执行 7 步:

  1. 确定要检索的币种数量:有TOP_N用它,否则用默认值 10;
  2. 按市值搜索 Top N 币种的实时行情(检索词形如"Top [TOP_N] cryptocurrencies by market cap live prices");
  3. 对每只币种收集 4 项指标:
    • 当前价格(美元)
    • 市值(Market Capitalization)
    • 24 小时交易量
    • 24 小时价格涨跌幅(百分比)
  4. 优先用一次查询覆盖多币种的检索词(如"top [TOP_N] cryptocurrencies by market cap live prices"),最小化搜索调用;
  5. 聚焦可靠信源:CoinMarketCap、CoinGecko 或主流财经新闻站点;
  6. 通过时间戳核验数据新鲜度;
  7. 规范数值格式:价格保留 2~4 位小数,大数用 B(十亿)/ M(百万)后缀。

输出格式:标准化 Markdown 表格

提示词要求代理严格按以下模板输出(这是"可被下游消费"的关键设计——结构化表格既便于主 Agent 二次加工,也便于直接落盘为报告):

## Cryptocurrency Market Summary | Cryptocurrency | Current Price | Market Cap | 24h Volume | 24h Change | | -------------- | ------------- | ---------- | ---------- | ---------- | | [Crypto 1] | $X,XXX.XX | $XXX.XX B | $XX.XX B | ±X.XX% | | [Crypto 2] | $X,XXX.XX | $XXX.XX B | $XX.XX B | ±X.XX% | | [Crypto 3] | $X.XXXX | $XX.XX B | $X.XX B | ±X.XX% | | ... | ... | ... | ... | ... | | [Crypto N] | $X.XXXX | $XX.XX B | $X.XX B | ±X.XX% | **Data Source:** [Source Name] **Last Updated:** [Timestamp if available]

表格末尾强制附带Data SourceLast Updated两行元信息,配合工作守则中的"多源交叉验证",从提示词层面杜绝了 AI 编造行情数据的可能。

实战使用:如何触发这个 Subagent

有三种典型触发方式:

1. 显式指名调用(最直接)

Use the crypto-market-agent-sonnet to get the current top 10 crypto prices

主 Agent 会据此把任务委派给该代理,代理在独立上下文窗口中执行,并把摘要结果返回给主会话。

2. 自动委托

由于description中带有 "Use proactively for real-time cryptocurrency market data retrieval...",当你在对话中提出"查一下当前市值前 10 的币种行情"这类需求时,Claude 会自动判断并路由到该代理家族。

3. 带参调用

配合TOP_N变量,传入币种数量参数即可改变摘要规模;默认不传则取 10。

触发后,你可以通过仓库的 Subagent 生命周期 Hook 观察执行痕迹:.claude/hooks/subagent_start.py会在 Subagent 启动时写入日志(README 中描述为 "Subagent spawn logging with optional TTS announcement"),.claude/hooks/subagent_stop.py则记录完成事件,日志统一落在logs/目录。

关于信息流,需要牢记 Subagent 机制的一条核心原则(README 称之为"最常见的误解"):agent 文件中的正文是系统提示词,不是用户提示词;Subagent 从不直接与你对话,它响应主 Agent 的委托,并把结果回报给主 Agent,再由主 Agent 综合呈现给你。

仓库级联动:12 个加密 Agent 的并行编排

单个市场代理的价值,在仓库的 crypto_research.md 编排命令中被放大为完整的加密研究工作流。该命令使用@agent-*引用语法,一次并行调度 12 个代理,分为四组:

组别代理家族职责
Market Data Agentscrypto-market-agent-{haiku,sonnet,opus}市值 Top N 实时行情汇总(本文主题)
Coin Analysis Agentscrypto-coin-analyzer-{haiku,sonnet,opus}针对指定 TICKER 的价格、新闻、情绪与技术指标分析
Macro Correlation Agentsmacro-crypto-correlation-scanner-{haiku,sonnet,opus}宏观与加密相关性扫描
Investment Plays Agentscrypto-investment-plays-{haiku,sonnet,opus}带入场/出场策略与风险评分的投资机会

命令前置元数据中还声明了allowed-tools: Bash(date:*), Bash(mkdir:*), Task, Writeargument-hint: [crypto_ticker_symbol],即允许执行时间戳与建目录命令、调度 Task、写文件,并提示用户可传币种代码(如 BTC、ETH、SOL)。

执行流程要点:

  1. 先执行date +"%Y-%m-%d_%H-%M-%S"生成人类可读时间戳;
  2. 创建输出目录outputs/<timestamp>/
  3. 并行调用全部 12 个代理;
  4. 每个代理的完整、未修改输出原样写入对应文件:
    • outputs/<timestamp>/crypto_market/<agent-name>.md← 市场代理(本文主题)的落盘位置
    • outputs/<timestamp>/crypto_analysis/crypto_macro/crypto_plays/分别承接其余三组;
  5. 全部完成后,报告outputs/<timestamp>/目录路径及成功代理数/总数。

这也是一个"链式编排"的范例:市场代理输出的行情快照,可以无缝喂给投资策略代理做下一步分析——正如 README.md 中举例的 "First analyze the market with crypto-market-agent, then use crypto-investment-plays to find opportunities"。

Subagent 机制要点回顾

结合仓库内的官方文档副本 ai_docs/claude_code_subagents_docs.md 与 README.md,本代理依赖的机制要点可总结为:

  • 文件格式:Markdown + YAML frontmatter;frontmatter 定义元数据,正文成为该代理的系统提示词。Subagent 只接收自己的系统提示词与基础环境信息,不继承主会话完整上下文;
  • 作用域与优先级--agentsCLI 传入 > 项目级.claude/agents/> 用户级~/.claude/agents/> 插件目录;本项目级代理随仓库提交到版本控制,团队成员可协作改进;
  • 工具控制tools白名单 /disallowedTools黑名单;本代理仅授予WebSearch, Write,体现"最小权限"原则;
  • 自动委托:委托决策依据 = 你的请求任务描述 + 代理的description+ 当前上下文;description写得越具体,路由越精准;
  • 独立上下文:每次调用都是全新实例,无历史记忆——因此提示词中把所有必要信息(如 TOP_N 默认值、指标清单、输出模板)全部写死,这正是该提示词文件"自包含"的设计价值。

工程实践小结

crypto-market-agent-sonnet这个例子可以提炼出三条可复用的 Subagent 工程经验:

  1. 薄代理 + 独立提示词文件:agent 文件只做注册(name/description/tools/model/color + 一条Read and Execute指令),把体量较大的系统提示词放到.claude/commands/agent_prompts/下独立维护。同类代理共享同一提示词,避免三份文件三份拷贝的维护噩梦;
  2. 用 description 驱动路由:在描述中明确职责范围("real-time ... Top N cryptocurrencies by market cap")并加上 "use proactively",让主 Agent 精准自动委托;
  3. 输出契约先行:在执行提示词里定义标准化的 Markdown 表格输出模板与元信息(数据来源、时间戳),既约束了 AI 行为的确定性,又让结果能被下游代理与文件系统直接消费。

【免费下载链接】claude-code-hooks-masteryMaster Claude Code Hooks项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-hooks-mastery

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询