\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 Loop 实现中的关键问题：为什么要异步？如何管理不同状态？

\section{为什么要异步？}
\begin{importantbox}{异步的必要性}
Agentic Loop 中，不同 sample 的 Multi-turn 步数不同。如果同步等待最慢的 sample，效率极低。异步执行让已完成的 sample 先返回，最大化 GPU 利用率。
\end{importantbox}

\section{状态管理}
Agentic Loop 中每个 sample 可能处于不同状态：
\begin{itemize}
  \item \textbf{Generating}：正在生成文本
  \item \textbf{Tool Calling}：正在执行工具
  \item \textbf{Waiting}：等待工具返回
  \item \textbf{Done}：已完成所有轮次
\end{itemize}

状态转换由配置文件控制：配置了 tool 则调用 tool，配置了 interaction 则模拟用户反馈。

\subsection{本章小结}
异步执行和精细的状态管理是 Agentic Loop 高效运行的关键。

\newpage
\section{工程提醒：状态越多，越需要明确边界}
Agentic Loop 的异步执行能力本质上依赖于状态机。如果状态定义不清、转换条件模糊，系统很容易在多轮工具调用里出现卡死、重复执行或错误回收资源的问题。

\begin{warningbox}{状态管理常见风险}
\begin{itemize}
  \item sample 迟迟无法进入 Done，导致队列泄漏
  \item 工具返回后没有正确切回 Generating
  \item 配置项过多，但转换逻辑没有统一入口
\end{itemize}
\end{warningbox}

\subsection{本章小结}
异步系统最怕“状态说不清”。把状态边界和转换条件写清楚，比盲目追求更多并发更重要。

\newpage
\section{总结与延伸}
\begin{enumerate}
  \item 异步执行解决了不同 sample 步数不同的效率问题
  \item 状态管理确保每个 sample 在正确的阶段执行正确的操作
  \item 配置驱动的设计提供了灵活性
\end{enumerate}
\end{document}
