96SEO 2026-06-13 02:14 5
0x02 Uni-Agent 关键技术
探测算法: standalone = tokenize with_boundary = tokenize boundary = with_boundary末尾去掉standalone → 从后找Zui后一个EOS → EOS之后示例 : standalone: with_boundary: 从后找Zui后一个EOS: 倒数第1个 ↑ EOS之后: ← 这就是 message_boundary_tokens
核心思路构造一个带历史上下文的消息序列和一个独立消息,两者的 token 序列差异就是模板在消息之间插入的"胶水 token"。然后从这些胶水 token 中找到 EOS 之后的部分——那就是新 turn 的开头标记。

说实话,Uni-Agent 的技术细节挺复杂的,哈哈,但咱就是说咱们一步步来分析,你懂的。
┌──────────────────────────────────────────────────────────────────┐│ prompt_ids: || response_mask: || ↑ tool observation, 不参与 RL loss |└──────────────────────────────────────────────────────────────────┘
SPLIT + OUTPUT:从累积序列到训练样本
当 Agent 完成所有轮次convert_to_agent_output 将累积的完整序列拆分为训练就绪的 AgentLoopOutput
Layer : staleness_threshold max_required_samples = required_samples × × trigger_parameter_sync_step 当 staleness_samples>= max_required_samples → pause rolloutLayer : trigger_parameter_sync_step 每 N 步同步参数,限制参数Zui大滞后步数Layer : Partial Rollout FullyAsyncLLMServerClient 在 preempt 后支持断点续传 partial_rollout=True: Yi完成 trajectory 先入 MessageQueue → Trainer 不等被 preempt 的长 trajectory
Partial Rollout 的工作方式是:当某个 trajectory 被 preempt 时同一个 batch 中其他Yi完成的 trajectory 不等待它——直接进入 MessageQueue 供 Trainer 消费。被 preempt 的 trajectory 由 FullyAsyncLLMServerClient 自动重试。Uni-Agent 不感知这个过程——verl 层透明处理。
害,咱得承认,这个设计挺巧妙的,你懂的。
rollout_cache 的生命周期是围绕一个核心循环展开的:
rollout_cache 根据 Model 后端不同,有两种完全不同的结构。这不是设计上的不一致——而是需求的不同决定了结构的不同。
核心循环是 QUERY → APPEND 的反复交替——每次模型生成后追加 response token,然后执行工具获取 observation 后追加 tool token。这个循环一直持续到 Agent 完成任务,Zui后通过 SPLIT + OUTPUT 产出训练的 AgentLoopOutput。
退出后我们得到:
注意,因为:
# agent_loop.py:-model_config = { "client": self.server_manager, # verl 注入 → 转交 AgentChatModel "tokenizer": self.tokenizer, # verl 注入 → 转交 AgentChatModel "max_model_len": max_model_len, # verl config → 转交 AgentChatModel "sampling_params": sampling_params,}chat_model = AgentChatModel
封装后AgentChatModel 通过 self.client.generate 调用推理引擎,完全不依赖 verl 的类型系统。这意味着:
"为什么百度不收录"这个问题,咱也不太清楚,哈哈,但有时候可Neng是因为内容不够独特或者geng新频率不够高,说实话。
ToolAgentLoop 是为轻量本地 tool 调用设计的——在 Python 进程内调用 FunctionTool,每次 tool call 独立无状态,是一个通用的 ReAct 状态机实现。
────────────────────── Step : Rollout ──────────────────────Batch = 对每个 prompt: 重复 n_resp_per_prompt= 次 → AgentLoopOutput等待 ALL ×= 个 rollout 完成────────────────────── Step : Train ──────────────────────收集所有 AgentLoopOutput → 计算 advantage → Policy gradient update────────────────────── Step : Sync ──────────────────────geng新后参数同步到 rollout 引擎 → 回到 Step
. Fully Async 模式
使用 verl.experimental.fully_async_policy.fully_async_main,hybrid_engine=False,rollout_mode="async"。
Uni-Agent 没有使用 VeRL 的ToolAgentLoop,而是用UniAgentLoop 实现了上述闭环。Uni-Agent 是目前唯一将 Agent 交互栈与 verl Agentic RL 训练管线深度集成的开源框架。
"Agentic-first"决定了 Uni-Agent 与 OpenHands / SWE-Agent 的本质区别——不是"Neng不Neng跑 Agent",而是它把 Task → Agent推理 → Trajectory → Reward → RL Update → Better Model这一闭环Zuo成了可复用基础设施。
"推理 = 训练,同一入口"
"Agentic-first"
...
. 接口契约"Agentic-first"的核心主张Ke以用一句话概括:同一套 AgentInteraction.run 同时服务推理与训练 。环境必须被系统管理而不是临时拼接;reward 计算必须发生在环境可访问的时刻; rollout_cache / response_mask / extra_fields 必须天然面向 RL消费。
...
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback