9.4 高级设计模式与选择指南
面向经管学生、研究者与从业者的 AI 智能体设计教材
基础模式处理的是单线程、单执行者的场景。当任务涉及多条路径选择、专业知识嵌入或多个独立执行者时,需要更高级的模式。
模式 4:上下文感知选择
Context-Aware Tool Selection
适用场景:同一个目标,根据输入数据的特征选择不同的处理方法。
金融案例——数据源路由:
---
name: smart-data-analysis
description: 当用户需要分析经济金融数据时使用。根据数据规模和类型自动选择合适的分析路径。
allowed-tools: "Bash(python:*) Read Write Glob"
---
## 决策路由
判断数据特征,选择对应分析路径:
### 路径 A:小数据集(< 1000 行 CSV)
→ 本地 Python 脚本直接处理
→ 运行 python scripts/local_analysis.py --input {file}
→ 输出:统计摘要 + 可视化图表
### 路径 B:大数据集(> 1000 行或多表关联)
→ 数据库查询 + 聚合计算
→ 运行 python scripts/db_query.py --source {file} --query {analysis_type}
→ 输出:查询结果 + 分析报告
### 路径 C:实时数据需求
→ API 接口获取最新数据
→ 运行 python scripts/api_fetch.py --indicator {indicator}
→ 输出:实时数据 + 与历史数据的对比
## 向用户解释选择
分析前告知用户:检测到数据为 XX 类型(XX 行/需要实时获取),
将采用路径 X 进行分析。说明选择原因。
上下文感知选择的关键是透明决策。智能体在执行前要告知用户选择了哪条路径、为什么选择这条路径。如果用户不同意,可以手动指定其他路径。
模式 5:领域专业智能
Domain-Specific Intelligence
适用场景:Skill 的核心价值不在工具调用,而在嵌入的专业知识和决策规则。
金融案例——投资合规检查:
---
name: investment-compliance
description: 当用户需要对投资交易做合规检查时使用。嵌入监管规则和风控标准,确保交易合规。
allowed-tools: "Read Write Glob"
---
## 步骤 1:获取交易信息
读取交易详情:金额、对手方、资产类别、交易方向
## 步骤 2:应用监管规则
参阅 references/regulatory_rules.md 中的规则清单:
- 制裁清单筛查:核对 OFAC、EU、UN 制裁名单
- 投资集中度检查:单一标的占比是否超过基金净值的 10%
- 关联交易识别:对手方是否为关联方
## 步骤 3:风险评估
根据以下标准评定风险等级:
- 低风险:金额 < 50 万,对手方为白名单机构
- 中风险:金额 50-500 万,或首次交易对手方
- 高风险:金额 > 500 万,涉及高风险地区,或关联交易
## 步骤 4:输出审计报告
生成结构化报告,包含:
- 所有筛查步骤和结果
- 风险等级判定及依据
- 合规结论:通过 / 待复核 / 不通过
- 高风险交易标记待人工审核,不自动放行
保存到 output/compliance_{date}_{id}.md
领域智能模式在合规、风控等场景中有明确价值,但 Skill 中嵌入的规则必须经过专业人士审核。智能体可以执行规则,规则本身的正确性需要由合规团队把关。
模式 6:多子代理编排
适用场景:单个 Skill 内部需要多个专注的执行者分工完成不同阶段的任务,各阶段之间存在信息传递但需要上下文隔离。
这种模式的核心思想是:Skill 本身充当调度中心,在内部按需生成多个子代理,每个子代理在独立上下文中完成各自的工作,最终由 Skill 整合结果。
金融案例——基金综合评估报告:
---
name: fund-comprehensive-evaluation
description: 当用户需要对一只基金做综合评估时使用。协调多个子代理分别完成业绩、持仓、风险和合规四个维度的分析,最终整合为评估报告。
allowed-tools: "Bash(python:*) Read Write Glob Agent"
---
## 任务分解与子代理分派
### 子代理 1:业绩分析
- 输入:基金代码、评估期间
- 工作:计算收益率、夏普比率、最大回撤、同类排名
- 输出:保存到 temp/performance_{fund_id}.md
- 只返回一句话摘要
### 子代理 2:持仓分析
- 输入:基金代码、最新持仓报告
- 工作:行业分布、个股集中度、换手率、重仓股变动
- 输出:保存到 temp/holdings_{fund_id}.md
- 只返回一句话摘要
### 子代理 3:风险评估
- 输入:基金代码、基准指数
- 工作:波动率、Beta、跟踪误差、VaR 估算
- 输出:保存到 temp/risk_{fund_id}.md
- 只返回一句话摘要
### 子代理 4:合规检查
- 输入:基金代码、监管规则文件
- 工作:投资比例合规、关联交易、信息披露完整性
- 输出:保存到 temp/compliance_{fund_id}.md
- 只返回一句话摘要
## 结果整合
四个子代理完成后:
1. 读取四份分析文件
2. 按 assets/fund_eval_template.md 整合为综合评估报告
3. 保存到 output/fund_eval_{fund_id}_{date}.md
两者看起来相似,区别在于谁是入口、谁管生命周期:
| 维度 | 多子代理编排(Skill 内部) | 协调者-执行者(主代理层面) |
|---|---|---|
| 入口 | 用户调用一个 Skill,Skill 内部自行拆分 | 用户直接向主代理下达复合任务 |
| 编排逻辑 | 写在 SKILL.md 中,可复用、可版本化 |
由主代理临场决定,每次可能不同 |
| 上下文保护 | Skill 指令已规定输出路径和摘要规则 | 需要在提示中每次重申文件化输出要求 |
| 适用场景 | 流程固定、频繁复用的多阶段任务 | 一次性或探索性的复杂任务 |
简单说:如果这个多阶段任务你会反复做,就写成 Skill;如果只做一次,让主代理直接协调就好。
模式选择指南
| 模式 | 适用场景 | 核心技法 | 典型金融应用 |
|---|---|---|---|
| 顺序编排 | 固定顺序多步流程 | 步骤依赖、逐步验证 | 财报分析、KYC 尽调 |
| 多 MCP 协调 | 跨服务数据整合 | 阶段分隔、格式统一 | 跨源研报、多市场对比 |
| 迭代精修 | 输出质量需持续提升 | 验证脚本、停止条件 | 政策简报、合规文档 |
| 上下文感知 | 同目标不同方法 | 决策路由、透明解释 | 数据分析方法选择 |
| 领域智能 | 专业知识嵌入 | 规则内嵌、审计追踪 | 合规审查、风控评估 |
| 多子代理编排 | 多维度并行分析 | 子代理分派、文件化传递 | 基金评估、上市公司尽调 |
六种模式并非互斥。一个复杂 Skill 可以同时包含多种模式:先根据上下文选择路径(模式 4),再按顺序执行工作流(模式 1),途中协调多个 MCP(模式 2),需要并行处理时分派子代理(模式 6),输出经过迭代精修(模式 3),全程嵌入领域规则(模式 5)。
模式与子代理的关系
不是每种模式都需要子代理。判断标准是:Skill 内部是否需要多个独立执行者,各自在隔离的上下文中完成不同的工作。
| 模式 | 是否需要子代理 | 说明 |
|---|---|---|
| 顺序编排 | 通常不需要 | 步骤之间有依赖关系,按顺序在同一上下文中执行即可 |
| 多 MCP 协调 | 通常不需要 | MCP 调用是工具层操作,不需要独立上下文 |
| 迭代精修 | 通常不需要 | 生成和检查在同一上下文中交替进行 |
| 上下文感知 | 通常不需要 | 路由选择后走单一路径 |
| 领域智能 | 视规模而定 | 规则简单时不需要;多维度合规审查时可能需要分拆 |
| 多子代理编排 | 必须使用 | 核心机制就是分派多个子代理并行工作 |
当前五种模式的组合任务规模增长到一定程度(例如同时涉及 3 个以上独立分析维度),就应该考虑引入模式 6 来分拆执行。
- 先分工,再编排。 先判断能力该落在命令、脚本、Skill 还是 MCP,分工没切开,Skill 写得越完整,维护成本越高。
- 先取证,再推理。 只要任务依赖真实环境信息,就应优先让命令或脚本先拿事实,再让模型做判断。
- 显式边界优先。 工具权限、写入范围、失败停止条件,都应前置声明。
- 单 Skill 单任务。 一个 Skill 可以连接多种能力,但不该变成小平台。
- 保留升级路径。 先从重复提示变成 Skill,再把确定性部分抽成脚本,再把重状态接口迁到 MCP。
- 子代理只返回摘要。 当 Skill 编排多个子代理时,每个子代理应将完整结果保存到文件,只向 Skill 返回一句话状态摘要,保护主对话的上下文空间。