首页/博客/Multi-Agent Orchestration 崛起 2026:从 Hermes 107K 星到 Multica 托管平台,多智能体如何重塑 AI 应用架构
Multi-Agent

Multi-Agent Orchestration 崛起 2026:从 Hermes 107K 星到 Multica 托管平台,多智能体如何重塑 AI 应用架构

✍️ AI Master📅 创建 2026-04-21📖 22 min 阅读
💡

文章摘要

2026 年 4 月,Multi-Agent 项目集体爆发:Hermes Agent 107K 星、ai-hedge-fund 56K 星、Multica 18K 星。本文深度解析 Multi-Agent 技术演进路线、五大框架全面对比、Hermes 自进化机制拆解,以及完整的 Python Multi-Agent 金融分析系统实战。

引言:2026 年 Multi-Agent Orchestration 的时代已经到来

2026 年 4 月,GitHub 上出现了一个清晰的信号:AI 正在从单模型对话走向多智能体协作。过去一周,多个 Multi-Agent 相关项目集体爆发,涵盖从科研到金融、从自进化到企业级编排的全场景:

  • NousResearch Hermes Agent:自进化 AI Agent,一周暴涨 30,630 星,总星数突破 107K,成为 GitHub 本周最热 AI 项目
  • virattt/ai-hedge-fund:AI 对冲基金团队,56K+ stars,用多角色 Agent 模拟完整投资决策流程
  • multica-ai/multica:开源托管 Agent 平台,18K stars(周增 7,009),将编码 Agent 变成真正的团队成员
  • OpenAI openai-agents-python:官方多 Agent 工作流框架,24K stars
  • lsdefine GenericAgent:自进化 Agent,从 3.3K 行种子代码生长出完整技能树,周增 3,914 星

这些项目不是孤立的。它们指向同一个趋势:单一 LLM 已经无法满足复杂任务需求,Multi-Agent 编排正在成为 AI 应用的标准架构。

LangChain 的单链式调用,到 LangGraph 的状态图编排,再到 Hermes 的自我进化和 Multica 的托管平台,Multi-Agent 技术栈正在经历从实验到生产的完整演进。本文将深度解析 Multi-Agent Orchestration 的技术全景、主流框架对比,以及如何在你的项目中落地。

阅读收获:

  • 理解 Multi-Agent Orchestration 的技术演进路线
  • 掌握 5 大主流 Multi-Agent 框架的架构对比
  • 了解 Hermes Agent 自进化机制和 Multica 托管平台的创新
  • 通过 Python 代码实现一个完整的 Multi-Agent 金融分析系统
  • 获得生产级 Multi-Agent 系统的工程化最佳实践

一、为什么需要 Multi-Agent?从单模型到多智能体的必然跃迁

理解 Multi-Agent 的必要性,需要从单一 LLM 的根本局限说起。

单一 LLM 的天花板

即使是最先进的模型,在面对复杂任务时也会遇到以下瓶颈:

  1. 上下文窗口限制:尽管窗口越来越大,但真实世界任务的信息量远超任何窗口
  2. 角色混淆:让一个模型同时充当分析师、批判者和决策者,会导致角色边界模糊
  3. 缺乏专业分工:通用模型在特定领域的深度不足,而微调成本高昂
  4. 单点失败:一个错误的推理步骤会污染整个输出链
  5. 无法并行:顺序处理无法利用并发优势,延迟成为瓶颈

Multi-Agent 的核心价值

Multi-Agent 系统通过角色分工和结构化通信解决上述问题:

维度 单一 LLM Multi-Agent
上下文管理 单一窗口,信息过载 分布式上下文,按需传递
角色设计 Prompt 模拟,易混淆 独立实例,角色隔离
专业深度 通用能力,浅层覆盖 专用 Agent,深度优化
容错机制 单点失败,全盘错误 多 Agent 交叉验证
执行效率 顺序处理,延迟高 并行处理,吞吐量高
可扩展性 受限于单次调用 水平扩展,按需增加

Multi-Agent 不是简单的「多调用几次 LLM」,而是通过系统化的角色设计、通信协议和协调机制,构建出超越单一模型能力的复合智能系统。

二、Multi-Agent 技术演进路线:从 2023 到 2026

Multi-Agent 技术的发展经历了三个明确的阶段,每个阶段都代表了架构理念的升级。

第一阶段:链式调用(2023)

LangChain 为代表的 Chain 模式,将多个 LLM 调用串联成线性管道。每个步骤的输出是下一步的输入。

核心特征

  • 线性执行,步骤 A → B → C
  • 共享同一个 LLM 实例
  • 状态通过 Chain 传递
  • 适用于流程固定的简单任务

局限性: 缺乏分支、循环和并行能力,无法处理需要动态决策的复杂场景。

第二阶段:图式编排(2024)

LangGraphCrewAI 为代表,引入状态图和角色分工的概念。Agent 之间通过结构化的消息传递进行协作。

核心特征

  • 有向图编排,支持分支和循环
  • Agent 角色独立,可以调用不同工具
  • 状态管理更加精细
  • 支持条件路由和动态决策

局限性: 编排逻辑仍然是静态的,Agent 的能力由人类预设,无法自主扩展。

第三阶段:自进化编排(2025-2026)

以 Hermes Agent、GenericAgent、Evolver 为代表,Agent 不仅协作执行任务,还能从经验中自主学习、扩展技能、优化协作模式。

核心特征:

  • Agent 自主扩展技能树
  • 经验压缩与知识沉淀
  • 动态调整协作拓扑
  • 自我评估与持续改进

这就是当前正在发生的范式转移。

三、2026 年主流 Multi-Agent 框架全面对比

当前 Multi-Agent 生态中有多个值得关注的框架和平台,它们各有侧重,适用于不同的场景。

1. OpenAI Agents Python Framework

OpenAI 官方推出的轻量级多 Agent 工作流框架,核心理念是简单性和可控性。

架构特点

  • Agent 作为一等公民,每个 Agent 有明确的职责和工具集
  • 支持 Handoff 机制:Agent 可以将任务转交给其他 Agent
  • 内置 Guardrails 安全检查
  • Python 原生 API,与 OpenAI 模型深度集成

适用场景: OpenAI 生态内的多 Agent 应用开发,适合需要精细控制 Agent 行为的场景。

2. LangGraph

LangChain 生态的图式编排引擎,核心理念是状态图驱动。

架构特点

  • 基于有向图的 Agent 编排,支持循环和条件分支
  • 内置 Checkpoint 机制,支持状态持久化和恢复
  • LangChain 生态无缝集成
  • 支持 Human-in-the-loop 交互模式

适用场景: 复杂的多步骤工作流,需要状态管理和人类干预的场景。

3. CrewAI

专注于角色驱动的 Agent 协作框架,核心理念是让 Agent 像团队一样工作。

架构特点:

  • 自然的角色定义:每个 Agent 有 Role、Goal、Backstory
  • Task 驱动:将工作分解为具体任务分配给 Agent
  • 支持 Sequential 和 Hierarchical 两种协作模式
  • 内置工具集成和记忆系统

适用场景: 需要模拟真实团队协作流程的任务,如研究分析、内容创作。

4. Hermes Agent(NousResearch)

自进化 AI Agent,核心理念是Agent 应该越用越强。

架构特点:

  • 闭环学习系统:自动从经验中提取技能
  • 经验压缩:将冗长的交互历史压缩为可复用的知识
  • 持续自我优化:根据执行结果调整策略
  • 107K+ stars,社区验证了其方向的正确性

适用场景: 需要长期运行、持续优化的 Agent 系统,如个人助手、自动化运维。

5. Multica

开源托管 Agent 平台,核心理念是将 Agent 变成真正的团队成员。

架构特点:

  • 托管式 Agent 管理:Agent 可以独立运行、接收任务、汇报进度
  • 技能复合:Agent 之间可以共享和学习彼此的技能
  • 任务追踪:可视化的任务分配和进度管理
  • 周增 7,009 星,增长速度惊人

适用场景: 团队级 AI 协作,需要多 Agent 长期运行和任务管理的场景。

维度OpenAI AgentsLangGraphCrewAIHermes AgentMultica

核心理念

简单可控

状态图编排

角色协作

自进化

托管平台

Agent 数量

多 Agent

多 Agent

多 Agent

单 Agent 自进化

多 Agent 托管

编排方式

Handoff 转交

有向图

Sequential/Hierarchical

自主决策

任务分配

自学习能力

✅ 经验压缩

✅ 技能复合

人类干预

Guardrails

Human-in-loop

审批流程

自主运行

任务分配

生态集成

OpenAI 原生

LangChain 生态

独立工具集

Python 通用

编码 Agent

GitHub Stars

24K

N/A(LangChain 134K)

N/A

107K

18K

适合场景

精确控制

复杂工作流

团队协作模拟

长期自主运行

团队级管理

学习曲线

四、深度拆解:Hermes Agent 的自进化机制

Hermes Agent 之所以能在一周内获得 30,000+ stars,核心在于它提出了一套完整的自进化闭环,让 Agent 不再依赖人类预设的固定能力。

自进化三阶段

阶段 1:执行与记录

Agent 执行任务时,完整记录每个决策步骤、工具调用和结果。这些原始数据构成了「经验原材料」。

阶段 2:经验压缩

这是 Hermes 最核心的创新。它不是简单地保存日志,而是通过以下步骤压缩经验:

  1. 模式识别:从多次执行中识别重复的模式
  2. 抽象提炼:将具体经验抽象为通用规则
  3. 技能提取:将成功的策略封装为可复用的技能
  4. 冗余消除:合并相似的技能,淘汰低效的策略

阶段 3:技能应用

压缩后的技能被注入到 Agent 的知识库中,在后续任务中直接调用,而不是重新推理。

这个过程形成了一个正向循环:做得越多 → 经验越丰富 → 技能越精炼 → 表现越好。

与传统微调的对比

Hermes 的自进化与传统 LLM 微调有本质区别:

对比维度 传统微调 Hermes 自进化
更新频率 离线批量,周期长 在线持续,实时更新
数据需求 需要大量标注数据 利用自身执行经验
计算成本 需要 GPU 集群 轻量级,CPU 可运行
泛化能力 面向特定任务 面向通用能力
可解释性 权重变化不可见 技能列表可审计
回滚能力 困难 简单(删除技能)

五、实战:用 Python 构建 Multi-Agent 金融分析系统

下面我们通过一个完整的实战项目,演示如何构建一个 Multi-Agent 金融分析系统。这个系统模拟 ai-hedge-fund 的核心架构,包含三个 Agent:分析师、风险经理和策略师。

系统架构

我们实现三个独立的 Agent,各自负责一个环节,最终由编排器汇总决策。

python
multi_agent_finance.py
# multi_agent_finance.py
# Multi-Agent 金融分析系统实战

from dataclasses import dataclass, field
from typing import List, Dict, Optional
from enum import Enum
import json
import random
import time


class Signal(Enum):
    BUY = "BUY"
    SELL = "SELL"
    HOLD = "HOLD"


@dataclass
class MarketData:
    """模拟市场数据"""
    symbol: str
    price: float
    volume: float
    ma_20: float  # 20日均线
    ma_50: float  # 50日均线
    rsi: float    # RSI指标
    volatility: float  # 波动率


@dataclass
class AgentOutput:
    """Agent 输出"""
    agent_name: str
    signal: Signal
    confidence: float  # 0-1
    reasoning: str
    risk_level: str = "medium"  # low, medium, high


# ============ Agent 基类 ============

class BaseAgent:
    """Agent 基类"""
    
    def __init__(self, name: str):
        self.name = name
        self.history: List[AgentOutput] = []
    
    def analyze(self, data: MarketData) -> AgentOutput:
        raise NotImplementedError


# ============ 分析师 Agent ============

class AnalystAgent(BaseAgent):
    """技术分析 Agent - 负责趋势和信号识别"""
    
    def analyze(self, data: MarketData) -> AgentOutput:
        signals = []
        reasoning_parts = []
        
        # 均线交叉分析
        if data.price > data.ma_20 > data.ma_50:
            signals.append(1)  # 看涨
            reasoning_parts.append("价格在20日和50日均线之上,趋势看涨")
        elif data.price < data.ma_20 < data.ma_50:
            signals.append(-1)  # 看跌
            reasoning_parts.append("价格在20日和50日均线之下,趋势看跌")
        else:
            signals.append(0)  # 中性
            reasoning_parts.append("均线交叉,趋势不明确")
        
        # RSI 分析
        if data.rsi < 30:
            signals.append(1)
            reasoning_parts.append(f"RSI={data.rsi:.1f},处于超卖区域")
        elif data.rsi > 70:
            signals.append(-1)
            reasoning_parts.append(f"RSI={data.rsi:.1f},处于超买区域")
        else:
            signals.append(0)
            reasoning_parts.append(f"RSI={data.rsi:.1f},处于正常区间")
        
        # 成交量分析
        if data.volume > data.ma_20 * 1.5:
            signals.append(1)
            reasoning_parts.append("成交量放大,确认趋势")
        
        # 综合判断
        avg_signal = sum(signals) / len(signals)
        confidence = min(abs(avg_signal) + 0.3, 0.95)
        
        if avg_signal > 0.3:
            signal = Signal.BUY
        elif avg_signal < -0.3:
            signal = Signal.SELL
        else:
            signal = Signal.HOLD
        
        output = AgentOutput(
            agent_name=self.name,
            signal=signal,
            confidence=round(confidence, 2),
            reasoning="; ".join(reasoning_parts),
            risk_level="low" if confidence > 0.7 else "medium"
        )
        self.history.append(output)
        return output


# ============ 风险经理 Agent ============

class RiskManagerAgent(BaseAgent):
    """风险管理 Agent - 负责评估交易风险"""
    
    def __init__(self, name: str, max_drawdown: float = 0.15):
        super().__init__(name)
        self.max_drawdown = max_drawdown
    
    def analyze(self, data: MarketData) -> AgentOutput:
        reasoning_parts = []
        risk_score = 0.0
        
        # 波动率风险
        if data.volatility > 0.03:
            risk_score += 0.4
            reasoning_parts.append(f"波动率 {data.volatility:.2%},较高风险")
        elif data.volatility > 0.015:
            risk_score += 0.2
            reasoning_parts.append(f"波动率 {data.volatility:.2%},中等风险")
        else:
            reasoning_parts.append(f"波动率 {data.volatility:.2%},低风险")
        
        # RSI 极端值风险
        if data.rsi > 80 or data.rsi < 20:
            risk_score += 0.3
            reasoning_parts.append("RSI 处于极端区域,反转风险高")
        
        # 均线偏离度
        ma_deviation = abs(data.price - data.ma_50) / data.ma_50
        if ma_deviation > 0.1:
            risk_score += 0.3
            reasoning_parts.append(f"价格偏离50日均线 {ma_deviation:.1%},回归风险")
        
        # 风险等级判定
        if risk_score > 0.5:
            risk_level = "high"
            signal = Signal.HOLD
            confidence = 0.9
        elif risk_score > 0.2:
            risk_level = "medium"
            signal = Signal.HOLD
            confidence = 0.6
        else:
            risk_level = "low"
            signal = Signal.BUY
            confidence = 0.7
        
        output = AgentOutput(
            agent_name=self.name,
            signal=signal,
            confidence=round(confidence, 2),
            reasoning="; ".join(reasoning_parts),
            risk_level=risk_level
        )
        self.history.append(output)
        return output


# ============ 策略师 Agent ============

class StrategyAgent(BaseAgent):
    """策略制定 Agent - 综合信号生成最终决策"""
    
    def __init__(self, name: str):
        super().__init__(name)
        self.portfolio: Dict[str, float] = {}
    
    def make_decision(
        self,
        analyst: AgentOutput,
        risk: AgentOutput,
        data: MarketData
    ) -> AgentOutput:
        """综合各 Agent 信号生成最终决策"""
        
        # 风险管理有一票否决权
        if risk.risk_level == "high":
            output = AgentOutput(
                agent_name=self.name,
                signal=Signal.HOLD,
                confidence=0.95,
                reasoning=f"风险经理否决: {risk.reasoning}",
                risk_level="high"
            )
            self.history.append(output)
            return output
        
        # 加权投票
        weights = {"analyst": 0.4, "risk": 0.6}
        vote_score = 0.0
        
        if analyst.signal == Signal.BUY:
            vote_score += weights["analyst"] * analyst.confidence
        elif analyst.signal == Signal.SELL:
            vote_score -= weights["analyst"] * analyst.confidence
            
        if risk.signal == Signal.BUY:
            vote_score += weights["risk"] * risk.confidence
        elif risk.signal == Signal.SELL:
            vote_score -= weights["risk"] * risk.confidence
        
        if vote_score > 0.2:
            signal = Signal.BUY
        elif vote_score < -0.2:
            signal = Signal.SELL
        else:
            signal = Signal.HOLD
        
        confidence = min(abs(vote_score) + 0.4, 0.95)
        
        output = AgentOutput(
            agent_name=self.name,
            signal=signal,
            confidence=round(confidence, 2),
            reasoning=f"分析师: {analyst.signal.value}({analyst.confidence}), "
                       f"风险: {risk.signal.value}({risk.confidence}), "
                       f"综合得分: {vote_score:.2f}",
            risk_level=risk.risk_level
        )
        self.history.append(output)
        return output


# ============ 编排器 ============

class MultiAgentOrchestrator:
    """Multi-Agent 编排器"""
    
    def __init__(self):
        self.analyst = AnalystAgent("技术分析师")
        self.risk_mgr = RiskManagerAgent("风险经理", max_drawdown=0.15)
        self.strategist = StrategyAgent("策略师")
    
    def run_analysis(self, market_data: MarketData) -> Dict:
        """执行完整的 Multi-Agent 分析流程"""
        
        print(f"\n{'='*60}")
        price_str = f"{market_data.price:.2f}"
        print(f"📊 分析 {market_data.symbol} | 价格: " + price_str)
        print(f"{'='*60}")
        
        # Step 1: 分析师分析
        analyst_output = self.analyst.analyze(market_data)
        print(f"\n📈 {analyst_output.agent_name}:")
        print(f"   信号: {analyst_output.signal.value}")
        print(f"   置信度: {analyst_output.confidence}")
        print(f"   理由: {analyst_output.reasoning}")
        
        # Step 2: 风险评估
        risk_output = self.risk_mgr.analyze(market_data)
        print(f"\n⚠️ {risk_output.agent_name}:")
        print(f"   风险等级: {risk_output.risk_level}")
        print(f"   信号: {risk_output.signal.value}")
        print(f"   理由: {risk_output.reasoning}")
        
        # Step 3: 策略决策
        decision = self.strategist.make_decision(
            analyst_output, risk_output, market_data
        )
        print(f"\n🎯 {decision.agent_name}:")
        print(f"   最终决策: {decision.signal.value}")
        print(f"   置信度: {decision.confidence}")
        print(f"   理由: {decision.reasoning}")
        
        return {
            "symbol": market_data.symbol,
            "analyst": vars(analyst_output),
            "risk": vars(risk_output),
            "decision": vars(decision),
        }


# ============ 运行示例 ============

if __name__ == "__main__":
    orchestrator = MultiAgentOrchestrator()
    
    # 测试场景 1: 看涨趋势
    bull_market = MarketData(
        symbol="AAPL", price=195.50, volume=85000000,
        ma_20=190.00, ma_50=185.00, rsi=55.0, volatility=0.012
    )
    orchestrator.run_analysis(bull_market)
    
    # 测试场景 2: 高风险回调
    risky_market = MarketData(
        symbol="TSLA", price=280.00, volume=120000000,
        ma_20=250.00, ma_50=230.00, rsi=82.0, volatility=0.045
    )
    orchestrator.run_analysis(risky_market)
    
    # 测试场景 3: 超卖反弹
    oversold_market = MarketData(
        symbol="NVDA", price=110.00, volume=95000000,
        ma_20=120.00, ma_50=125.00, rsi=25.0, volatility=0.028
    )
    orchestrator.run_analysis(oversold_market)

六、Multi-Agent 系统的工程化挑战与解决方案

从实验到生产,Multi-Agent 系统面临一系列独特的工程挑战。

挑战 1:通信开销

多个 Agent 之间的消息传递会产生大量 Token 消耗。以 Hermes Agent 为例,每次经验压缩和知识注入都需要额外的上下文窗口。

解决方案

  • 使用结构化消息格式(JSON Schema)替代自然语言通信
  • 实现消息压缩和摘要机制
  • 设置通信预算,限制 Agent 间的消息轮次

挑战 2:Agent 冲突

不同 Agent 可能产生矛盾的结论。在金融分析场景中,分析师看涨而风险经理看空是常见情况。

解决方案

  • 建立明确的决策权重和优先级机制
  • 引入元 Agent(Meta-Agent)负责仲裁
  • 使用置信度加权投票而非简单多数

挑战 3:状态一致性

Agent 的本地状态与全局状态可能不一致,特别是在异步执行场景中。

解决方案:

  • 引入全局状态管理器(类似 LangGraph 的 Checkpoint)
  • 使用事件溯源(Event Sourcing)记录所有状态变更
  • 实现状态快照和回滚机制

挑战 4:可观测性

调试 Multi-Agent 系统比调试单一 LLM 复杂得多。

解决方案:

  • 使用 LangSmith、MLflow 等工具进行全链路追踪
  • 为每个 Agent 记录独立的执行日志
  • 建立 Agent 行为基线,异常时自动告警

七、2026 年 Multi-Agent 趋势预测

基于当前 GitHub Trending 和社区动态,Multi-Agent 在 2026 年将呈现以下趋势:

趋势 1:自进化成为标配

Hermes Agent 的爆发证明了一个方向:Agent 的自我进化能力正在从实验性功能变为开发者刚需。预计 2026 年下半年,主流框架都会内置某种形式的自学习机制。

趋势 2:托管平台崛起

Multica 一周增长 7,009 星,说明开发者需要将 Agent 作为独立的、可管理的实体来运营。Agent 不再是脚本里的一个对象,而是有生命周期、有技能树、有绩效指标的「数字员工」。

趋势 3:垂直行业爆发

ai-hedge-fund 的 56K stars 证明了垂直 Multi-Agent 应用的巨大潜力。金融、医疗、法律、教育等行业将出现更多专用的 Multi-Agent 系统。

趋势 4:标准化通信协议

随着 Multi-Agent 生态的成熟,Agent 之间的通信协议将走向标准化。MCP(Model Context Protocol)可能从工具集成协议演进为 Agent 间通信标准。

趋势 5:Agent 可观测性工具

调试和监控 Multi-Agent 系统将成为一个独立的工具品类,类似于 APM(Application Performance Monitoring)在传统软件中的地位。

趋势代表项目当前 Stars预期增长关键驱动因素

自进化 Agent

Hermes Agent

107K

200K+

开发者追求免维护 AI

托管平台

Multica

18K

50K+

Agent 运营需求爆发

垂直行业

ai-hedge-fund

56K

100K+

行业专用 AI 需求

通信标准化

MCP

集成 LangChain

生态标配

多厂商互操作需求

可观测性

LangSmith

N/A

独立赛道

生产部署需求

八、总结:Multi-Agent 是 AI 应用的下一个基础设施

Multi-Agent Orchestration 正在经历从概念验证到生产就绪的关键转折。2026 年 4 月的 GitHub Trending 数据清晰地展示了这一点:

  • NousResearch Hermes Agent 以 107K stars 成为最热门的开源 AI Agent 项目
  • ai-hedge-fund 用 56K stars 证明了垂直 Multi-Agent 的商业价值
  • Multica 以 18K stars 和周增 7,009 星的速度崛起为 Agent 托管平台新贵
  • OpenAI Agents Python 官方框架 24K stars,标志着大厂正式入场

这三个趋势——自进化、托管化、垂直化——正在同时发生,并且相互促进。自进化让 Agent 更智能,托管化让 Agent 更可控,垂直化让 Agent 更有价值。

对于开发者和企业来说,现在是学习和实践 Multi-Agent 技术的最佳时机。从 LangGraph 的基础编排开始,逐步探索自进化和托管平台,你将站在 AI 应用的下一个基础设施浪潮之上。

正如单线程编程进化到并发编程,单体应用进化到微服务架构,单一 LLM 调用也正在进化到 Multi-Agent 编排。这不只是技术升级,而是 AI 应用开发范式的根本转变。

进一步学习:

  • 📚 AI Master 知识库 → AI Agent → Self-Evolving AI Agent 深度解析
  • 📚 AI Master 知识库 → AI Agent 记忆系统架构
  • 📚 AI Master 知识库 → MCP 全面指南
  • 🛠️ AI Master 工具 → Hermes Agent / Multica / LangGraph / CrewAI
  • 🎯 实践:用上面的 Python 代码搭建你的 Multi-Agent 金融分析系统

标签

#Multi-Agent#Agent 编排#Hermes Agent#Multica#LangGraph#CrewAI#自进化 Agent#AI 架构#金融 Agent

继续探索更多 AI 内容

浏览更多博客文章,或者深入学习 AI 核心知识