Agentic Thinking 拆解:自适应思考与连贯思考如何改变 Agent 任务链路
Agentic Thinking 拆解:自适应思考与连贯思考如何改变 Agent 任务链路
大模型从"会聊天"到"会干活",中间横亘着一道任务链路鸿沟:面对一个需要浏览网页、读取文档、调用十余个函数、运行并调试代码的复杂任务,模型必须在何时思考、思考多久、如何把一次行动的结果反馈回下一步决策之间持续作出判断。传统做法是让外部框架(planner、orchestrator、ReAct 循环)替模型编排这一切,而 Agent 模型要走通端到端,就必须把"思考调度"本身内化成模型能力。
这正是 Nex-N2.5-Pro 所属的Agentic Thinking框架试图解决的问题。它以**自适应思考(Adaptive Thinking)与连贯思考(Coherent Thinking)**两条机制为骨架,配合多模态工具调用闭环,让模型在真实环境的长程任务中持续行动、自我修正。本文结合仓库源码(chat_template.jinja、config.json、processor_config.json)与官方基准数据,拆解这套机制的工程实现与任务链路价值。
一、两条思考机制的定位差异:调"要不要想"与"想得连不连贯"
Agentic Thinking 框架的核心,是把"推理预算"和"推理连续性"从隐式行为变成可配置、可观测、可干预的显式机制。Nex-N2.5 用同一个reasoning_effort参数区分出三种思考模式,对应仓库 README.md 中 "Thinking Modes" 一节:
reasoning_effort | 模式 | 行为 |
|---|---|---|
"none" | 非思考模式 | 直接作答,不产出推理轨迹 |
"medium"(默认) | 自适应思考 | 由模型自行判断是否需要思考、思考多少 |
"high" | 强制思考 | 每次响应前都先进入推理 |
自适应思考:把"思考预算"交给模型动态分配
自适应思考解决的是推理开销与任务复杂度错配的问题。若所有请求一律强制深度推理,简单指令会白白消耗延迟与 token;若一律不思考,复杂任务又会"脱口而出"地犯错。medium模式将决策权下放给模型:简单问答直接应答,疑难任务自动进入推理,思考量随任务难度伸缩。
这一机制在模板层有直接的工程对应。查看 chat_template.jinja 末尾的生成提示部分:
{%- if add_generation_prompt %} {{- '<|im_start|>assistant\n' }} {%- if reasoning_effort is not defined or reasoning_effort is none %} {{- '<think>' }} {%- elif reasoning_effort == 'none' %} {{- '<think>\n\n</think>\n\n' }} {%- elif reasoning_effort == 'high' %} {{- '<think>\n' }} {%- else %} {{- '<think>' }} {%- endif %} {%- endif %}可以看到reasoning_effort直接驱动模板在<think>标签处注入不同的"思考起始状态":none生成一个立即闭合的空思考块,模型被引导跳过推理直接作答;high打开思考块并换行等待模型填充推理内容;默认(medium)则不替模型预设思考长度。思考轨迹与最终答案之间用<think>...</think>显式隔离,为下游推理解析器(--reasoning-parser qwen3)的分离提供了稳定的格式锚点。
连贯思考:让推理轨迹跨越多次工具调用
自适应思考解决"想不想、想多久",连贯思考则解决多步行动中推理是否断裂的问题。在 Agent 任务链路里,模型往往要连续发起多次工具调用——第一次调用的结果往往决定第二次调用的参数。若每次行动都被当作孤立回合处理,模型就会"失忆",链路随之瓦解。
连贯思考的机制是:把每次工具调用前后的推理轨迹(reasoning_content)完整保留并回灌进上下文,使模型对"我为什么走到这一步、下一步做什么"保持连续认知。在 chat_template.jinja 的 assistant 消息渲染逻辑中,模板会先从消息内容里切出<think>块:
{%- if '</think>' in content %} {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %} {%- set content = content.split('</think>')[-1].lstrip('\n') %} {%- endif %}随后将思考内容与工具调用一并封装进同一条 assistant 消息(<think>...</think>+<tool_call>...</tool_call>)。这意味着推理轨迹不是一次性草稿,而是与行动序列共同构成可回放、可延续的"思考-行动历史"——这正是连贯思考区别于普通 CoT 的关键:推理不只是为了让答案更准,更是为了给后续行动提供上下文锚点。
模板还专门处理了多步工具调用的消息折叠:当连续多条消息都是<tool_response>时,它们会被合并进同一个 user 消息块,避免"思考-行动-观察"循环中因消息结构碎片化而打断推理连续性:
{%- if loop.previtem and loop.previtem.role != "tool" %} {{- '<|im_start|>user' }} {%- endif %} {{- '\n<tool_response>\n' }} {{- content }} {{- '\n</tool_response>' }}机制对比小结
| 维度 | 自适应思考(Adaptive) | 连贯思考(Coherent) |
|---|---|---|
| 核心问题 | 是否思考、思考多少 | 推理是否跨行动保持连续 |
| 控制手段 | reasoning_effort(none/medium/high) | 推理轨迹回灌 + 思考/行动消息封装 |
| 模板层实现 | 生成提示的<think>块注入策略 | <think>切分、<tool_response>折叠、multi-step 检测 |
| 收益 | 延迟与 token 成本随任务复杂度伸缩 | 长链路任务不"失忆",行动可解释可追溯 |
二、端到端任务执行与能力迁移:从"会单步"到"会整链路"
自适应与连贯思考的组合,在工程上支撑了端到端任务执行:模型不需要外部 planner 代为拆解任务,而是自己完成"理解目标 → 规划步骤 → 调用工具 → 检验结果 → 调整计划"的完整闭环。这一点与社区对 Agentic Thinking 框架的观察一致——其核心卖点正是端到端执行与跨任务的稳定能力迁移。
MoE 架构:能力迁移的物理基础
端到端执行要求模型在同一条前向链路上同时承载规划、推理、工具协议、代码生成等多类能力,这恰恰是 MoE 架构的优势所在。看 config.json 的文本配置:
- 512 个专家、每 token 激活 10 个(
num_experts: 512/num_experts_per_tok: 10),配合moe_intermediate_size: 1024的紧凑专家结构; - 60 层混合注意力:每 4 层插入一个
full_attention,其余为linear_attention(见layer_types与full_attention_interval: 4),在线性注意力承接超长上下文的低成本优势的同时,以全注意力层保证关键位置的精确建模; - 262144 token 上下文(
max_position_embeddings),为长任务链路中的完整"思考-行动-观察"历史提供存放空间; - 采用FP8 块级量化(
quant_method: compressed-tensors,FP8_BLOCK,权重按 128×128 块量化),使 397B 总参、17B 激活的 Pro 档(官方站点数据)能在 8×H100 单机上完成部署。
社区对 Nex-N2 系列的解析也印证了这一设计逻辑:MoE 的专家路由天然形成场景隔离——推理、代码、工具协议等子能力各占一组专家,任务类型切换时只需激活对应子集,能力迁移不必以牺牲既有能力为代价。这为 Agent 模型在"编码 → 浏览器操作 → 数据分析"之间平滑迁移提供了参数层面的解释。
基准数据:端到端链路能力的外化
端到端执行能力最终要落在长链路评测上。仓库 README.md 公布了 Nex-N2.5-Pro 在 Agent 与工具类基准上的成绩(temperature=0.7, top_p=0.95, top_k=40):
| 基准 | Nex-N2.5-Pro | 考察点 |
|---|---|---|
| Terminal-Bench 2.1 | 82.7 | 终端内自主执行命令、排错 |
| SWE-Bench Pro | 61.2 | 真实仓库级软件工程修复 |
| Toolathlon Verified | 68.5 | 多工具组合调用 |
| GDPval-AA v2 | 1628 | 长程目标导向任务 |
| Job Bench | 41.4 | 真实工作任务完成度 |
| BrowseComp | 89.7 | 复杂检索式浏览 |
值得注意的细节是 BrowseComp 的评测注记:当 token 用量超过上下文窗口 60% 时,采用 Summary 上下文压缩策略。这说明模型在超长链路中具备对历史上下文的主动压缩能力——这是端到端执行在 256K 上下文之外的另一道保险,避免长任务因上下文膨胀而提前"截断失忆"。
部署链路:把机制落到服务端
端到端能力最终需要通过推理服务暴露。仓库给出 Pro 档的标准部署(README.md "Docker Deployment"):
docker run --gpus all --shm-size 32g --ipc=host \ -p 30000:30000 \ -v /path/to/your/model:/model \ nexagi/sglang:v0.5.18-nex-patch \ python3 -m sglang.launch_server \ --model-path /model \ --tp 8 \ --host 0.0.0.0 --port 30000 \ --reasoning-parser qwen3 \ --tool-call-parser qwen3_coder \ --chat-template /path/to/nex-N2.5-Pro/chat-template.jinja \ --mamba-scheduler-strategy extra_buffer两个解析器参数分别对应前文的两条机制:--reasoning-parser qwen3负责把<think>推理轨迹从最终答案中分离(连贯思考的服务端出口),--tool-call-parser qwen3_coder负责解析工具调用结构(行动出口)。启动时显式挂载chat-template.jinja,则确保reasoning_effort参数在服务端被正确翻译为思考模式。
三、多模态工具调用闭环:思考-行动-观察的完整循环
端到端执行的最后一块拼图,是视觉反馈。Nex-N2.5 官方口径将这一点表述得很明确:视觉不再是单纯的输入模态,而是 Agent 感知环境、验证结果、推进任务的关键接口——模型操作电脑、浏览网页、运行程序之后,需要"看"到界面变化来确认行动是否生效,再决定下一步动作。这就是思考-行动-观察(Think-Act-Observe)循环。
多模态输入:环境感知的工程底座
看 processor_config.json:模型通过Qwen3VLProcessor统一处理图像与视频。图像侧使用 Qwen2VLImageProcessor(patch 16、merge 2),视频侧支持最多 768 帧、2 fps 采样(max_frames: 768、fps: 2),意味着模型不仅能看静态截图,还能消费短视频片段作为环境反馈。对应地,config.json 的vision_config定义了 27 层视觉塔(hidden 1152 → 投影到 4096),并保留image_token_id、video_token_id与vision_start/end_token_id等特殊 token。
这些视觉 token 在 chat_template.jinja 中被渲染为结构化占位:
{{- 'Picture ' ~ image_count.value ~ ': ' }} {{- '<|vision_start|><|image_pad|><|vision_end|>' }}注意模板还会自动编号(Picture 1:、Video 1:),并且禁止在 system 消息中携带图像/视频(raise_exception('System message cannot contain images.'))——多模态内容只允许出现在对话侧,保证环境反馈不会被系统指令污染。
行动协议:结构化工具调用与反馈回灌
观察之后是行动。模板为函数调用定义了严格的 XML 式协议(见 chat_template.jinja 的 system 注入部分):
<tool_call> <function=example_function_name> <parameter=example_parameter_1> value_1 </parameter> </function> </tool_call>协议要求参数可跨多行,并明确"调用前可附自然语言推理、调用后不得追加解释"——这一约束正是为连贯思考服务的:推理放在调用之前,作为行动的动机与上下文;行动之后,<tool_response>以独立消息回灌,进入下一轮观察与思考。模板还要求每个函数参数tojson序列化,确保嵌套结构参数(JSON 对象、数组)在协议中无损传递。这套格式与服务端--tool-call-parser qwen3_coder配合,构成"模型发调用 → 解析器提取 → 执行器运行 → 结果回灌"的完整闭环。
闭环在基准上的体现
多模态闭环能力在电脑操作与视觉基准上得到直接验证。Nex-N2.5-Pro 的成绩(README.md):
| 基准 | Nex-N2.5-Pro | 说明 |
|---|---|---|
| OSWorld-Verified | 82.2 | 图形界面真实操作 |
| OSWorld-G | 87.4 | 通用 GUI 操作(同榜最佳) |
| WebArena-Verified | 67.6 | 真实网站任务执行 |
| Vision2Web | 68.2 | 视觉稿 → 网页还原 |
| OmniDoc | 92.2 | 复杂文档理解 |
其中 OSWorld 类基准的评估由官方 NexCUA harness 完成,接地坐标统一归一化到 0–1000 刻度——这意味着模型输出屏幕坐标、执行点击/输入、再通过截图验证界面变化,正是"视觉反馈驱动自我修正"的标准动作序列。OSWorld-G 拿到同榜第一(87.4),从数据侧印证了"所见即行动"(Vision into Action)的闭环有效性。
结语:Agent 任务链路的范式位移
把三条线索拼起来,Agentic Thinking 的完整图景是清晰的:
- 自适应思考把推理预算变成可调参数,让模型按任务复杂度弹性分配思考成本——解决"想太多"与"想太少"的两难;
- 连贯思考让推理轨迹跨越工具调用持续存在,配合
reasoning_effort、<think>切分与多步消息折叠,为长链路任务提供"不中断的思维流"; - 多模态工具闭环以视觉为反馈通道,用"思考-行动-观察"循环替代一次性问答范式,让模型在真实环境中持续行动、自我修正。
这三者不是并列的锦上添花,而是层层支撑的因果链:自适应思考决定行动的时机与深度,连贯思考保证多步行动的逻辑一致性,视觉反馈则让每一步行动都能被环境验证。Nex-N2.5-Pro 的仓库与基准数据表明,这一框架已经从架构设计(MoE 专家隔离、混合注意力、256K 上下文)、模板协议(chat template 的思考与工具封装)到服务化部署(reasoning parser + tool-call parser)形成了完整落地。对开发者而言,这意味着一件事:Agent 应用的编排逻辑,正在从外部框架向模型内部迁移——而这正是 Agent 任务链路的下一个范式。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考