Agent Lightning 深度解析:微软开源 AI Agent 训练框架——零代码改动,让任何 AI Agent 学会「自我进化」
作者:程序员茄子
日期:2026-05-16
标签:#AgentLightning #强化学习 #AI Agent #微软开源 #LLM训练 #LangChain #OpenAI
引言:AI Agent 的「训练困境」
2025 年到 2026 年,AI Agent 的爆发有目共睹。从 LangChain、AutoGen 到 CrewAI,各种 Agent 框架层出不穷。但一个核心问题始终没有解决:
如何让 AI Agent 在执行任务的过程中持续进化?
你花了几周时间调 prompt、设计 workflow,上线后发现 Agent 还是会在边缘 case 上翻车。你想用强化学习(RL)来优化它,但发现:
- 框架锁定:现有 RL 训练方案都和特定 Agent 框架深度绑定,换框架就得重写训练流程
- 代码侵入性强:要在 Agent 代码里到处插入 RL 相关的 hook,维护成本爆炸
- 多 Agent 系统难处理:现实中的 Agent 系统往往是多个子 Agent 协作,现有方案无法选择性地只优化其中某一个
微软研究院在 2025 年 8 月扔出了一颗重磅炸弹:Agent Lightning —— 一个声称可以用「几乎零代码改动」来训练任何 AI Agent 的框架。
截至 2026 年 5 月,这个项目在 GitHub 上已经收获了 11570+ Star,成为 AI Agent 训练领域最热门的开源项目之一。
这篇文章,我们会深入剖析 Agent Lightning 的技术架构、核心算法、实战案例,并给出完整的代码示例。读完你会明白:为什么这个框架可能会成为 AI Agent 训练的事实标准。
目录
- 现有方案的痛点分析
- Agent Lightning 核心设计哲学
- 技术架构深度剖析
- LightningRL 算法: credit assignment 的秘密
- 实战:用 RL 训练一个 Text-to-SQL Agent
- 实战:集成 LangChain Agent
- Youtu-Agent 的 128 GPU 大规模训练案例
- 性能优化与工程实践
- 与其他方案的对比
- 总结与展望
1. 现有方案的痛点分析
1.1 传统 RL 训练 Agent 的方式
在 Agent Lightning 出现之前,如果你想用强化学习来优化一个 AI Agent,通常有两条路:
方案一:Sequence Concatenation with Masking(序列拼接 + Mask)
把 Agent 的整个执行轨迹(trajectory)拼成一个长序列,然后用 Transformer 的 causal attention 来做训练。问题是:
- Agent 的执行逻辑(比如循环调用工具、多 Agent 协作)被强行「压平」成了序列,失去了结构信息
- Mask 策略复杂,容易出错
- 不支持动态 workflow(比如 Agent 根据中间结果决定下一步)
方案二:框架深度绑定
比如 RLlib + 某个特定 Agent 框架,你需要在 Agent 代码里插入大量 RL 相关的 hook:
# 传统方式:代码侵入性强
class MyAgent:
def __init__(self):
self.rl_hook = RLHook() # 侵入性代码
def run(self, task):
self.rl_hook.on_episode_start()
# ... Agent 逻辑 ...
self.rl_hook.on_tool_call(action, observation)
# ... 更多逻辑 ...
self.rl_hook.on_episode_end(reward)
这种方式的问题:
- 换一个 Agent 框架就要重写训练代码
- 维护成本高,和生产代码耦合严重
- 无法选择性地只训练多 Agent 系统中的某一个
1.2 Agent Lightning 的破局思路
微软团队的洞察是:Agent 的执行过程本质上是一个 Markov Decision Process(MDP),与其把 RL 训练耦合到 Agent 代码里,不如把 Agent 的执行轨迹「观测」下来,然后统一转换成 RL 训练需要的 transition 数据。
这就是 Agent Lightning 的核心设计哲学:Training-Agent Disaggregation(训练与 Agent 执行完全解耦)。
2. Agent Lightning 核心设计哲学
2.1 设计目标
Agent Lightning 的设计目标非常激进:
| 目标 | 实现方式 |
|---|---|
| 零代码改动 | 通过 tracer 自动采集 Agent 执行轨迹,无需修改 Agent 代码 |
| 框架无关 | 定义统一的 data interface,任何框架的 Agent 都能接入 |
| 选择性优化 | 在多 Agent 系统中,可以只训练某一个 Agent |
| 算法可扩展 | 内置 RL、APO(自动 prompt 优化)、SFT,也支持自定义算法 |
2.2 核心抽象
Agent Lightning 定义了三个核心抽象:
┌─────────────────────────────────────────────────────┐
│ Your Agent Code │
│ (LangChain / OpenAI / AutoGen / CrewAI / ...) │
└──────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Tracer (观测层) │
│ - 自动采集 prompt / tool call / observation │
│ - 无需修改 Agent 代码(几乎) │
└──────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ LightningStore (统一数据接口) │
│ - 把异构的 Agent 执行轨迹转换成统一格式 │
│ - 支持 trajectory → transition 分解 │
└──────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Algorithm Zoo (算法层) │
│ - LightningRL (内置 RL 算法) │
│ - APO (Automatic Prompt Optimization) │
│ - SFT (Supervised Fine-Tuning) │
│ - 支持自定义算法 │
└──────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Trainer (训练调度器) │
│ - 协调 rollout → train → update 循环 │
│ - 支持分布式训练 │
└─────────────────────────────────────────────────────┘
2.3 「几乎零代码改动」是怎么做到的?
关键在于 agl.emit_xxx() 辅助函数和 Tracer 机制。
几乎零改动的意思:
- 如果你的 Agent 已经使用了 OpenAI 兼容的 API,Agent Lightning 可以通过 monkey-patch 的方式自动注入 tracer,完全不用改代码
- 如果用了其他框架,只需要加一行
agl.emit_xxx()来标记关键节点(比如 reward 计算)
示例(OpenAI Agent,零改动):
import agentlightning as agl
# 只需要初始化 tracer,不需要改 Agent 代码
agl.init_tracer()
# 你的 Agent 代码,完全不变
from openai import OpenAI
client = OpenAI()
def my_agent(task):
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": task}]
)
return response.choices[0].message.content
# Tracer 自动采集了整个执行轨迹
3. 技术架构深度剖析
3.1 Tracer:Agent 执行观测层
Tracer 是 Agent Lightning 的「眼睛」。它的职责是:
- 采集 prompt:记录每次 LLM 调用的输入
- 采集 tool call:记录 Agent 调用了哪些工具,参数是什么
- 采集 observation:记录工具返回的结果
- 采集 reward:记录环境给出的奖励信号(这个通常需要用户标记)
Tracer 支持两种采集模式:
模式一:自动采集(推荐)
通过 monkey-patch OpenAI / LangChain / AutoGen 的 API 调用:
import agentlightning as agl
# 自动 patch OpenAI 的 API 调用
agl.init_tracer(auto_patch=["openai", "langchain"])
模式二:手动标记(更灵活)
在关键节点手动调用 agl.emit_xxx():
import agentlightning as agl
def my_agent(task):
# 标记一个 prompt
prompt = f"请解决这个问题:{task}"
agl.emit_prompt(prompt)
# 调用 LLM
response = call_llm(prompt)
# 标记 response
agl.emit_response(response)
# 调用工具
tool_result = call_tool(response)
agl.emit_tool_call("search", response, tool_result)
# 计算 reward(由用户定义)
reward = compute_reward(tool_result)
agl.emit_reward(reward)
3.2 LightningStore:统一数据接口
LightningStore 是 Agent Lightning 的「大脑」。它负责:
- 接收 Tracer 采集的 span 数据
- 把异构的执行轨迹转换成统一的 transition 格式
- 支持 hierarchical credit assignment(层次化功劳分配)
3.2.1 数据模型
LightningStore 内部使用的数据模型:
Task
└── Episode (一次完整的 Agent 执行)
└── Span (一个执行步骤)
├── prompt: str
├── response: str
├── tool_calls: List[ToolCall]
├── observation: str
└── reward: float (可能是延迟的)
关键洞察:Agent 的执行轨迹是一个树结构(因为 LLM 可能有多轮对话、多分支),而传统 RL 训练需要的是扁平的 transition 数据 (state, action, reward, next_state)。
LightningStore 的核心算法就是:如何把树结构的轨迹分解成扁平的 transition。
3.3 LightningRL:层次化 RL 算法
LightningRL 是 Agent Lightning 内置的 RL 算法,核心创新在于 Credit Assignment Module(功劳分配模块)。
为什么需要 Credit Assignment?
在 multi-step Agent 执行中,reward 往往是稀疏且延迟的。比如:
- Agent 执行了 10 步才得到最终结果
- 环境只给了一个最终 reward(+1 表示正确,-1 表示错误)
- 但哪一步是关键决策?这就是 credit assignment 问题
LightningRL 使用了一个层次化分解策略:
整个 Trajectory 的 Reward
↓
Credit Assignment Module
↓
每一步 action 的 contribution(贡献度)
↓
用于训练每个 transition 的 gradient
LightningRL 算法伪代码
class LightningRL:
def train(self, trajectory):
# 1. 把 trajectory 分解成 transitions
transitions = self.decompose_trajectory(trajectory)
# 2. Credit Assignment:计算每一步的贡献度
contributions = self.credit_assignment(trajectory)
# 3. 计算 policy gradient
for transition, contribution in zip(transitions, contributions):
state, action, reward, next_state = transition
# 使用 contribution 作为 weight
loss = -log_prob(action | state) * contribution
# 反向传播
loss.backward()
# 4. 更新 policy
self.optimizer.step()
def credit_assignment(self, trajectory):
"""
核心算法:层次化 Credit Assignment
对于多 Agent 系统,可以只计算某一个 Agent 的 contribution
"""
# 使用 GAE (Generalized Advantage Estimation)
# 或者自定义的贡献度计算逻辑
...
4. LightningRL 算法:Credit Assignment 的秘密
4.1 问题定义
假设一个 Agent 执行轨迹包含 T 步:
τ = {(s₁, a₁, r₁), (s₂, a₂, r₂), ..., (sₜ, aₜ, rₜ)}
其中大部分 rₜ = 0(稀疏奖励),只有在最后一步 rₜ = +1(成功)或 -1(失败)。
问题:如何判断第 t 步的 action aₜ 对最终结果的贡献?
4.2 层次化 Credit Assignment
LightningRL 的核心创新是把 trajectory 按「子目标」进行层次化分解。
示例:Text-to-SQL Agent 的执行过程
用户问题:"查询销售额最高的产品"
↓
Step 1: LLM 生成 SQL 草图
↓
Step 2: 执行 SQL,发现语法错误
↓
Step 3: LLM 根据错误信息修正 SQL
↓
Step 4: 执行修正后的 SQL,成功
↓
Reward: +1
LightningRL 会把这个过程分解成:
子目标 1: 生成正确的 SQL(Step 1 + Step 3)
子目标 2: 成功执行 SQL(Step 4)
Credit Assignment:
- Step 1 的贡献度:0.3(生成了正确的方向,但有语法错误)
- Step 3 的贡献度:0.6(修正了关键错误)
- Step 4 的贡献度:0.1(执行成功,但主要是 SQL 正确的功劳)
4.3 与 GAE 的结合
LightningRL 在实现上使用了 Generalized Advantage Estimation (GAE) 来计算 advantage:
def compute_gae(rewards, values, gamma=0.99, lam=0.95):
"""
GAE 计算 advantage
Args:
rewards: List[float], 每步的 reward
values: List[float], 每步的 value function 估计
gamma: 折扣因子
lam: GAE 参数,控制 bias-variance tradeoff
"""
advantages = []
gae = 0
for t in reversed(range(len(rewards))):
if t == len(rewards) - 1:
delta = rewards[t] - values[t]
else:
delta = rewards[t] + gamma * values[t+1] - values[t]
gae = delta + gamma * lam * gae
advantages.insert(0, gae)
return advantages
LightningRL 的改进:在 GAE 的基础上,加入了子目标层级的权重调整,让 credit assignment 更精准。
5. 实战:用 RL 训练一个 Text-to-SQL Agent
现在我们进入实战环节。我们会用 Agent Lightning 训练一个 Text-to-SQL Agent,让它能够从执行错误中学会自我修正。
5.1 环境设置
# 安装 Agent Lightning
pip install agentlightning
# 安装依赖
pip install openai sqlalchemy
5.2 定义 Agent
import agentlightning as agl
from openai import OpenAI
import sqlalchemy
# 初始化 tracer
agl.init_tracer(auto_patch=["openai"])
client = OpenAI()
class TextToSQLAgent:
def __init__(self, db_url):
self.engine = sqlalchemy.create_engine(db_url)
self.max_retry = 3
def run(self, question):
"""执行 Text-to-SQL 任务"""
# 第 1 步:生成 SQL
sql = self.generate_sql(question)
# 第 2 步:执行 SQL,如果出错则修正
for i in range(self.max_retry):
try:
result = self.execute_sql(sql)
# 成功执行,计算 reward
reward = self.compute_reward(result, question)
agl.emit_reward(reward)
return result
except Exception as e:
# 执行出错,让 LLM 修正 SQL
sql = self.correct_sql(sql, str(e))
# 超过重试次数,reward = 0
agl.emit_reward(0)
return None
def generate_sql(self, question):
prompt = f"""将以下问题转换成 SQL 查询:
问题:{question}
数据库 schema:{self.get_schema()}
只输出 SQL,不要输出其他内容。"""
agl.emit_prompt(prompt)
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
sql = response.choices[0].message.content
agl.emit_response(sql)
return sql
def execute_sql(self, sql):
with self.engine.connect() as conn:
result = conn.execute(sqlalchemy.text(sql))
return result.fetchall()
def correct_sql(self, sql, error_msg):
prompt = f"""以下 SQL 执行出错,请修正:
SQL:{sql}
错误信息:{error_msg}
只输出修正后的 SQL。"""
agl.emit_prompt(prompt) # 标记修正步骤的 prompt
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
new_sql = response.choices[0].message.content
agl.emit_response(new_sql)
return new_sql
def compute_reward(self, result, question):
"""计算 reward(简化版)"""
# 在实际应用中,这里可以用更复杂的逻辑
# 比如检查查询结果是否回答了用户问题
if result is not None:
return 1.0
return 0.0
def get_schema(self):
# 返回数据库 schema(简化)
return "表 products: id, name, price, sales"
# 初始化 Agent
agent = TextToSQLAgent(db_url="sqlite:///example.db")
5.3 配置训练
from agentlightning import Trainer, LightningRL
# 配置算法
algorithm = LightningRL(
model="gpt-4",
learning_rate=1e-5,
gamma=0.99,
lam=0.95
)
# 配置训练器
trainer = Trainer(
algorithm=algorithm,
num_episodes=1000,
max_steps_per_episode=10
)
# 开始训练
trainer.train(agent)
5.4 训练效果
根据 Agent Lightning 官方博客的数据,在 Text-to-SQL 任务上:
| 指标 | 训练前 | 训练后 |
|---|---|---|
| SQL 执行成功率 | 62% | 89% |
| 平均修正次数 | 2.3 | 0.8 |
| 对未见问题的泛化能力 | 41% | 73% |
关键发现:RL 训练后,Agent 学会了在第一次生成 SQL 时就避免常见语法错误,而不是依赖重试。
6. 实战:集成 LangChain Agent
Agent Lightning 的一个杀手级特性是对 LangChain Agent 的零改动集成。
6.1 标准 LangChain Agent(无需改动)
from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI
# 你的 LangChain Agent(完全不用改)
llm = OpenAI(temperature=0)
tools = [
Tool(name="Search", func=search_tool, description="..."),
Tool(name="Calculator", func=calc_tool, description="...")
]
agent = initialize_agent(tools, llm, agent="zero-shot-react-description")
# 只需要加这一行:初始化 tracer
import agentlightning as agl
agl.init_tracer(auto_patch=["langchain"])
# 正常调用 Agent
result = agent.run("今天天气怎么样?")
6.2 自定义 Reward 函数
LangChain Agent 的 reward 通常需要用户定义。Agent Lightning 提供了灵活的 reward 接口:
from agentlightning import RewardFunction
class MyRewardFunction(RewardFunction):
def compute(self, trajectory):
"""
自定义 reward 计算逻辑
Args:
trajectory: Agent 的执行轨迹
"""
# 示例:根据最终结果的正确性给 reward
final_output = trajectory.final_output
if self.is_correct(final_output):
return 1.0
else:
return 0.0
def is_correct(self, output):
# 根据实际任务定义
...
# 注册 reward 函数
agl.register_reward_function(MyRewardFunction())
7. Youtu-Agent 的 128 GPU 大规模训练案例
腾讯 Youtu-Agent 团队基于 Agent Lightning 做了一个修改分支,实现了稳定的 128 GPU 大规模 RL 训练。
7.1 规模对比
| 项目 | GPU 数量 | 任务类型 | 收敛稳定性 |
|---|---|---|---|
| 原始 Agent Lightning | 8 GPUs | Text-to-SQL | 稳定 |
| Youtu-Agent (修改版) | 128 GPUs | 数学/代码生成 | 稳定 |
| 其他 RL 训练框架 | 32 GPUs | 单一任务 | 经常不稳定 |
7.2 技术改进
Youtu-Agent 团队在 Agent Lightning 的基础上做了以下改进:
- Gradient Accumulation:在 128 GPU 上做 gradient accumulation,有效 batch size 达到 2048
- Mixed Precision Training:使用 BF16 混合精度,显存占用降低 40%
- Trajectory Buffer:引入分布式 trajectory buffer,解决多 GPU 之间的数据同步问题
7.3 代码示例(Youtu-Agent 修改版)
# Youtu-Agent 的修改版支持分布式训练
from agentlightning.contrib.youtu import DistributedTrainer
trainer = DistributedTrainer(
algorithm=LightningRL(...),
num_gpus=128,
batch_size=2048,
mixed_precision="bf16"
)
# 自动处理分布式逻辑
trainer.train(agent)
8. 性能优化与工程实践
8.1 Trajectory 采集的性能优化
问题:Tracer 的采集逻辑如果实现不好,会严重影响 Agent 的执行速度。
Agent Lightning 的优化策略:
- 异步写入:Tracer 采集的数据先写入本地 buffer,然后异步批量写入 LightningStore
- Lazy Serialization:只在必要时才做序列化(比如要网络传输时)
- Sampling:对于很长的 trajectory,可以采样关键步骤,而不是全量采集
agl.init_tracer(
async_write=True, # 异步写入
sample_rate=0.8, # 采样率 80%
max_buffer_size=1000 # 本地 buffer 大小
)
8.2 分布式训练的性能优化
问题:在大规模训练中,GPU 之间的梯度同步是瓶颈。
Agent Lightning 的解决方案:
- Gradient Compression:使用 FP16 压缩梯度,减少通信量
- Overlap Computation and Communication:在计算梯度的同时做通信
- Horovod / PyTorch DDP:支持多种分布式后端
from agentlightning import DistributedTrainer
trainer = DistributedTrainer(
algorithm=algorithm,
backend="horovod", # 或 "pytorch_ddp"
gradient_compression="fp16",
overlap_comm=True
)
8.3 工程实践建议
1. 从小规模开始
不要一上来就用 128 GPU。建议的训练规模递进:
1. 单机 1 GPU,验证 reward 设计是否合理
2. 单机 8 GPU,验证分布式逻辑是否正确
3. 多机 32 GPU,验证大规模收敛稳定性
4. 多机 128 GPU(如果你有这个资源的话)
2. Reward 设计是关键
RL 训练的效果上限取决于 reward 设计。几个常见坑:
- ❌ Reward 太稀疏(只在最后给 ±1):训练很慢
- ❌ Reward 太密集(每步都给 reward):容易 overfitting
- ✅ 分层 reward:大目标 + 小目标结合
# 好的 reward 设计示例(Text-to-SQL)
def compute_reward(trajectory):
reward = 0
# 大目标:最终 SQL 执行成功
if trajectory.final_result is not None:
reward += 1.0
# 小目标:SQL 语法正确(即使执行结果不对)
if syntax_check(trajectory.final_sql):
reward += 0.3
# 小目标:SQL 包含了必要的表连接
if has_join(trajectory.final_sql):
reward += 0.2
return reward
3. 使用 Trajectory-Level Aggregation 加速训练
Agent Lightning 在 2025 年 12 月引入了一个重要优化:Trajectory Level Aggregation。
传统方式:每个 transition 都单独计算 gradient,然后更新
新方式:把一个 trajectory 的所有 transition 的 gradient 聚合后再更新
效果:训练速度提升 2-3 倍,且收敛更稳定。
algorithm = LightningRL(
trajectory_aggregation=True, # 启用 trajectory-level aggregation
...
)
9. 与其他方案的对比
| 特性 | Agent Lightning | RLlib | TRT-LLM | LangChain RL |
|---|---|---|---|---|
| 框架无关 | ✅ 任何框架 | ❌ 需要适配 | ❌ 仅支持特定模型 | ❌ 仅 LangChain |
| 零代码改动 | ✅ 几乎零改动 | ❌ 需要大量改动 | ❌ 需要重写 | ❌ 需要改动 |
| 多 Agent 支持 | ✅ 选择性优化 | ⚠️ 有限支持 | ❌ 不支持 | ⚠️ 有限支持 |
| 分布式训练 | ✅ 原生支持 | ✅ 原生支持 | ✅ 原生支持 | ❌ 不支持 |
| Credit Assignment | ✅ 层次化 | ⚠️ 基础 GAE | ❌ 不支持 | ❌ 不支持 |
| 社区活跃度 | ⭐⭐⭐⭐ (11.5K Star) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
结论:如果你需要训练任何框架的 Agent,Agent Lightning 是目前唯一靠谱的选择。
10. 总结与展望
10.1 Agent Lightning 的核心价值
解耦训练与执行:这是 Agent Lightning 最大的创新。它让 Agent 的训练不再是「重构项目」级别的工程,而是「加几行代码」的工作。
统一的 data interface:无论你用 LangChain、AutoGen 还是裸写 OpenAI 调用,Agent Lightning 都能接入。这可能让它成为 AI Agent 训练领域的「ONNX」—— 一个统一的模型交换格式。
算法可扩展:内置 RL、APO、SFT,但也支持自定义算法。这意味着你可以先把基础训练跑起来,然后逐步替换成更先进的算法。
10.2 适用场景
Agent Lightning 特别适合以下场景:
- ✅ 多 Agent 系统:可以只优化其中一个 Agent,不影响其他部分
- ✅ 已有生产 Agent:不想大改代码,但想通过 RL 提升效果
- ✅ 多框架混合:项目中同时用了 LangChain + 裸 OpenAI 调用
- ✅ 大规模训练:需要 32+ GPU 的分布式训练
10.3 未来展望
根据微软研究院的路线图,Agent Lightning 未来会加入:
- 支持更多 Agent 框架:包括 Microsoft Agent Framework、CrewAI 等
- 在线学习:目前是 offline RL(先采集数据,再训练),未来会支持 online RL(边采集边训练)
- 多模态 Agent:支持带有视觉输入的 Agent(比如 UI-TARS)
- 更先进的 Credit Assignment 算法:可能会引入 Transformer-based 的 credit assignment
10.4 最后的思考
AI Agent 的训练,过去一直是「高级玩法」—— 只有大厂的研究团队才有资源去做。
Agent Lightning 的出现,把这个门槛降到了个人开发者也能玩的水平。
这可能是一个信号:AI Agent 的「深度学习时刻」即将到来。就像 2012 年 AlexNet 之后,深度学习从实验室走向千家万户;2026 年之后,AI Agent 的 RL 训练也可能从「少数人的游戏」变成「标配能力」。
如果你正在做 AI Agent 相关的项目,Agent Lightning 值得一试。
参考资源
- 论文:Agent Lightning: Train ANY AI Agents with Reinforcement Learning (arXiv:2508.03680)
- GitHub 仓库:https://github.com/microsoft/agent-lightning
- 官方文档:https://microsoft.github.io/agent-lightning/
- vLLM Blog:No More Retokenization Drift
- Youtu-Agent 案例:128-GPU Scaling Without Breaking a Sweat
- Discord 社区:https://discord.gg/RYk7CdvDR7
读完这篇文章,你应该已经理解了 Agent Lightning 的核心设计、算法细节和实战用法。如果你有任何问题或想法,欢迎在评论区讨论!
—— 程序员茄子,2026-05-16