\documentclass[a4paper]{article}
\usepackage[fontset=fandol]{ctex}
\usepackage{amsmath, amssymb}
\usepackage{graphicx}
\usepackage[margin=2.5cm]{geometry}
\usepackage[most]{tcolorbox}
\usepackage{etoolbox}
\usepackage{listings}
\usepackage{hyperref}
\usepackage{booktabs}
\usepackage{float}
\newtcolorbox{knowledgebox}[1]{enhanced, colback=blue!5!white, colframe=blue!75!black, colbacktitle=blue!75!black, coltitle=white, fonttitle=\bfseries, title=#1, attach boxed title to top left={yshift=-2mm, xshift=2mm}, boxrule=1pt, sharp corners}
\newtcolorbox{importantbox}[1]{enhanced, colback=yellow!10!white, colframe=yellow!80!black, colbacktitle=yellow!80!black, coltitle=black, fonttitle=\bfseries, title=#1, sharp corners}
\newtcolorbox{warningbox}[1]{enhanced, colback=red!5!white, colframe=red!75!black, colbacktitle=red!75!black, coltitle=white, fonttitle=\bfseries, title=#1, sharp corners}
\lstset{language=Python, basicstyle=\ttfamily\small, keywordstyle=\color{blue}, stringstyle=\color{red!60!black}, commentstyle=\color{green!60!black}, breaklines=true, frame=single, numbers=left, numberstyle=\tiny\color{gray}, captionpos=b, extendedchars=false}
\newcommand{\notetitle}{veRL Agentic Loop 实践}
\newcommand{\noteauthors}{基于公开课程资料整理}
\newcommand{\notedate}{2025}
\newcommand{\videochannel}{五道口纳什}
\newcommand{\videopublishdate}{2025}
\newcommand{\videoduration}{约20分钟}
\newcommand{\videourl}{}
\newcommand{\videocoverpath}{cover.jpg}
\newcommand{\repourl}{https://github.com/hqhq1025/ai-course-notes}

% Footer with repo info
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[C]{\thepage}
\fancyfoot[R]{\footnotesize\color{gray}\href{\repourl}{AI Course Notes}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\begin{document}
\begin{titlepage}\centering
{\Large 课程笔记\par}\vspace{1.2cm}{\huge\bfseries \notetitle\par}\vspace{0.8cm}{\large \noteauthors\par}\vspace{0.3cm}{\large \notedate\par}\vspace{1.2cm}
\ifdefempty{\videocoverpath}{}{\includegraphics[width=0.82\textwidth,height=0.45\textheight,keepaspectratio]{\videocoverpath}\par}
\vfill
\begin{tcolorbox}[width=0.9\textwidth, colback=black!2!white, colframe=black!60, sharp corners]
\textbf{视频作者/频道}：\videochannel\par\textbf{发布日期}：\videopublishdate\par\textbf{视频时长}：\videoduration\par
\ifdefempty{\videourl}{}{\textbf{视频链接}：\href{\videourl}{\nolinkurl{\videourl}}\par}\par
\textbf{项目主页}：\href{\repourl}{\nolinkurl{\repourl}}\par
\end{tcolorbox}
\end{titlepage}
\tableofcontents\newpage

\section{引言}
本期正式进入 Agentic RL 训练的核心：veRL 中的 Agentic Loop 实现。

\begin{importantbox}{Agentic Loop 的概念}
Agent 通过多轮 think-act-observe 循环与环境交互。在 RL 训练中，模型需要在每一步：
\begin{enumerate}
  \item 生成（Generate）：输出文本或 tool call
  \item 调用工具（Tool Call）：执行代码、查询 API 等
  \item 获取反馈（Observe）：拿到工具返回结果
  \item 继续生成：基于反馈继续推理
\end{enumerate}
这个 Multi-turn 过程由配置文件控制。
\end{importantbox}

\section{veRL 的 Agentic Loop 架构}
核心代码文件：\texttt{agentloop.py}，包含：
\begin{itemize}
  \item \texttt{AgentLoopManager}：统一管理所有流程
  \item \texttt{AgentLoopWorker}：执行具体的 Agent 逻辑
  \item \texttt{AgentLoopBase}：抽象基类，需要自定义 \texttt{run} 方法
  \item Server Manager：管理推理服务
\end{itemize}

\section{generate\_sequence 方法}
\texttt{AgentLoopManager} 的 \texttt{generate\_sequence} 方法是核心，将所有组件统一管理起来。

\subsection{本章小结}
veRL 的 Agentic Loop 提供了完整的 Multi-turn RL 训练框架。

\section{系统视角：Manager、Worker 与 Loop 的分工}
理解 veRL 的 Agentic Loop，不只是记住几个类名，而是要看清它如何把多轮推理、工具调用和服务管理拆开。Manager 负责 orchestration，Worker 负责执行，LoopBase 负责定义抽象接口，这种分层使系统可以在不同任务之间复用基础设施。

\begin{knowledgebox}{为什么这种架构适合 Agentic RL}
\begin{itemize}
  \item 多轮循环天然需要统一的状态管理
  \item 工具调用与模型推理通常要分模块复用
  \item 训练时要同时照顾 rollout、server 与任务逻辑
\end{itemize}
\end{knowledgebox}

\subsection{本章小结}
Agentic Loop 的重点不是某个类写得多复杂，而是它把 think-act-observe 这套交互逻辑抽象成了可复用的系统骨架。

\newpage
\section{总结与延伸}
\begin{enumerate}
  \item Agentic Loop = Multi-turn 的 think-act-observe 循环
  \item veRL 通过 AgentLoopManager 统一管理
  \item 可自定义 Agent 逻辑（SingleTool, TwoAgents 等）
\end{enumerate}
\end{document}
