如何理解agent runtime

A
Admin

如果你已经理解了:

  • LLM
  • System Prompt
  • Tool Calling
  • ReAct

那么 Agent Runtime 可以理解为:

围绕 LLM 构建的一套“操作系统”或者“执行引擎”

很多人刚开始做 Agent 时,会认为:

LLM
+
Tools
=
Agent

实际上真正复杂的部分往往是:

Agent Runtime

一个最简单的例子

假设你有:

query_db(sql)

用户:

最近30天收入趋势

模型返回:

{
  "tool": "query_db",
  "sql": "..."
}

执行后得到结果。

再送给模型。

这只是:

LLM
↔ Tool

还不能算完整 Runtime。


Runtime 是什么

想象浏览器。

网页代码:

alert("hello")

真正执行的是:

Chrome Runtime

负责:

  • 内存
  • 网络
  • 权限
  • 文件
  • 进程

Agent 也一样。

模型只负责:

决策

Runtime 负责:

执行

Agent Runtime 典型组成

┌─────────────────┐
│     User        │
└────────┬────────┘
         │
┌────────▼────────┐
│  Agent Runtime  │
├─────────────────┤
│ Context Manager │
│ Tool Registry   │
│ Planner         │
│ Memory          │
│ Permission      │
│ Loop Controller │
│ Sandbox         │
└────────┬────────┘
         │
┌────────▼────────┐
│      LLM        │
└─────────────────┘

1 Context Manager

负责维护上下文。

例如:

用户:
分析销售数据

Agent:
查询订单表

Agent:
查询用户表

Agent:
生成图表

Runtime 决定:

哪些历史保留
哪些丢弃
哪些摘要

否则上下文会爆炸。


2 Tool Registry

工具注册中心。

例如:

tools = [
    query_db,
    draw_chart,
    send_email
]

Runtime 负责:

告诉模型有哪些工具
验证参数
执行工具
返回结果

3 Loop Controller

这是 ReAct 的核心。

while True:

    response = llm()

    if tool_call:
        execute_tool()

    else:
        break

这个循环本身就是 Runtime 的一部分。


4 Permission System

为什么 Codex 不会直接:

rm -rf /

因为 Runtime 会拦。

例如:

允许:
  read

允许:
  git diff

禁止:
  sudo

Runtime 在执行前检查权限。


5 Sandbox

Codex 里面很重要。

例如:

Shell

实际上运行在:

Sandbox

而不是你的真实机器。

Runtime 管理:

  • 文件系统
  • 网络
  • CPU
  • 进程

6 Memory

例如用户:

分析昨天订单

十分钟后:

跟上周比较

Runtime 可以记住:

昨天查询过订单数据

而不是重新查。


为什么 Codex 看起来很复杂

很多人打开源码:

几十万行

然后以为:

复杂推理算法

实际上很多代码在处理:

Session
Tool
Sandbox
Permission
Memory

真正调用模型的代码可能只占很小一部分。

核心循环经常类似:

while not done:

    response = model()

    if tool_call:
        run_tool()

    else:
        return answer

如果你做数据分析 Agent

Runtime 可以非常简单:

Data Agent Runtime
    ├── query_db
    ├── draw_chart
    ├── memory
    ├── context
    └── agent loop

用户:

最近30天新增用户趋势

Runtime:

调用模型
    ↓
生成SQL
    ↓
执行SQL
    ↓
返回结果
    ↓
生成图表
    ↓
返回答案

模型只是负责决定:

下一步做什么

一句话理解

如果把 Agent 比作人:

LLM
=
大脑

Tool
=
手脚

Agent Runtime
=
神经系统 + 操作系统

或者从软件架构角度:

Agent Runtime
=
负责管理 Agent 生命周期的一切基础设施

而 Codex、Claude Code、OpenHands 这些产品之间最大的差异,往往不在模型本身,而在它们各自 Runtime 的设计。


如何理解agent runtime | JBLOG