news 2026/7/19 5:21:07

15.6 Runtime 如何知道任务完成?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
15.6 Runtime 如何知道任务完成?

这是 Runtime 最重要职责。

例如,模型输出:继续搜索。

Runtime:继续。
模型输出:修改代码。

Runtime:继续。
模型输出:运行测试。

Runtime:继续。
直到模型输出:Task Complete

Runtime:停止循环。
然后给用户返回最终答案。

所以Runtime不仅负责执行。

还要负责结束。

15.7 Runtime 如何管理 Context?
假设Agent已经运行50 步。

Context越来越长。

怎么办?

Runtime通常会自动进行:Context Management。

例如:

历史消息

总结(Summarize)

压缩

保留关键结论

继续执行
否则,上下文很快超过模型最大窗口。

因此Context Management,其实也是 Runtime 工作之一。

除了总结,现代 Runtime 还可能采用:

滑动窗口(Sliding Window)保留最近上下文;
将历史内容写入 Memory,需要时再检索回来(RAG);
保留关键状态而丢弃中间细节。
这些策略的目标都是一致的:让有限的上下文窗口承载尽可能多的有效信息。

15.8 Runtime 如何调度 Skill?
上一章我们介绍了 Skill,并提到它可以把某一领域的专业知识、最佳实践和工作规范封装起来,供 Agent 按需使用。

那么,一个新的问题来了:Runtime 是如何决定什么时候使用 Skill 的?

很多人第一次接触 Skill 时,容易产生一种误解:Runtime 会把所有 Skill 一次性全部发送给大模型。

实际上,现代 Agent 几乎都不会这样设计。

原因很简单。

假设一个企业拥有:

Java Skill
.NET Skill
Python Skill
SQL Skill
Kubernetes Skill
Docker Skill
产品设计 Skill
测试 Skill
运维 Skill
每个 Skill 都包含几千甚至上万 Token。

如果启动 Agent 时就把所有 Skill 一次性放入 Context,不仅会迅速耗尽上下文窗口,还会增加推理成本,降低模型对当前任务的关注度。

因此,现代 Agent 普遍采用一种更加高效的方式,也就事我们上一章也讲过的——渐进式披露(Progressive Disclosure)。

Runtime 并不会隐藏 Skill,而是按需加载 Skill
这里我们在简单回溯一下,渐进式披露并不是让模型完全不知道有哪些 Skill。

通常情况下,Runtime 会先向模型提供每个 Skill 的基础信息,例如:

Available Skills:

  • Java Development
    用于 Java 项目开发与代码分析
  • SQL Optimization
    用于数据库设计与 SQL 优化
  • Docker Expert
    用于容器构建与部署
  • Kubernetes Expert
    用于 Kubernetes 集群运维
    也就是说,模型知道:

当前有哪些 Skill 可以使用;
每个 Skill 大概解决什么问题。
但是,它并不知道每个 Skill 内部包含哪些详细内容。

例如,一个 SQL Skill 里面可能包含:

SQL 编码规范;
索引设计原则;
常见慢查询分析方法;
EXPLAIN 使用技巧;
数据库最佳实践;
企业内部开发规范;
示例代码。
这些内容通常有几千甚至上万 Token。

Runtime 不会在任务开始时全部加载,而是在真正需要的时候,再把完整内容加入 Context。

为什么这样设计?
这种设计主要有三个优点。

第一,减少 Context 占用。

绝大多数任务只会涉及少量 Skill。

例如,一个 SQL 优化任务,完全没有必要同时加载 Java、Docker、Kubernetes 等大量无关知识。

按需加载能够显著减少 Prompt 长度,提高推理效率。

第二,提高模型注意力。

模型一次接收的信息越多,真正与当前任务相关的信息比例就越低。

只加载当前任务需要的 Skill,可以让模型更加聚焦当前问题,减少无关内容对推理过程的干扰。

第三,方便持续维护。

Skill 通常以独立文件的形式维护。

例如:

skills/
├── java.md
├── dotnet.md
├── sql.md
├── docker.md
├── kubernetes.md
└── security.md
新增一个 Skill,只需要增加一个新的文件,而不需要修改整个 Agent 的 Prompt。

企业也可以根据自身业务,不断积累新的 Skill 库,实现知识资产的持续沉淀。

Claude Code 与 OpenClaw 都采用了类似思想
目前,越来越多的 Agent 产品都采用了类似的设计理念。

例如 Claude Code 的 Skills,以及 OpenClaw 新版 Skill 规范,都采用了**元数据(Metadata)+ 按需加载(Lazy Loading)**的模式。

Runtime 首先向模型提供 Skill 的基本信息,例如名称、描述和适用场景;当模型判断某个 Skill 可以帮助完成当前任务时,再由 Runtime 将该 Skill 的完整内容加载到 Context 中。

这种机制正是前一章介绍的**渐进式披露(Progressive Disclosure)**在 Agent Runtime 中的具体体现。

15.9 Claude Code 为什么可以连续工作几个小时?
很多人第一次看到Claude Code。

都会觉得太神奇了。

其实Claude模型本身没有连续运行。

真正连续运行的是Runtime。

例如:

读取项目

搜索引用

修改代码

运行测试

失败

再次修改

再次运行

Git Commit

Claude模型只是不断思考下一步。

真正执行Shell、Git、文件、测试的,全部是Runtime。

所以Claude Code 并不是一个"会写代码的大模型",而是一个由 Runtime 驱动、能够持续执行开发任务的 Agent 系统。

15.10 Agent Runtime 的完整架构
现在,我们终于可以把Agent相关的内容串起来了:

用户目标 │ ▼ Agent Runtime │ ┌───────────────┼────────────────┐ ▼ ▼ ▼ Context 管理 Skill Router Workflow │ │ │ ▼ ▼ ▼ Memory 加载 Skill 流程控制 │ ▼ Prompt / Tool / MCP │ ▼ LLM │ Thought / Action │ ▼ Observation │ └───────────────┐ │ 回到 Runtime

请注意:Runtime 并不是 LLM 的一部分,而是整个 Agent 系统的控制中心。

LLM 负责生成下一步行动,Runtime 负责让这些行动真正发生。

本章总结
这一章,我们回答了六个关键问题:

什么是 Agent Runtime?
它是智能体的运行时系统,负责协调所有组件完成任务。
Runtime 为什么必不可少?
因为 LLM 不会主动调用工具、管理状态或持续执行任务。
Agent 是如何持续工作的?
Runtime 通过事件循环不断驱动"推理 → 执行 → 观察 → 再推理"。
Action 与 Observation 是什么?
LLM 输出 Action,Runtime 执行并返回 Observation,形成闭环。
Runtime 还负责哪些工作?
包括 Context 管理、Skill 路由、Memory 检索、任务终止等。
为什么 Claude Code、Codex、OpenClaw 看起来越来越像?
因为它们虽然产品形态不同,但 Runtime 的核心思想正在逐渐收敛:都是围绕"持续完成任务"来设计。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 5:21:00

C#邮件发送功能全解析与实战技巧

1. C#邮件发送功能全解析在.NET生态中,System.Net.Mail命名空间提供了完整的邮件发送解决方案。不同于简单的API调用,一个健壮的邮件发送模块需要考虑编码处理、附件支持、HTML内容渲染等实际场景。我经历过多个需要邮件通知的项目,发现90%的…

作者头像 李华
网站建设 2026/7/19 5:20:58

Unity2D物理关节实战:用HingeJoint2D实现动态锁链钩爪

1. 项目概述:从“锁链钩爪”到物理关节的实战理解看到“锁链钩爪”这个标题,很多Unity开发者,尤其是刚接触2D物理系统的朋友,第一反应可能是去Asset Store找个现成的插件。但今天我想聊的,恰恰是抛开插件,如…

作者头像 李华
网站建设 2026/7/19 5:20:35

DeepSeek R1如何通过四大黑科技提升C++系统软件性能

1. 项目概述:当C性能优化遇见DeepSeek R1最近在几个高性能计算和游戏引擎开发的圈子里,一个话题被反复提起:为什么那些顶尖的架构师和核心系统工程师,开始把DeepSeek R1作为他们C工具箱里的新宠?这让我这个在底层系统开…

作者头像 李华
网站建设 2026/7/19 5:19:11

Godot游戏开发:网格化资源单位系统设计与实现

1. 项目概述与核心思路最近在社区里看到不少朋友在尝试用Godot复刻一些经典的玩法,比如贪吃蛇、吃豆人,甚至是一些轻度的RTS元素。我自己也一直在琢磨,能不能把这些看似简单的机制揉在一起,做出点不一样的东西。于是就有了这个“S…

作者头像 李华
网站建设 2026/7/19 5:19:08

Python编程基础:从语法到实践的全面指南

1. Python基础语法精要Python作为一门简洁优雅的编程语言,其基础语法设计处处体现着"可读性优先"的理念。与Java、C等语言相比,Python最显著的特点就是通过缩进来表示代码块结构,而非使用花括号。这种设计让代码看起来就像是一篇排…

作者头像 李华
网站建设 2026/7/19 5:16:52

AutoDL部署Self-LLM服务:解决端口映射与网络访问的完整指南

1. 项目概述:当Self-LLM遇上AutoDL,自定义服务为何“失联”?最近在折腾Self-LLM项目,想把它部署到AutoDL这类云算力平台上,自己搞个私有的、能通过Web界面访问的大模型服务。想法很美好:租个带GPU的实例&am…

作者头像 李华