案例文档https://docs.cherry-ai.com/advanced-basic/agent-an-li/jin-jia-bao-die-kan-meng-le-wo-yong-kimi-k2.5--cherry-studio-zuo-le-ge-fu-pan-shen-qi-fu-agent-she请先自行阅读以上Agent案例再往下面学习1、.claude/目录 整个主Agent设计下面咱们来学习一下.claude/这个目录--- 目录总览 .claude/ ├── README.md ← 项目说明文档 ├── settings.json ← 主配置文件 ├── mcp.json ← MCP 服务器配置 ├── plugins.json ← 插件/Sub-Agent 注册表 ├── config/ │ └── paths.conf ← 路径变量定义 ├── prompts/ │ ├── system_prompt_cn.md ← 中文系统提示词核心 │ └── system_prompt_en.md ← 英文系统提示词 ├── agents/ │ ├── subagent_financial_intelligence.md ← 金融情报 Sub-Agent │ ├── subagents_usage_strategy.md ← Sub-Agent 协作策略 │ ├── business-analyst.md ← 商业分析 Sub-Agent │ └── search-specialist.md ← 搜索专家 Sub-Agent └── skills/ ├── README.md ├── skill_financial_data_fetcher.md ← 金融数据获取 Skill ├── skill_geopolitical_analyst.md ← 地缘政治分析 Skill ├── skill_financial_report_generator.md ← 金融报告生成 Skill └── excel-analysis/ └── SKILL.md ← Excel 分析 Skill ---这是一个黄金市场分析 Agent 的完整配置体系。整个系统围绕一个核心理念构建用真实公开数据驱动金融分析。1. settings.json — 主配置- 默认模型为 sonnet- 两个预定义 Agentgold-analyst中文版和 gold-analyst-en英文版- 限定了允许使用的工具集Bash、Read、WebSearch 等2. prompts/ — 系统提示词灵魂所在这是整个系统最核心的部分。中文版 583 行英文版 547 行定义了- 数据真实性原则最高优先级绝不可编造数字必须先获取真实数据- 5 阶段分析流程数据收集 → 地缘分析 → 技术分析 → 相关性分析 → 预测 报告生成- 数据获取方式WebSearch WebFetch 抓取公开网站Kitco、LBMA、GoldPrice 等- 三个专业 Skill 的调用方式- shadcn/ui 暗色主题的报告设计规范- 完整的质量保证清单3. agents/ — Sub-Agent 定义专家团队subagents_usage_strategy.md 定义了这三者的协作架构Main Agent 作为指挥调度者Sub-Agents 并行工作最终整合结果。4. skills/ — 可调用技能工具库5. mcp.json — MCP 服务器配置了文件系统 MCP 服务器安全访问指定目录同时预留了自定义金融数据 MCP 服务器的配置示例。6. plugins.json — 插件注册表记录了所有已注册的 Agent/Skill 及其元数据源路径、内容哈希、安装时间等用于管理插件生命周期。7. config/paths.conf — 路径变量定义项目中关键文件的路径别名方便脚本引用。总结这个 .claude 目录本质上是一个专业的金融市场分析 AI Agent 的配置和提示词工程成果。它通过系统提示词 Sub-Agent 分工 Skill 模块 MCP 工具链四层架构让 Claude Code变成一个能够1. 从公开源获取真实金价数据2. 计算技术指标RSI/MACD/布林带3. 分析地缘政治事件影响4. 生成专业 HTML 分析报告2、区分Sub-agent 和 Skills 的关系我觉得agent/目录和skills/目录下放的都是.md文档提示词为啥一个叫agent而另一个叫skills呢它们的区别在哪里我目前的感受只是agent目录下的提示词更泛化像一个更大的类而且agent更像是针对任务来分步骤拆解的而skill目录下的提示词更加的具体详细更像一个个更细的分支agent和skills之间的关系更像是一对多的关系。为什么要这样区分它们而不是直接统统全部都放在一个文件夹下面呢Agent vs Skill本质区别两者的核心区别在于执行方式而非内容长短或粒度形象类比Agent 外包商你把需求告诉他他用自己的工具plugins.json中定义的和方法skills_.md文档中定义的独立完成然后把成果交给你。Skill 操作手册/培训你拿到一本详细说明书你自己按照说明一步一步操作。使用的工具技能都是你在配置主Agent时定义的比如你可以同时派遣 3 个 Agent 并行干活搜新闻的、算指标的、做图表的各干各的而 Skill 是你自己获得了一个新能力你得自己动手。关系图在这个项目中具体体现以 subagents_usage_strategy.md 中描述的并行数据收集模式为例主 Agent (你)│├── 派遣 Agent 1: search-specialist ──→ 独立搜索地缘新闻 ──→ 返回结果├── 派遣 Agent 2: financial-intelligence ──→ 独立调API算指标 ──→ 返回结果├── 派遣 Agent 3: business-analyst ──→ 独立分析ETF数据 ──→ 返回结果││ 三个 Agent 同时干活用各自的上下文互不干扰│├── 自己加载 Skill: geopolitical-analyst ──→ 你学会了分析地缘事件的方法│ 然后自己分析 Agent 1 的结果├── 自己加载 Skill: financial-report-generator ──→ 你学会了生成报告模板│ 然后自己写 HTML 报告为什么不能全放一个文件夹因为工作方式根本不同1、Agent 是执行单元它需要声明自己用什么工具plugins.json 里有 tools: [Read, Write, Bash]、用什么模型model: haiku框架需要这些信息来启动独立进程。2、Skill 是知识单元它不需要工具声明和模型声明它本质上是一段当你遇到 X 情况时该怎么做的指导文本直接注入你的对话。放同一个文件夹会让框架无法区分这是要启动的新进程还是这是一段知识注入。放在不同文件夹Claude Code 的插件系统能清楚地知道该怎么处理它们。再看 plugins.json 里的差异就很清楚了// Agent 条目 { type: agent, // ← 类型agent tools: [Read, Write, Bash], // ← 声明自己的工具 model: sonnet // ← 可指定模型 } // Skill 条目 { type: skill, // ← 类型skill // 没有 tools、没有 model —— 共享主 Agent 的 }总结Agent 是你外包出去的独立工人Skill 是你给自己安装的新能力。理解了这一点就理解了 Claude Code 扩展体系的核心设计逻辑。3、Agent执行链路从我向Agent发送提示词指令到Agent最终返回给我一个gold_market_analysis_2026.html文件这中间的完整的交互过程是什么样的第一步启动前加载配置第二步你发起任务你: 分析2025-2026年黄金走势特别是昨天的大跌生成一份HTML报告这句话作为 user prompt进入主 Agent 的上下文。主 Agent 现在拥有了 system_prompt_cn.md 赋予的身份和知识它开始规划。第三步主 Agent 做任务规划主 Agent 的 system prompt 里装着这份流程图来自 system_prompt_cn.md 第 228-365 行第四步并行派遣 Sub-Agent阶段1 数据收集这是理解 Agent vs Skill 区别的关键时刻。主 Agent 同时派出 3 个独立工作者它们各自拥有独立的上下文窗口互不干扰第五步主 Agent 自己动手加载 Skill 做分析三个 Sub-Agent 的结果回来后主 Agent 获得真实数据。现在它加载 Skill把知识注入自己脑子然后亲自操作然后主 Agent 做技术分析直接用 Agent 3 返回的结构化数据第六步自己生成报告加载 Skill: financial-report-generator完整执行时序图用户 分析黄金走势生成报告│主 Agent 接收prompt → 规划任务 → 拆分为6个阶段││ ═══ 阶段1: 数据收集 (并行派遣 Agent) ═══│├─→ Agent1: search-specialist ────→ 搜索地缘事件 → [返回事件列表]├─→ Agent2: business-analyst ────→ 分析ETF/KPI → [返回指标数据]└─→ Agent3: financial-intel ────→ 调API取价格 → [返回CSV/JSON]│ ═══ 阶段2: 加载Skill 亲自分析 ═══│├─ Skill: geopolitical-analyst ──→ 你学会了分析地缘事件│ └─ 用 Agent1 返回的事件列表逐个分析影响││ ═══ 阶段3: 技术分析 ═══│├─ 用 Agent3 返回的CSV → 亲自跑Python → RSI/MACD/布林带││ ═══ 阶段4: 相关性分析 ═══│├─ 用 Agent2 返回的数据 → 计算相关系数矩阵││ ═══ 阶段5: 情景预测 ═══│├─ 综合所有数据 → 构建牛市/基准/熊市三种预测││ ═══ 阶段6: 生成报告 ═══│└─ Skill: financial-report-generator ──→ 你学会了报告模板└─ Write(gold_market_analysis_2026_updated.html, ...)│▼用户收到 HTML 报告每个文件扮演的角色总结一句话记忆Agent 你派别人去干派 subagentSkill 你自己学会了干加载知识到自身。这就是为什么 agent 在 plugins.json 里有 tools 和 model 字段——因为它是独立上线的而 skill 没有——因为它就是你的一部分。