当前位置: 首页 > news >正文

OpenClaw Runtime 源码级解析:从 CLI 到 Agent Execution Engine

OpenClaw 的 Agent Runtime 由 Control Plane、Model System、Execution Engine、Runtime Surfaces、Streaming Event System 五个子系统构成,共同完成从 CLI 请求到 Agent 推理再到结果流式输出的完整执行路径。

┌──────────────────────┐ │ CLI ENTRY │ │ │ │ openclaw.mjs │ │ src/entry.ts │ │ run-main.ts │ └─────────┬───────────┘ │ ▼ ┌─────────────────────────────────┐ │ CLI COMMAND LAYER │ │ │ │ src/cli/program/* │ │ register.agent.ts │ │ command-registry.ts │ │ register.subclis.ts │ └──────────────┬──────────────────┘ │ ▼ ┌──────────────────────────────────────┐ │ GATEWAY CLIENT │ │ │ │ src/commands/agent-via-gateway.ts │ │ callGateway("agent") │ │ local fallback → agentCommand │ └──────────────┬───────────────────────┘ │ ▼ ┌────────────────────────────────────────┐ │ GATEWAY SERVER │ │ │ │ src/gateway/server.impl.ts │ │ src/gateway/server-methods.ts │ │ src/gateway/server-methods/agent.ts │ │ │ │ RPC dispatch │ └──────────────┬─────────────────────────┘ │ ▼ ┌──────────────────────────────────────────┐ │ AGENT CONTROL PLANE │ │ │ │ src/commands/agent.ts │ │ │ │ responsibilities: │ │ - config resolution │ │ - secret resolution │ │ - session loading │ │ - agent workspace │ │ - model selection │ │ - lifecycle events │ │ - delivery │ └──────────────┬───────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────┐ │ EMBEDDED RUNNER │ │ │ │ src/agents/pi-embedded-runner/run.ts │ │ │ │ responsibilities: │ │ - resolveModel() │ │ - auth profile rotation │ │ - retry / fallback │ │ - invoke runEmbeddedAttempt │ └──────────────┬──────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ MODEL SYSTEM │ │ │ │ Model Binding │ │ src/agents/pi-embedded-runner/model.ts │ │ │ │ Model Policy │ │ src/agents/model-selection.ts │ │ │ │ Model Catalog │ │ src/agents/model-catalog.ts │ │ │ │ Config Projection │ │ src/agents/models-config.ts │ │ │ │ API Adapter Layer │ │ openai-completions / anthropic / ollama / etc │ └──────────────┬──────────────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────────────────────────────┐ │ EXECUTION ENGINE │ │ │ │ src/agents/pi-embedded-runner/run/attempt.ts │ │ │ │ responsibilities: │ │ - workspace setup │ │ - session manager │ │ - prompt execution │ │ - streaming orchestration │ └──────────────┬───────────────────────────────────────────────┘ │ ▼ ┌───────────────────────────────────────────────────────────────┐ │ TOOL SYSTEM │ │ │ │ src/agents/pi-tools.ts │ │ │ │ Tool assembly pipeline: │ │ - filesystem tools │ │ - command execution tools │ │ - patch tools │ │ - channel tools │ │ - OpenClaw internal tools │ │ │ │ Policy filtering │ │ - config policies │ │ - sandbox │ │ - owner-only tools │ └──────────────┬────────────────────────────────────────────────┘ │ ▼ ┌───────────────────────────────────────────────────────────────┐ │ PROMPT SYSTEM │ │ │ │ src/agents/pi-embedded-runner/system-prompt.ts │ │ │ │ Adapter layer │ │ │ │ delegates to: │ │ src/agents/system-prompt.ts │ │ │ │ prompt contents: │ │ - tool summaries │ │ - skills │ │ - runtime context │ │ - workspace metadata │ │ - user/time/context files │ └──────────────┬────────────────────────────────────────────────┘ │ ▼ ┌───────────────────────────────────────────────────────────────┐ │ MODEL EXECUTION │ │ │ │ activeSession.prompt() │ │ │ │ streaming LLM interaction │ │ │ │ tool calls │ │ reasoning stream │ └──────────────┬────────────────────────────────────────────────┘ │ ▼ ┌───────────────────────────────────────────────────────────────┐ │ STREAM EVENT SYSTEM │ │ │ │ src/agents/pi-embedded-subscribe.ts │ │ │ │ responsibilities: │ │ - partial replies │ │ - reasoning stream │ │ - tool results │ │ - usage accumulation │ │ - compaction retry │ │ │ │ session.subscribe(...) │ └──────────────┬────────────────────────────────────────────────┘ │ ▼ ┌───────────────────────────────────────────────────────────────┐ │ RESULT DELIVERY │ │ │ │ src/commands/agent/delivery.ts │ │ src/infra/outbound/deliver.ts │ │ │ │ payload formatting │ │ outbound channel dispatch │ └──────────────┬────────────────────────────────────────────────┘ │ ▼ ┌───────────────────────────────────┐ │ CLIENT OUTPUT │ │ │ │ CLI output │ │ Gateway WS clients │ │ Channels │ └──────────────────────────────────

这张图最重要的四个 Runtime 子系统总结为:

1️⃣ Control Plane

负责 Agent 调度与状态管理

核心代码:

src/commands/agent.ts

2️⃣ Model System

负责 模型选择与绑定

核心代码:

model-selection.ts model-catalog.ts model.ts

3️⃣ Execution Engine

负责 真正执行 agent run

核心代码:

run.ts run/attempt.ts

4️⃣ Runtime Surfaces

模型看到的能力:

Tools

src/agents/pi-tools.ts

Prompt

system-prompt.ts

5️⃣ Streaming/Event System

负责:

partial replies tool results reasoning stream usage

核心:

pi-embedded-subscribe.ts
http://www.jsqmd.com/news/472822/

相关文章:

  • P1908 逆序对
  • Oracle 故障应急处理手册-RAC 投票盘(Voting Disk)故障恢复
  • Flutter 三方库 rabbit_converter 的鸿蒙化适配指南 - 让消息转换回归“工业化标准”,打造鸿蒙应用专家级的 RabbitMQ 数据适配中台
  • OpenClaw:打开文献综述宝库的钥匙——引用方法与技巧详解
  • SLAM公式中双竖线 ||·|| 表示什么意思?一文搞懂范数的含义
  • 甘肃2026上半年软考报名时间已出!
  • 院墙上的监控成摆设?避开这三个坑,不给骗子留机会!室外监控摄像头哪个品牌好
  • Boost源码分析: Serialization
  • 国产化解决方案!鼎讯信通 射频信号源模块 DXSL系列
  • 哺乳动物为什么不长绿毛
  • next-dbm:审批可控、部署高效,解锁数据构建更新新范式
  • 广西选物业律师实践经验分享,效果看得见!
  • 计算机毕业设计springboot基于Java的校园问题反馈系统 基于Spring Boot框架的高校师生诉求处理与服务平台的设计与实现 基于Java Web的校园意见收集与问题跟踪管理系统开发与应用
  • 鱼眼相机标定矫正详细步骤
  • 参观幼儿园前要做哪些准备?
  • 如何封装一个vue组件为hook函数
  • 皮皮宋渗透日记 09|业务逻辑漏洞全总结:登录 / 验证码 / 支付 / 找回密码 / 越权一网打尽
  • OpenClaw 使用指南:指令大集合
  • 数据结构:合并两个有序链表约瑟夫问题详解(C语言实现 + 图解思路)
  • 开源OpenClaw部署指南
  • openClaw实用Skill
  • master 节点 Java 环境安装操作总结
  • 【企业形象】优秀公司介绍PPT,远不止幻灯片!
  • 关于DeepSeek的详细介绍
  • OpenClaw数据安全深度分析:守护AI执行全流程,优选OPE本地部署
  • Flutter 三方库 dnsolve 的鸿蒙化适配指南 - 让网络寻址回归“高确定性”,打造鸿蒙应用专家级的 DNS 解析与全局网络调度底座
  • java深度学习【AI Infra】Pytorch ON Java 简介 学真算法 用真框架 做认真的人 掌握真本领
  • 【求助】穷学生想进linux do论坛
  • 奥尔特云智慧安保解决方案,安全运营“稳定器”
  • 714. 买卖股票的最佳时机含手续费