当一个开源模型能连续自主工作8小时------拆解2026年Agentic AI的技术密码
大家好,我是摘星,今天我们来聊聊2026年AI圈最值得深挖的趋势------Agentic AI,也就是让AI从"你问我答"进化到"你定目标,我自己搞定"。
最近智谱发布的GLM-5.1在技术圈炸了锅:一个开源模型,在真实软件工程基准测试SWE-Bench Pro上拿到了58.4%的得分,首次超越GPT-5.4和Claude Opus 4.6登顶全球第一。但比跑分更震撼的是另一个数字------这个模型能连续自主工作8小时,从规划到执行到迭代优化,全程不需要人工介入。这意味着什么?意味着AI正式从"辅助工具"迈入"自主工作者"的门槛。今天这篇文章,我们就从GLM-5.1这个切口入手,把Agentic AI背后的技术架构、关键协议、实战框架和核心挑战一层层拆开。
一、从"氛围编程"到"智能体工程":2026年AI到底在卷什么?
2025年大家还在讨论Vibe Coding(氛围编程)------对着AI描述你想要什么,它帮你写代码,写得不好就再描述一遍。这种模式本质上是"人指挥,AI执行",AI只是一个更高效的打字机。
但到了2026年,游戏规则变了。
智谱在3月份发布的GLM-5.1不只是在跑分上刷新记录,更重要的是它展示了一种全新的AI工作范式:Agentic Engineering(智能体工程)。在这种范式下,你不再需要一步步告诉AI该怎么做,而是给它一个目标,它自己拆解任务、选择工具、执行操作、检查结果、自我修正。
拿SWE-Bench Pro这个测试来说,它考察的不是"写一段冒泡排序",而是让模型在一个真实的GitHub仓库中定位bug、理解整个项目的代码上下文、编写修复补丁、运行测试套件------这几乎就是一个初级软件工程师的日常工作。GLM-5.1能在这个测试中拿到58.4%,说明它已经具备了端到端的工程能力。
更值得关注的是GLM-5.1的技术参数:
| 参数 | 规格 |
|---|---|
| 架构 | 754B参数 MoE(混合专家) |
| 上下文窗口 | 200K tokens |
| 开源协议 | MIT |
| 训练芯片 | 完全基于华为910B |
| 定价 | 竞品的约1/5 |
754B参数的MoE架构,意味着它在推理时不需要激活全部参数,而是根据输入动态选择相关的"专家网络",大幅降低了推理成本。200K的上下文窗口让它能处理超长代码文件和大型项目。MIT开源协议意味着你可以随意使用、修改和商业化部署。而基于华为910B芯片训练这一点,说明国产AI芯片已经能支撑千亿参数级别的模型训练。
但这只是冰山一角。GLM-5.1展现的"8小时续航"能力,背后依赖的是一整套让AI"自驱"的技术架构------而这正是2026年整个AI行业的大方向。
二、Agentic AI的核心概念:让AI从"答题机器"变成"工作伙伴"
先搞清楚Agentic AI到底是什么。很多人把"智能体"和"大模型"混为一谈,但它们是完全不同的东西。
大语言模型(LLM)是一个"大脑"------它能理解语言、推理、生成文本。但光有大脑不够,一个完整的工作者还需要"手"(调用工具)、"计划能力"(拆解和规划任务)、"记忆力"(积累和复用经验)。
Agentic AI就是把"大脑+手+计划+记忆"打包成一个完整系统的工程方法。
下面这个对比表格能帮你快速理解区别:
| 维度 | 传统LLM对话 | Agentic AI |
|---|---|---|
| 交互方式 | 一问一答,每次独立 | 给定目标,自主执行 |
| 工具使用 | 被动等待用户指定 | 主动选择和组合工具 |
| 任务长度 | 单轮或几轮对话 | 可持续数小时甚至数天 |
| 纠错能力 | 靠用户反馈修正 | 自我检测、自我修正 |
| 协作能力 | 无 | 多Agent分工协作 |
| 状态管理 | 无状态 | 维护工作记忆和长期记忆 |
Agentic AI的核心工作流可以用一个循环来概括:感知→规划→执行→观察→反思。这个循环会一直运转,直到任务完成或遇到无法解决的障碍。
是
否
否
是
用户输入目标
Agent 接收并理解任务
规划阶段:拆解为子任务序列
选择工具和策略
执行当前子任务
观察执行结果
结果是否符合预期?
更新状态,推进到下一子任务
反思:分析失败原因
调整策略
所有子任务完成?
整合结果,返回交付物
这个"规划→执行→观察→反思"的循环,和人类解决复杂问题的思维模式几乎一模一样。你可能觉得这不就是给LLM加了个while循环吗?概念上确实如此,但魔鬼在细节里------怎么让循环不跑偏、怎么管理上下文不溢出、怎么让多个Agent协调不冲突,这些才是真正的技术挑战。
三、给AI"长出手":MCP协议深度拆解
AI要"自己干活",首先得能"动手"------调用API、读写文件、查询数据库、操作代码仓库。在2024年之前,每接入一个外部工具,开发者都得写一套定制化的对接代码。MCP的出现改变了这个局面。
3.1 MCP是什么?
MCP(Model Context Protocol,模型上下文协议)由Anthropic在2024年11月发布,它是AI领域的"USB标准接口"------就像USB统一了所有外设的连接方式一样,MCP统一了AI模型与外部工具的连接方式。
在MCP之前,你想让Claude调用你的数据库,得写一套专门的对接口子;想让GPT操作你的代码仓库,又得写另一套。MCP定义了一套标准协议,只要工具端实现了MCP Server,任何支持MCP的AI应用都能直接使用。
3.2 MCP的三角架构
MCP的架构设计非常简洁,由三个角色组成:
Host应用
标准协议
标准协议
标准协议
标准协议
用户界面
MCP Client 通信层
MCP Server: 文件系统
MCP Server: 数据库
MCP Server: Git操作
MCP Server: Web搜索
- Host(主机):用户直接使用的AI应用,比如Claude Desktop、Cursor IDE、VS Code等
- MCP Client:嵌入在Host中的通信层,负责与MCP Server建立连接、协商能力、转发请求
- MCP Server:提供具体工具和资源的服务端。每个Server声明自己提供哪些工具(Tools)、哪些资源(Resources)、哪些提示模板(Prompts)
Host可以同时连接多个MCP Server,每个Server独立运行。Client和Server之间通过标准化的JSON-RPC协议通信。这意味着你可以混合使用来自不同供应商的Server,自由组合AI的能力。
截至2026年初,GitHub上已经有超过13,000个MCP Server实现,月下载量达到9,700万次。无论你需要数据库访问、云服务操作、开发工具集成还是特定领域的专业工具,大概率都能找到现成的MCP Server。
3.3 手把手实现一个MCP Server
来看一个完整的MCP Server实现------一个提供代码搜索能力的工具服务:
python
# code_search_server.py - 代码搜索MCP Server
from mcp.server import Server
from mcp.types import Tool, TextContent
import subprocess
import os
app = Server("code-search-server")
@app.list_tools()
async def list_tools() -> list[Tool]:
"""声明本Server提供的所有工具"""
return [
Tool(
name="search_code",
description="在代码仓库中搜索包含指定关键词的文件",
inputSchema={
"type": "object",
"properties": {
"repo_path": {
"type": "string",
"description": "代码仓库的本地路径"
},
"query": {
"type": "string",
"description": "搜索关键词或正则表达式"
},
"file_type": {
"type": "string",
"description": "限定文件类型,如 py, js, ts",
"default": "*"
},
"context_lines": {
"type": "integer",
"description": "显示匹配行的前后上下文行数",
"default": 3
}
},
"required": ["repo_path", "query"]
}
),
Tool(
name="list_functions",
description="列出指定文件中的所有函数定义",
inputSchema={
"type": "object",
"properties": {
"file_path": {
"type": "string",
"description": "目标文件的完整路径"
}
},
"required": ["file_path"]
}
)
]
@app.call_tool()
async def call_tool(name: str, arguments: dict):
"""处理具体的工具调用"""
if name == "search_code":
return await _search_code(arguments)
elif name == "list_functions":
return await _list_functions(arguments)
raise ValueError(f"Unknown tool: {name}")
async def _search_code(args: dict) -> list[TextContent]:
"""执行代码搜索"""
repo = args["repo_path"]
query = args["query"]
ftype = args.get("file_type", "*")
ctx = args.get("context_lines", 3)
if not os.path.isdir(repo):
return [TextContent(type="text", text=f"错误:目录不存在 {repo}")]
cmd = ["rg", "-n", f"-C{ctx}", "--glob", f"*.{ftype}", query, repo]
try:
result = subprocess.run(
cmd, capture_output=True, text=True, timeout=30
)
output = result.stdout if result.stdout else "未找到匹配结果"
return [TextContent(type="text", text=output)]
except subprocess.TimeoutExpired:
return [TextContent(type="text", text="搜索超时,请缩小搜索范围")]
except FileNotFoundError:
# ripgrep未安装,回退到grep
fallback = subprocess.run(
["grep", "-rn", query, repo],
capture_output=True, text=True, timeout=60
)
return [TextContent(type="text", text=fallback.stdout or "未找到匹配")]
async def _list_functions(args: dict) -> list[TextContent]:
"""列出文件中的函数定义"""
fpath = args["file_path"]
if not os.path.isfile(fpath):
return [TextContent(type="text", text=f"错误:文件不存在 {fpath}")]
cmd = ["rg", "-n", "def |function |class |async def ", fpath]
result = subprocess.run(cmd, capture_output=True, text=True, timeout=10)
return [TextContent(type="text", text=result.stdout or "未找到函数定义")]
if __name__ == "__main__":
import asyncio
asyncio.run(app.run())
这段代码实现了一个功能完整的MCP Server,关键设计要点:
list_tools()方法声明了Server提供的所有工具及其参数Schema。AI模型通过这个声明了解它可以使用哪些工具,每个工具需要什么参数call_tool()方法是统一的路由入口,根据工具名分发给具体的处理函数- 每个工具处理函数返回
TextContent列表,这是MCP的标准返回格式 - 错误处理到位:目录不存在、搜索超时、依赖缺失都有兜底
当你在Claude Desktop中配置了这个Server后,Claude就能自动判断何时需要搜索代码,主动调用这个工具,无需你手动触发。
四、让Agent互相说话:A2A协议解析
MCP解决的是"一个Agent怎么用工具"的问题。但真实的复杂任务往往需要多个Agent协作------一个负责调研、一个负责分析、一个负责输出。这时候就需要Agent之间能互相通信,这就是A2A协议要解决的问题。
4.1 A2A:AI领域的TCP/IP
A2A(Agent-to-Agent)协议由Google在2025年4月发布,它的目标很明确:让不同供应商、不同框架构建的AI Agent能互相发现、互相协作。
在A2A之前,Agent之间想协作,要么用同一个框架(比如都在LangGraph里),要么自己写一套通信协议。A2A定义了一套开放标准,就像TCP/IP让不同操作系统的计算机能互相通信一样,A2A让不同框架的Agent能无缝协作。
A2A基于成熟的Web技术构建:HTTP作为传输层、JSON-RPC 2.0作为消息格式、SSE(Server-Sent Events)作为推送机制。这意味着任何会用Web开发的工程师都能快速上手。
4.2 A2A的核心机制
A2A定义了几个核心概念:
- Agent Card:每个Agent对外发布一张"名片",描述自己的能力、支持的接口和认证方式。类似于互联网中的DNS记录,其他Agent通过Agent Card发现你的能力
- Task:Agent之间协作的基本单位。一个Agent发送Task请求,另一个Agent接收并执行
- Message:Task执行过程中的信息载体,支持文本、图片、文件等多种内容类型
- Artifact:Task的最终产出物
Agent B (执行方) Agent A (发起方) Agent B (执行方) Agent A (发起方) Agent B 开始执行任务 GET /.well-known/agent.json 获取Agent Card 返回能力描述 POST /tasks/send 创建Task: "分析这份代码的安全性" 返回 Task ID SSE推送: "正在分析..." SSE推送: "发现3个潜在风险" POST /tasks/send 补充信息: "重点关注SQL注入" SSE推送: "已更新分析范围" 返回Artifact: 安全审查报告
从时序图可以看出,A2A的交互是异步的、基于事件的。发起方不需要同步等待结果,而是通过SSE接收实时状态更新。这种设计非常适合Agent场景------一个复杂任务的执行时间可能从几秒到几分钟不等。
4.3 MCP和A2A的关系:互补而非竞争
这是很多人搞混的地方。MCP和A2A不是二选一的关系,它们解决的是不同层面的问题:
| 维度 | MCP | A2A |
|---|---|---|
| 解决的问题 | Agent如何使用外部工具 | Agent之间如何协作 |
| 类比 | USB接口(连接外设) | TCP/IP协议(网络通信) |
| 提出方 | Anthropic | |
| 底层技术 | stdio/HTTP+SSE | HTTP+JSON-RPC 2.0+SSE |
| 开源协议 | MIT | Apache 2.0 |
| 通信模型 | Client-Server | Peer-to-Peer |
打个比方:MCP是让一个人能使用锤子、螺丝刀等工具;A2A是让多个工人之间能沟通协作。一个完整的Agentic系统两者都需要------Agent通过MCP使用工具,通过A2A与其他Agent协调。
五、多智能体协作实战:三种框架,三个场景
理论框架讲完了,下面上实战代码。我选了三个主流框架,各用一个真实场景来演示。
5.1 LangGraph:代码审查多Agent系统
LangGraph是LangChain团队推出的图状态机框架,核心思想是用有向图来定义Agent之间的协作流程。它特别适合需要精细控制执行流程的场景。
python
# langgraph_code_review.py - 多Agent代码审查系统
from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated, List
import operator
import re
import json
class ReviewState(TypedDict):
"""多个Agent共享的工作状态"""
diff_content: str
file_paths: List[str]
code_quality_report: str
security_issues: List[dict]
style_issues: List[str]
final_review: str
iteration: int
messages: Annotated[list, operator.add]
def code_analyzer(state: ReviewState) -> dict:
"""代码质量分析Agent:检查代码逻辑和结构"""
diff = state["diff_content"]
files = state["file_paths"]
issues = []
# 检查函数长度
function_blocks = re.findall(
r'def (\w+)\([^)]*\):((?:\n .+)*)', diff
)
for name, body in function_blocks:
lines = body.strip().split('\n')
if len(lines) > 50:
issues.append(
f"函数 {name} 有 {len(lines)} 行,"
f"建议拆分到50行以内"
)
# 检查圈复杂度(简化版)
for name, body in function_blocks:
branches = len(re.findall(r'\bif\b|\belif\b|\bfor\b|\bwhile\b', body))
if branches > 10:
issues.append(
f"函数 {name} 圈复杂度估计为 {branches},"
f"建议降低到10以内"
)
report = f"## 代码质量分析\n"
report += f"涉及文件: {', '.join(files)}\n"
if issues:
for issue in issues:
report += f"- ⚠️ {issue}\n"
else:
report += "代码结构良好,未发现明显问题\n"
return {
"code_quality_report": report,
"messages": [{"role": "code_analyzer", "content": report}]
}
def security_scanner(state: ReviewState) -> dict:
"""安全扫描Agent:检测常见安全漏洞"""
diff = state["diff_content"]
patterns = {
"SQL注入": [
(r'execute\(.*f["\']', "f-string拼接SQL查询"),
(r'raw_query.*\+', "字符串拼接SQL查询"),
(r'\.format\(.*SELECT', "format格式化SQL"),
],
"硬编码密钥": [
(r'password\s*=\s*["\'][^"\']+["\']', "硬编码密码"),
(r'api_key\s*=\s*["\'][^"\']+["\']', "硬编码API密钥"),
(r'secret\s*=\s*["\'][^"\']+["\']', "硬编码Secret"),
],
"XSS风险": [
(r'innerHTML\s*=', "直接设置innerHTML"),
(r'dangerouslySetInnerHTML', "React dangerouslySetInnerHTML"),
(r'v-html\s*=', "Vue v-html指令"),
],
}
findings = []
for category, checks in patterns.items():
for pattern, desc in checks:
matches = re.findall(pattern, diff, re.IGNORECASE)
if matches:
findings.append({
"category": category,
"detail": desc,
"matches": [m[:80] for m in matches],
"severity": "HIGH" if category == "硬编码密钥" else "MEDIUM"
})
return {
"security_issues": findings,
"messages": [
{"role": "security_scanner", "content": json.dumps(findings, ensure_ascii=False)}
]
}
def review_coordinator(state: ReviewState) -> dict:
"""协调Agent:整合所有分析结果"""
parts = ["# 代码审查报告\n"]
# 代码质量部分
parts.append(state.get("code_quality_report", ""))
parts.append("")
# 安全问题部分
parts.append("## 安全扫描结果\n")
issues = state.get("security_issues", [])
if issues:
for issue in issues:
icon = "🔴" if issue["severity"] == "HIGH" else "🟡"
parts.append(f"### {icon} [{issue['severity']}] {issue['category']}")
parts.append(f"- {issue['detail']}")
parts.append(f"- 匹配项: `{issue['matches'][0]}`")
parts.append("")
else:
parts.append("✅ 未发现安全问题\n")
report = "\n".join(parts)
return {"final_review": report}
# 构建工作流图
workflow = StateGraph(ReviewState)
workflow.add_node("analyzer", code_analyzer)
workflow.add_node("scanner", security_scanner)
workflow.add_node("coordinator", review_coordinator)
# 两个分析Agent并行执行,最后由coordinator汇总
workflow.set_entry_point("analyzer")
workflow.add_edge("analyzer", "scanner")
workflow.add_edge("scanner", "coordinator")
workflow.add_edge("coordinator", END)
app = workflow.compile()
# 运行示例
result = app.invoke({
"diff_content": """
+ def get_user(request):
+ user_id = request.args.get('id')
+ query = f"SELECT * FROM users WHERE id = {user_id}"
+ result = db.execute(query)
+ password = "admin123"
+ return result
""",
"file_paths": ["app/users.py"],
"code_quality_report": "",
"security_issues": [],
"style_issues": [],
"final_review": "",
"iteration": 0,
"messages": []
})
print(result["final_review"])
LangGraph的核心设计是共享状态(Shared State) 。所有Agent通过同一个ReviewState对象读写数据,而不是通过消息传递。这种设计让状态管理变得简单直观------你不需要考虑消息丢失、重复或乱序的问题。
代码中messages字段使用了Annotated[list, operator.add],这是一个巧妙的机制:当多个Agent同时往messages写入时,LangGraph会自动合并(而不是覆盖),确保并行执行时不丢数据。
5.2 CrewAI:技术调研Agent团队
CrewAI的设计哲学完全不同------它把多Agent协作抽象为"团队"和"任务",每个Agent有角色、目标和背景故事,通过自然语言描述来定义协作关系。这让代码极其简洁直觉。
python
# crewai_research.py - 技术调研Agent团队
from crewai import Agent, Task, Crew, Process
# 定义三个Agent,各有分工
researcher = Agent(
role="技术调研员",
goal="深入收集指定技术主题的核心资料和数据",
backstory=(
"你是一位在AI领域深耕8年的技术调研员,"
"擅长从学术论文、开源项目和技术报告中提取关键信息。"
"你的调研报告以数据翔实、来源可靠著称。"
),
verbose=True
)
critic = Agent(
role="技术评审",
goal="审视调研报告的准确性和完整性,指出盲点",
backstory=(
"你是一位严谨的技术评审专家,"
"特别擅长发现数据中的逻辑漏洞和未经验证的断言。"
"你的座右铭是:每一个数字背后都要有出处。"
),
verbose=True
)
writer = Agent(
role="技术写作者",
goal="将调研成果转化为清晰、有深度的技术分析文章",
backstory=(
"你是有10年经验的技术作者,"
"能把复杂技术讲得通俗但不肤浅。"
"你的文章在CSDN和掘金累计获得超过50万阅读量。"
),
verbose=True
)
# 定义任务序列
research_task = Task(
description=(
"调研 {topic} 的最新进展。"
"重点收集:1) 核心技术架构和关键参数 2) 主要竞争产品对比 "
"3) 行业应用案例 4) 开源生态状况"
),
expected_output="包含数据来源的结构化调研报告",
agent=researcher
)
review_task = Task(
description=(
"审查调研报告:1) 关键数据是否有可靠来源 "
"2) 是否遗漏了重要竞争者或技术方向 "
"3) 结论是否有逻辑跳跃"
),
expected_output="带标注的审查意见,标注通过/需修正/需补充",
agent=critic
)
writing_task = Task(
description=(
"基于调研报告和审查意见,撰写一篇技术分析文章。"
"要求:有数据支撑,有对比表格,有代码示例,"
"语言风格专业但不过于学术。"
),
expected_output="Markdown格式的完整技术文章",
agent=writer
)
# 组建团队并执行
crew = Crew(
agents=[researcher, critic, writer],
tasks=[research_task, review_task, writing_task],
process=Process.sequential
)
result = crew.kickoff(
inputs={"topic": "2026年Agentic AI多智能体协作技术"}
)
print(result)
CrewAI的API设计读起来像是在组建一个真实的项目团队------每个成员有角色定位,有明确的工作目标,有个人背景。任务之间通过Process.sequential串联,前一个任务的输出自动成为下一个任务的上下文。
这种设计的代价是灵活性不如LangGraph------你无法精细控制Agent的执行路径。但对于大多数常见场景(调研、写作、分析),CrewAI的抽象层级刚刚好。
5.3 框架选型建议
三个框架各有所长,选型取决于你的场景:
| 框架 | 最适合的场景 | 不太适合的场景 |
|---|---|---|
| LangGraph | 复杂工作流、需要条件分支和循环、生产系统 | 快速原型、非技术人员使用 |
| CrewAI | 内容生成、调研分析、快速验证想法 | 需要精确控制执行流的场景 |
| AutoGen | 科研实验、代码生成、对话式协作 | 企业级高并发服务 |
如果你刚开始接触Agent开发,建议从CrewAI入门------10分钟就能跑通一个Demo,快速建立对多Agent协作的直觉。等你有了一定经验,再转到LangGraph处理更复杂的业务逻辑。
六、Agentic AI面临的三个硬核挑战
说了这么多能力和工具,也得正视现实。Agentic AI目前还有三个关键技术难题没有完全解决。
6.1 长动作链的误差累积
一个复杂任务可能需要几十步甚至上百步操作。每一步都有可能产生偏差,而偏差会逐步累积。
举个例子:你要让Agent修复一个线上bug。它需要:定位问题文件→理解代码上下文→找到根因→设计修复方案→编写代码→运行测试→分析测试结果→必要时调整方案。假设每步的正确率是95%,8步下来整体正确率就降到了66%。
目前的主要缓解策略有两种:
自我反思循环:让Agent在每步执行后生成一个"检查点报告",验证当前状态是否符合预期。如果偏离,立即回退并调整策略。
分层架构:把长任务拆成多层,每层有独立的质量检查。高层负责规划和监督,低层负责具体执行。这样即使某一步出错,影响范围也局限于当前子任务,不会污染全局状态。
6.2 记忆管理
Agent长时间运行会积累大量上下文。随着历史信息增多,模型对早期指令和关键约束的"注意力"会逐渐稀释。
GLM-5.1的200K上下文窗口和稀疏注意力机制在一定程度上缓解了这个问题------稀疏注意力让模型在处理长序列时只关注最相关的部分,而不是平均分配注意力。但即便如此,超过一定长度后,记忆质量仍然会下降。
工程实践中常用的方案是分层记忆:
python
# 分层记忆管理系统(示意代码)
class AgentMemory:
"""三层记忆架构:工作记忆 → 短期记忆 → 长期记忆"""
def __init__(self, llm_client):
self.working_memory = [] # 当前任务的上下文,直接注入Prompt
self.short_term_memory = [] # 最近N轮对话的摘要
self.long_term_memory = [] # 关键事实和经验,持久化存储
self.llm = llm_client
def add_observation(self, content: str):
"""添加新观察到工作记忆"""
self.working_memory.append({
"content": content,
"timestamp": time.time()
})
# 工作记忆超出容量时,压缩到短期记忆
if len(self.working_memory) > 20:
self._compress_working_memory()
def _compress_working_memory(self):
"""将工作记忆压缩为摘要,移入短期记忆"""
summary_prompt = (
"将以下工作记忆压缩为3-5个关键要点,"
"保留所有重要的事实和决策:\n"
+ "\n".join(m["content"] for m in self.working_memory[-15:])
)
summary = self.llm.summarize(summary_prompt)
self.short_term_memory.append(summary)
# 只保留最近5条工作记忆
self.working_memory = self.working_memory[-5:]
def get_context(self, max_tokens: int = 4000) -> str:
"""组装当前可用的上下文"""
parts = []
# 长期记忆:总是包含关键事实
if self.long_term_memory:
parts.append("## 关键事实\n" + "\n".join(self.long_term_memory))
# 短期记忆:包含最近的摘要
if self.short_term_memory:
recent = self.short_term_memory[-3:]
parts.append("## 近期摘要\n" + "\n".join(recent))
# 工作记忆:当前任务上下文(最新、最详细)
if self.working_memory:
parts.append("## 当前上下文\n")
parts.extend(m["content"] for m in self.working_memory[-10:])
context = "\n\n".join(parts)
return context[:max_tokens]
这个三层架构的思路是:工作记忆保存最新的、最详细的上下文;短期记忆保存压缩后的历史摘要;长期记忆保存经过提炼的关键事实和经验教训。每次调用LLM时,按优先级组装上下文,在有限的token预算内最大化信息密度。
6.3 成本控制
多Agent系统意味着多次LLM调用。一个复杂任务可能触发几十次甚至上百次API请求。
假设你用GPT-5级别的模型,一个Agent工作流单次运行成本可能在0.5-2美元之间。如果是一个每天运行的生产系统,月成本可能达到数千美元。
这也是GLM-5.1的定价策略引起行业关注的原因------竞品1/5的价格,让多Agent协作在经济上变得可行。另一个降低成本的策略是路由分层:简单任务用小模型(如Qwen3-8B),只有需要深度推理时才调用大模型(如GLM-5.1或Claude Opus 4.6)。
七、现在入局Agentic AI的实操路径
聊了这么多技术细节,最后给想入局的开发者一条可落地的路径。
第一步:理解MCP协议(1-2天)
装一个Claude Desktop或Cursor IDE,配置几个MCP Server(推荐从文件系统和GitHub Server开始),实际体验AI如何主动调用工具。然后自己写一个简单的MCP Server------比如一个查询本地SQLite数据库的工具。跑通"AI自动发现工具→选择工具→调用工具→处理结果"的完整链路。
第二步:搭建一个真实的多Agent项目(3-5天)
找一个你日常工作中的真实痛点,用Agent系统来解决。几个适合入门的方向:
- 自动化代码审查:提交PR时自动检查代码质量、安全漏洞和风格问题
- 技术调研流水线:输入一个技术主题,自动输出调研报告
- 数据分析助手:连接数据库,自动生成分析报告和可视化图表
建议用CrewAI起步,它的学习曲线最平缓。等项目跑通后,如果需要更精细的控制,再迁移到LangGraph。
第三步:关注A2A生态(持续)
A2A协议目前还在早期阶段,但Google的推动力和已有的企业支持者阵容(包括SAP、Salesforce、Atlassian等)意味着它的生态会快速成熟。提前理解A2A的Agent Card、Task、Message等核心概念,等生态爆发时你就能快速接上。
写在最后
2026年AI行业最大的变化,不是某个模型刷新了跑分,而是整个范式从"训练更好的模型"转向"让已有的模型更好地工作"。GLM-5.1的8小时续航、MCP和A2A的协议标准化、LangGraph和CrewAI的框架成熟,这些看似独立的事件,其实都在推动同一件事:让AI从"答题机器"进化为"自主工作者"。
如果你还在纠结"该学哪个模型"、"该用哪个框架",我的建议是:别纠结了,先动手搭一个Agent系统。在搭的过程中你会发现,比选择更重要的是理解------理解Agent如何规划、如何使用工具、如何与其他Agent协作、如何管理记忆。这些能力,不会因为下一个模型发布而过时。
抛两个问题供大家讨论:
- 多智能体协作最先会在哪个领域实现大规模商业化?是软件开发、数据分析,还是企业运营?
- MCP和A2A两个协议,你认为谁会更快成为行业标配?或者它们会走向融合?