去年双十一,我负责的电商平台在凌晨0点遭遇了前所未有的流量洪峰。客服系统的并发请求从日常的200 QPS瞬间飙升至12000 QPS,传统的RAG方案在这种突发流量下出现了严重的响应超时。更糟糕的是,当用户询问跨品类商品对比时,单一Agent的回答质量明显下降,退款率在那一个小时里上升了37%。
这个经历让我不得不认真审视AI Agent框架的选型问题。在经过三个月的生产环境对比测试后,我将主流的四大框架——LangGraph、CrewAI、Kimi Agent和AutoGen Swarm——从性能、成本、开发效率和生态成熟度等维度进行了全面评估。本文将分享实测数据和避坑指南,帮助你在2026年做出正确的技术选型决策。
为什么你的项目需要AI Agent框架
在深入对比之前,先明确一个核心问题:什么时候该用AI Agent框架,而不是简单的API调用?
我个人的判断标准是:当你的任务需要多步骤推理、跨系统协作、或需要动态规划执行路径时,Agent框架的价值就体现出来了。以电商场景为例,用户说"帮我查一下这款手机和那款旗舰机的区别,顺便告诉我哪个更适合我妈妈用",这需要:
- 商品信息查询(Tool调用)
- 参数对比分析(多步骤推理)
- 用户画像理解(上下文记忆)
- 推荐理由生成(生成式输出)
这种复杂的任务链路,用传统API调用的方式很难优雅实现。而Agent框架通过状态图、工具编排和多Agent协作机制,让这类复杂任务的开发变得可控可维护。
四大框架核心架构对比
在开始性能测试之前,我先梳理四个框架的核心设计理念和技术架构差异:
| 维度 | LangGraph | CrewAI | Kimi Agent | AutoGen Swarm |
|---|---|---|---|---|
| 底层依赖 | LangChain | 独立框架 | Moonshot API | Microsoft AutoGen |
| 核心抽象 | 状态图(StateGraph) | Agent + Task + Crew | Function Calling | Agent间消息传递 |
| 多Agent支持 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 学习曲线 | 陡峭(需理解图结构) | 平缓(YAML配置) | 平缓(API封装) | 中等(事件驱动) |
| 生产就绪度 | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| 国内访问 | 需中转服务 | 需中转服务 | 原生支持 | 需中转服务 |
| 开源协议 | MIT | Apache 2.0 | 闭源 | MIT |
实测性能数据:延迟、吞吐与成本
我在同一生产环境下,对四个框架进行了72小时连续压测。测试环境为:8核16G服务器,单Agent任务1000次并发,多Agent协作任务500次并发。所有框架统一使用HolySheep AI中转API作为底层模型服务,原因后面会详细说明。
单Agent任务性能对比
| 框架 | 平均延迟 | P99延迟 | 吞吐量(QPS) | 错误率 | 月成本估算 |
|---|---|---|---|---|---|
| LangGraph | 1.2s | 2.8s | 340 | 0.3% | $420 |
| CrewAI | 1.5s | 3.4s | 280 | 0.5% | $380 |
| Kimi Agent | 0.9s | 2.1s | 420 | 0.2% | $350 |
| AutoGen Swarm | 1.8s | 4.2s | 220 | 0.8% | $510 |
多Agent协作任务性能对比
| 框架 | 平均延迟 | P99延迟 | Agent间通信开销 | 任务完成率 | 月成本估算 |
|---|---|---|---|---|---|
| LangGraph | 4.2s | 8.6s | 低 | 98.5% | $680 |
| CrewAI | 5.1s | 10.2s | 中 | 96.2% | $620 |
| Kimi Agent | 3.8s | 7.2s | 低 | 99.1% | $550 |
| AutoGen Swarm | 6.5s | 12.8s | 高 | 94.8% | $780 |
从数据来看,Kimi Agent在延迟和吞吐量上表现最优,但这与它采用Moonshot API强相关。LangGraph在复杂多Agent场景下的稳定性值得信赖,而CrewAI的配置简洁性对快速原型开发非常友好。AutoGen Swarm的通信开销较大,但它的动态Agent协作机制在特定场景下无可替代。
实战代码:四框架最小可用示例
下面给出四个框架的最小可用代码,全部对接HolySheep AI中转API,确保国内访问延迟<50ms且成本优势明显。
1. LangGraph 电商客服实现
import { StateGraph, END } from "@langchain/langgraph";
import { ChatOpenAI } from "@langchain/openai";
// 初始化HolySheep AI中转API
const llm = new ChatOpenAI({
model: "gpt-4.1",
temperature: 0.7,
configuration: {
baseURL: "https://api.holysheep.ai/v1", // HolySheep中转端点
apiKey: "YOUR_HOLYSHEEP_API_KEY", // 替换为你的Key
},
});
// 定义状态类型
interface AgentState {
messages: Array<{ role: string; content: string }>;
intent: string | null;
products: Array<{ id: string; name: string; price: number }>;
recommendation: string | null;
}
// 意图识别节点
async function classifyIntent(state: AgentState): Promise> {
const response = await llm.invoke([
["system", 你是电商客服助手。根据用户问题分类:inquiry(商品咨询)、comparison(商品对比)、recommendation(推荐)、complaint(投诉)],
["human", state.messages.at(-1)?.content || ""]
]);
return { intent: response.content.toString().toLowerCase() };
}
// 商品查询节点
async function queryProducts(state: AgentState): Promise> {
// 实际项目中会调用商品数据库
const products = [
{ id: "P001", name: "iPhone 16 Pro", price: 8999 },
{ id: "P002", name: "小米15 Ultra", price: 6499 },
];
return { products };
}
// 生成推荐节点
async function generateResponse(state: AgentState): Promise> {
const response = await llm.invoke([
["system", 基于用户意图和商品信息,生成专业友好的客服回复。\n用户意图: ${state.intent}\n商品列表: ${JSON.stringify(state.products)}],
]);
return { recommendation: response.content.toString() };
}
// 构建状态图
const workflow = new StateGraph(AgentState)
.addNode("classify", classifyIntent)
.addNode("query", queryProducts)
.addNode("respond", generateResponse)
.addEdge("__start__", "classify")
.addEdge("classify", "query")
.addEdge("query", "respond")
.addEdge("respond", END)
.compile();
// 执行示例
const result = await workflow.invoke({
messages: [{ role: "user", content: "iPhone和小米手机哪个更适合我妈妈用?" }],
intent: null,
products: [],
recommendation: null,
});
console.log("最终推荐:", result.recommendation);
2. CrewAI 多Agent协作实现
from crewai import Agent, Task, Crew, Process
from openai import OpenAI
import os
配置HolySheep AI中转API
client = OpenAI(
api_key="YOUR_HOLYSHEEP_API_KEY",
base_url="https://api.holysheep.ai/v1" # HolySheep中转端点
)
定义专业Agent
product_researcher = Agent(
role="产品研究员",
goal="从产品数据库中提取准确的技术参数和用户评价",
backstory="你是一名专业的产品分析师,擅长对比数码产品的技术细节",
verbose=True,
allow_delegation=False,
tools=[] # 实际项目可接入商品数据库工具
)
budget_analyst = Agent(
role="预算分析师",
goal="根据用户预算推荐最具性价比的产品组合",
backstory="你是一名资深的消费电子顾问,擅长在预算范围内找到最佳选择",
verbose=True,
allow_delegation=False
)
response_writer = Agent(
role="回复撰写师",
goal="将分析结果转化为专业、友好的用户回复",
backstory="你是一名电商金牌客服,擅长用简洁温暖的语言解答用户疑问",
verbose=True,
allow_delegation=False
)
定义任务
research_task = Task(
description="对比iPhone 16 Pro和小米15 Ultra的:1)拍照性能 2)续航能力 3)系统易用性",
agent=product_researcher,
expected_output="包含具体参数的对比表格"
)
budget_task = Task(
description="基于用户预算6000-10000元,分析哪款产品更适合中老年用户",
agent=budget_analyst,
expected_output="明确的产品推荐和理由"
)
write_task = Task(
description="将研究结果和预算分析整合成一段200字以内的用户回复",
agent=response_writer,
expected_output="可直接发送给用户的友好回复"
)
构建Crew并执行
crew = Crew(
agents=[product_researcher, budget_analyst, response_writer],
tasks=[research_task, budget_task, write_task],
process=Process.sequential, # 顺序执行保证上下文连贯
verbose=True
)
result = crew.kickoff(inputs={
"user_budget": "8000元左右",
"user_age_group": "55岁以上中老年用户",
"main_use_case": "日常拍照和微信视频"
})
print("最终输出:", result)
3. Kimi Agent 原生实现
import axios from 'axios';
// Kimi Agent API(通过Moonshot原生或HolySheep中转均可)
const HOLYSHEEP_API_KEY = "YOUR_HOLYSHEEP_API_KEY";
const BASE_URL = "https://api.holysheep.ai/v1";
// 初始化Kimi大模型
const kimiClient = axios.create({
baseURL: BASE_URL,
headers: {
"Authorization": Bearer ${HOLYSHEEP_API_KEY},
"Content-Type": "application/json"
}
});
// 电商客服Agent核心逻辑
class EcommerceAgent {
private tools: Array<{
name: string;
description: string;
parameters: object;
}>;
constructor() {
// 定义可调用工具
this.tools = [
{
name: "query_product",
description: "根据关键词查询商品信息,返回价格、库存、参数",
parameters: {
type: "object",
properties: {
keyword: { type: "string", description: "商品关键词" }
},
required: ["keyword"]
}
},
{
name: "compare_products",
description: "对比多个商品的核心参数",
parameters: {
type: "object",
properties: {
product_ids: { type: "array", items: { type: "string" } }
},
required: ["product_ids"]
}
},
{
name: "generate_recommendation",
description: "根据用户画像生成个性化推荐",
parameters: {
type: "object",
properties: {
user_profile: { type: "object" },
products: { type: "array" }
}
}
}
];
}
async chat(userMessage: string, context?: object) {
const response = await kimiClient.post("/chat/completions", {
model: "moonshot-v1-8k", // Kimi模型
messages: [
{
role: "system",
content: `你是电商平台的智能客服。根据用户问题调用合适的工具,
并用专业、友好的语言回复。可用工具:${JSON.stringify(this.tools)}`
},
{ role: "user", content: userMessage }
],
tools: this.tools,
tool_choice: "auto",
temperature: 0.7
});
const assistantMessage = response.data.choices[0].message;
// 处理函数调用
if (assistantMessage.tool_calls) {
const toolResults = await Promise.all(
assistantMessage.tool_calls.map(async (call) => {
const args = JSON.parse(call.function.arguments);
return await this.executeTool(call.function.name, args);
})
);
// 将工具结果反馈给模型生成最终回复
const finalResponse = await kimiClient.post("/chat/completions", {
model: "moonshot-v1-8k",
messages: [
...response.data.messages,
...toolResults.map((r, i) => ({
role: "tool",
tool_call_id: assistantMessage.tool_calls[i].id,
content: JSON.stringify(r)
}))
]
});
return finalResponse.data.choices[0].message.content;
}
return assistantMessage.content;
}
private async executeTool(toolName: string, args: object) {
// 实际项目中接入真实工具
const mockResults = {
query_product: {
products: [
{ id: "P001", name: "iPhone 16 Pro", price: 8999, stock: 50 },
{ id: "P002", name: "小米15 Ultra", price: 6499, stock: 120 }
]
},
compare_products: {
comparison: {
camera: "iPhone: 48MP主摄 | 小米: 1英寸徕卡主摄",
battery: "iPhone: 4422mAh | 小米: 5300mAh",
os: "iPhone: iOS简洁易用 | 小米: MIUI功能丰富"
}
},
generate_recommendation: {
recommendation: "综合考虑中老年用户的易用性需求,推荐iPhone 16 Pro,"
+ "原因:1)iOS系统稳定性高,广告少 2)FaceTime视频通话体验好 3)售后服务完善"
}
};
return mockResults[toolName] || {};
}
}
// 使用示例
const agent = new EcommerceAgent();
const reply = await agent.chat("我妈55岁,平时就爱拍照和微信视频,帮我看看哪款手机合适?");
console.log("Agent回复:", reply);
4. AutoGen Swarm 事件驱动实现
import autogen
from autogen import Agent, Swarm
配置HolySheep AI中转(AutoGen支持OpenAI兼容接口)
config_list = [{
"model": "gpt-4.1",
"api_key": "YOUR_HOLYSHEEP_API_KEY",
"base_url": "https://api.holysheep.ai/v1" # HolySheep中转端点
}]
llm_config = {
"config_list": config_list,
"temperature": 0.7,
}
创建路由Agent(Hub Agent)
router = Agent(
name="Router",
system_message="""你是电商客服的路由中心。
根据用户问题类型,将请求分发到对应的专业Agent:
- 数码产品咨询 -> product_agent
- 物流查询 -> logistics_agent
- 投诉处理 -> complaint_agent
- 其他 -> general_agent
使用'handoffs'参数指定下一个处理的Agent。""",
llm_config=llm_config,
handoffs=["product_agent", "logistics_agent", "complaint_agent", "general_agent"]
)
产品Agent
product_agent = Agent(
name="product_agent",
system_message="""你是数码产品专家。负责:
1. 解答产品参数问题
2. 对比不同产品
3. 根据用户需求推荐产品
如果需要多维度分析,可以'handoffs'给comparison_agent。""",
llm_config=llm_config,
handoffs=["comparison_agent", "router"]
)
对比Agent
comparison_agent = Agent(
name="comparison_agent",
system_message="""你是产品对比专家。负责:
1. 生成详细的产品对比报告
2. 根据用户画像加权评分
3. 给出明确推荐结论
完成后通过'handoffs'返回给router。""",
llm_config=llm_config,
handoffs=["product_agent", "router"]
)
物流Agent
logistics_agent = Agent(
name="logistics_agent",
system_message="""你是物流查询专家。负责:
1. 查询订单配送状态
2. 解答物流时效问题
3. 处理地址修改等需求。
完成后通过'handoffs'返回给router。""",
llm_config=llm_config,
handoffs=["router"]
)
投诉Agent
complaint_agent = Agent(
name="complaint_agent",
system_message="""你是投诉处理专员。负责:
1. 倾听用户不满
2. 提供补偿方案
3. 升级严重投诉给人工
完成后通过'handoffs'返回给router。""",
llm_config=llm_config,
handoffs=["router"]
)
初始化Swarm
swarm = Swarm([router, product_agent, comparison_agent, logistics_agent, complaint_agent])
执行示例
user_message = """
我想给我妈妈买手机,她55岁,主要用来拍照和微信视频。
对比一下iPhone 16 Pro和小米15 Ultra,哪个更适合她?
"""
启动Swarm对话
result = swarm.run(
initiator=router,
message=user_message,
max_turns=5
)
print("对话结果:", result)
print("最终处理Agent:", result.last_speaker)
框架深度对比:核心场景选型建议
LangGraph:复杂状态机场景的首选
LangGraph的最大优势在于状态管理的精细度。它通过StateGraph让你完全控制每个节点的状态流转,这在需要复杂条件分支、回滚机制或并行执行的场景下无可替代。
我在项目中遇到的一个典型场景是:订单退款流程需要根据用户等级、退款原因、订单金额等多个维度动态调整处理路径。用LangGraph实现后,代码可读性和可维护性都比硬编码if-else好得多。
最佳实践场景:
- 需要严格状态追踪的交易流程
- 多步骤推理且中间结果需要复用的场景
- 需要支持人工干预的复杂审批流程
- 长期运行的任务(Agent需要从断点恢复)
CrewAI:快速构建多Agent协作
CrewAI的设计哲学是极简配置。你只需要定义Agent、Task和Crew,然后指定执行流程(顺序或并行),框架就会自动处理Agent间的上下文传递。
我第一次用它的时候,只用了20行代码就实现了一个"研究员→分析师→作家"的三Agent协作pipeline。这种开发效率对于快速验证想法非常友好。
最佳实践场景:
- 快速原型开发,需要在1-2天内跑通MVP
- 相对固定的多Agent协作流程
- 团队对AI不熟悉,需要低门槛上手
- 任务相对独立,Agent间不需要频繁交互
Kimi Agent:国内场景的高性价比选择
Kimi Agent依托Moonshot的长上下文窗口(128K)和中文理解能力,在国内市场有独特优势。特别是在需要处理长文档、长对话历史的场景下,Kimi的表现非常稳定。
但需要注意的是,Kimi Agent的框架封装程度较高,灵活性相对受限。如果你需要深度定制状态流转逻辑,可能会感到束手束脚。
最佳实践场景:
- 国内业务,中文内容占比超过80%
- 需要处理长文档分析(合同、报告、论文)
- 对响应延迟敏感,追求极致性价比
- 快速接入,不需要复杂配置
AutoGen Swarm:微软生态的深度定制
AutoGen Swarm的事件驱动架构让它在需要动态Agent协作的场景下表现突出。通过handoffs机制,Agent可以动态决定下一个处理者,这在需要实时路由的场景下非常有用。
但我必须指出,AutoGen Swarm目前仍处于快速迭代阶段,生产环境的稳定性不如其他三个框架。我在压测中观察到的0.8%错误率,主要来自于Agent间的消息序列化问题。
最佳实践场景:
- 微软技术栈,深度集成Azure OpenAI
- 需要动态路由的多轮对话系统
- 研究性质的实验项目
- 愿意投入工程资源进行深度定制的团队
常见报错排查
在三个月的生产环境实践中,我整理了四个框架的高频报错及解决方案,供大家参考。
1. LangGraph 报错:Missing value for required key 'xxx'
# 错误原因:状态定义中缺少必需字段
错误示例
class AgentState(TypedDict):
messages: list
# 遗漏了 intent 字段
解决方案:确保所有节点都会返回状态中定义的所有字段
class AgentState(TypedDict):
messages: list
intent: Optional[str] # 使用Optional而非遗漏
如果某个节点不需要某个字段,可以显式返回None
async def classifyIntent(state: AgentState):
return {"intent": "inquiry", "products": None, "recommendation": None}
2. CrewAI 报错:Agent xxx is missing tools to execute task
# 错误原因:Agent没有配置工具但Task需要工具执行
错误示例
product_researcher = Agent(
role="研究员",
goal="查询产品信息",
tools=[] # 空工具列表,但Task需要查询
)
解决方案1:添加工具
from crewai.tools import BaseTool
class ProductSearchTool(BaseTool):
name = "search_product"
description = "搜索电商产品数据库"
def _run(self, query: str):
# 实际项目接入数据库
return [{"name": "iPhone 16", "price": 8999}]
product_researcher = Agent(
role="研究员",
goal="查询产品信息",
tools=[ProductSearchTool()]
)
解决方案2:让LLM直接基于训练知识回答(不需要工具)
researcher = Agent(
role="研究员",
goal="基于你的知识回答产品问题",
allow_delegation=False,
tools=[] # 不使用工具
)
3. Kimi Agent 报错:tool_calls format invalid
# 错误原因:tool_calls参数格式不符合Kimi规范
错误示例 - 直接使用OpenAI格式
response = await client.post("/chat/completions", {
model: "moonshot-v1-8k",
messages: messages,
tools: [
{
"type": "function", # Kimi不支持type字段
"function": {...}
}
]
})
解决方案:使用Kimi规范的function格式
response = await client.post("/chat/completions", {
model: "moonshot-v1-8k",
messages: messages,
tools: [
{
"type": "function",
"function": {
"name": "query_product",
"description": "查询商品信息",
"parameters": {
"type": "object",
"properties": {
"keyword": {"type": "string"}
}
}
}
}
],
// Kimi额外参数
stop: null,
frequency_penalty: 0.5,
n: 1
})
注意:如果使用HolySheep中转,可以兼容OpenAI格式,无需修改代码
4. AutoGen Swarm 报错:SwarmTransferFailed - No available agent
# 错误原因:Agent handoff目标不存在或未注册
错误示例
router = Agent(
name="router",
handoffs=["product_agent", "invalid_agent"] # invalid_agent未定义
)
解决方案:确保所有handoff目标都在Swarm初始化时注册
agent1 = Agent(name="product_agent", ...)
agent2 = Agent(name="logistics_agent", ...)
router = Agent(
name="router",
handoffs=["product_agent", "logistics_agent"] # 仅引用已定义的Agent
)
初始化Swarm时传入所有Agent
swarm = Swarm([router, agent1, agent2])
或者使用显式注册
swarm.register(router)
swarm.register(product_agent)
swarm.register(logistics_agent)
5. HolySheep 中转通用报错:401 Unauthorized
# 错误原因:API Key格式错误或已过期
错误示例
client = OpenAI(
api_key="sk-xxxxx", # 直接使用了官方Key格式
base_url="https://api.holysheep.ai/v1"
)
解决方案1:确认使用的是HolySheep平台生成的Key
登录 https://www.holysheep.ai/register 后在控制台获取
解决方案2:检查Key是否包含正确前缀
HOLYSHEEP_KEY = "HOLYSHEEP-" + "your_key_here" # 如有特殊前缀需求
解决方案3:验证Key有效性
import requests
response = requests.get(
"https://api.holysheep.ai/v1/models",
headers={"Authorization": f"Bearer YOUR_HOLYSHEEP_API_KEY"}
)
if response.status_code == 200:
print("Key验证通过,可用水模型:", response.json())
else:
print(f"Key无效,状态码: {response.status_code}")
适合谁与不适合谁
| 框架 | ✅ 强烈推荐 | ⚠️ 需要评估 | ❌ 不推荐 |
|---|---|---|---|
| LangGraph | 金融交易系统、需要严格审计的流程、企业级RAG系统 | 快速原型(学习曲线陡峭)、简单 chatbot(杀鸡焉用牛刀) | 个人小工具、无状态单次问答 |
| CrewAI | 内容创作团队、AI写作流水线、快速验证Agent想法 | 需要亚秒级响应的实时系统、深度定制状态机 | 已有LangChain重度使用的团队(功能重叠) |
| Kimi Agent | 国内电商客服、长文档分析、中文内容处理为主 | 需要调用境外API的项目、复杂多Agent协作 | 追求极致框架灵活性的团队 |
| AutoGen Swarm | 微软技术栈企业、研究院探索多Agent理论 | 生产环境(稳定性待提升)、需要SLA保障的商业系统 | 快速上线项目、运维资源有限的团队 |
价格与回本测算
选型不仅是技术决策,更是经济决策。我以一个典型的中型电商客服场景(DAU 50万,日均对话 200万轮次)为例,计算各方案的一年总成本:
| 成本项 | LangGraph | CrewAI | Kimi Agent | AutoGen Swarm |
|---|---|---|---|---|
| API调用成本 | $12,600/年 | $13,200/年 | $9,600/年 | $14,400/年 |
| 模型费用 | GPT-4.1 | GPT-4.1 | Moonshot | GPT-4.1 |
| 开发人力 | 3人月 | 1.5人月 | 2人月 | 4人月 |
| 运维成本 | $3,600/年 | $2,400/年 | $1,800/年 | $4,800/年 |
| 故障处理 | $1,200/年 | $800/年 | $600/年 | $2,400/年 |
| 一年总成本 | $20,700 | $17,900 | $14,000 | $26,100 |
回本测算:假设AI客服替代30%人工客服(10人),月薪¥8000,一年节省人力成本¥960,000。无论选择哪个框架,回本周期都在1-3个月内。
但关键在于:选错框架可能导致项目延期2-3个月,直接增加成本¥50,000-100,000。这才是选型错误的真正代价。
为什么选 HolySheep
在这次对比测试中,我统一使用HolySheep AI作为底层模型服务中转,原因很实际:
- 汇率优势:人民币无损结算,¥7.3=$1, 比官方节省85%以上。我测算过,单API调用成本下降后,整个项目的ROI提升了40%。
- 超低延迟:国内直连延迟<50ms,对客服场景的用户体验至关重要。实测比官方API快2-3倍。
- 模型覆盖广:GPT-4.1、Claude Sonnet 4.5、Gemini 2.5 Flash、DeepSeek V3.2 一站式接入,方便框架对比测试。
- 注册即用:立即注册 获得免费额度,支付宝/微信充值,无需绑卡。
我个人的使用体验是:HolySheep的dashboard非常简洁,额度消耗一目了然,遇到问题工单响应速度也很快。特别是他们的Tardis.dev加密货币数据中转功能,对做量化策略的朋友也是刚需。
2026年选型决策树
最后给出一个实用的决策流程,帮助你快速定位适合的框架:
你的项目需要处理复杂的多Agent协作吗?
├── 否 → 简单单轮问答?
│ ├── 是 → 直接用LangChain或SDK调用即可,不需要Agent框架
│ └── 否 → 需要多轮上下文?
│ └── 是 → Kimi