当一个开源模型能连续自主工作8小时——拆解2026年Agentic AI的技术密码

当一个开源模型能连续自主工作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 Google
底层技术 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协作、如何管理记忆。这些能力,不会因为下一个模型发布而过时。

抛两个问题供大家讨论:

  1. 多智能体协作最先会在哪个领域实现大规模商业化?是软件开发、数据分析,还是企业运营?
  2. MCP和A2A两个协议,你认为谁会更快成为行业标配?或者它们会走向融合?

参考链接

相关推荐
LitchiCheng2 小时前
一起读《大模型驱动的具身智能:架构、设计与实现》- 注意力机制Attension Mechanism
人工智能·python·开源
计算机魔术师2 小时前
【AI面试八股文 Vol.1.1 | 专题4:Conditional Edge】Conditional Edge:动态路由分支逻辑实现
开源
少年、潜行3 小时前
【代码开源】基于STM32的智能路灯控制系统设计
stm32·嵌入式硬件·开源·智能路灯
Hommy883 小时前
【开源剪映小助手】媒体处理功能
开源·媒体·剪映小助手
AI自动化工坊16 小时前
SemaClaw开源框架实践指南:从提示工程到安全工程的AI代理基础设施变革
人工智能·开源·ai agent·semaclaw
起个名字总是说已存在19 小时前
github开源AI技能:Awesome DESIGN.md让页面设计无限可能
人工智能·开源·github
SuperHeroWu721 小时前
【鸿蒙基础入门】概念理解和学习方法论说明
前端·学习·华为·开源·harmonyos·鸿蒙·移动端
qwfy1 天前
瑞幸 UI 上 pub.dev 了 —— 22 个 Flutter 组件,与微信小程序版双端对齐
flutter·开源