惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
F
Full Disclosure
月光博客
月光博客
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
Tailwind CSS Blog
Microsoft Security Blog
Microsoft Security Blog
N
Netflix TechBlog - Medium
The Register - Security
The Register - Security
aimingoo的专栏
aimingoo的专栏
The GitHub Blog
The GitHub Blog
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
腾讯CDC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
K
Kaspersky official blog
Hugging Face - Blog
Hugging Face - Blog
D
DataBreaches.Net
P
Proofpoint News Feed
Cisco Talos Blog
Cisco Talos Blog
NISL@THU
NISL@THU
有赞技术团队
有赞技术团队
P
Proofpoint News Feed
美团技术团队
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Martin Fowler
Martin Fowler
L
Lohrmann on Cybersecurity
Know Your Adversary
Know Your Adversary
Simon Willison's Weblog
Simon Willison's Weblog
S
Securelist
T
Threatpost
云风的 BLOG
云风的 BLOG
G
Google Developers Blog
L
LangChain Blog
Blog — PlanetScale
Blog — PlanetScale
Recorded Future
Recorded Future
C
Cisco Blogs
S
SegmentFault 最新的问题
Cyberwarzone
Cyberwarzone
GbyAI
GbyAI
IT之家
IT之家
S
Schneier on Security
L
LINUX DO - 热门话题
T
Tenable Blog
T
The Exploit Database - CXSecurity.com
MyScale Blog
MyScale Blog
P
Privacy & Cybersecurity Law Blog
Google Online Security Blog
Google Online Security Blog
T
Threat Research - Cisco Blogs

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解 【002】HTTPS 粗解:证书、TLS 握手与对后端配置的影响 Hermes Agent 一周暴涨五万 Star,但我劝你别急着追 明明连接的是Redis的DB0,为什么能查到DB3的数据? 【从0到1构建一个ClaudeAgent】协作-Agent团队 熟悉电子元器件之后,电子小白下一步该怎么走? MAF快速入门(23)通过C#类定义Skills .NET 高级开发 | 手写一个对象映射框架 FastAPI数据库ORM怎么选?我肝了三个Demo后,终于不再纠结了 mysqldump 参数拾遗:在遗忘与铭记之间 C# .NET 周刊|2026年3月5期 Claude code入门 - 陈彦斌 一文学习入门 ThingsBoard 开源物联网平台 GitHub 热门项目 | 2026年04月16日 如何为GIT设置全局勾子,为每次提交追加信息 Number.isFinite和isFinite与isNaN()和Number.isNaN的区别 PortSwigger SQL注入LAB2 推荐一个测试人必备的Skills,从功能到性能全搞定(附详细实操和安装下载方式) 筑基期:掌握Odoo基础核心知识点02(Odoo XML 开发方式详解) GLM模型这么火,咱们用vllm也咧一个呗! 深入理解 AbortController:从底层原理到跨语言设计哲学 字符串学习笔记 多租户系统框架的基础模块设计和分析设计 Apache SeaTunnel Zeta 为什么能做到“又快又稳”? AI开发-python-LangGraph框架(3-26-LangGraph基本概念及第一个简单样例) Vue 3 组件通信,别只会用 Props 和 Emits 了,这几个狠活儿你得看看 ElasticSearch7.X版本配置密码 用Manim实现动态交点计算--从一个动点问题说起 团结引擎+Addressable+Instant Game打包抖音小游戏 function call 实战:让 LLM 自动判断 pod 异常、调用日志工具并完成故障分析 bubseek —— 让 Agent 的足迹,变成团队的洞察 通过 C# 读取并导出 PDF 书签 如何用 GitHub Actions 实现 Steam 自动化发布 【从0到1构建一个ClaudeAgent】并发-后台任务 .NET 高级开发 | 定制 ASP.NET Core 框架 电子小白:什么是运算放大器(运放) zero2Agent:面向大厂面试的 Agent 工程教程,从概念到生产的完整学习路线 堆上的ORW HC32F460 USB CDC通信异常:非对齐访问异常排查 20260413-Hyperbridge 攻击事件:发生在默克尔山上的验证绕过 那些喊着AI 要淘汰你的人,正在靠你的焦虑赚大钱! 深度学习进阶(八)Swin Transformer 最小二乘问题详解19:带先验约束的增量式SFM优化与实现 SnapTranslate 3.0 正式发布:全局划词翻译 + 完整英语学习闭环,一站式搞定查词、记词、复习 工作的意义、工作的困难认知再思考 .NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块 【从0到1构建一个ClaudeAgent】规划与协调-技能 上周热点回顾(4.6-4.12) 电子小白的工具三件套:面包板、杜邦线、万能板 单表五亿数据的查询优化 | Mysql、StarRocks 2. WorkBuddy:从“我是谁”到“帮我干活” C# 如何减少代码运行时间:7 个实战技巧 基于HelixToolkit.SharpDX 渲染3D模型 - 笺上知微 从零开始的双臂具身VLA起源及现阶段发展综述 - SkyXZ 记对 xonsh shell 的使用, 脚本编写, 迁移及调优 - pluvium27 受够了Vibe Coding的失控?换个起点,让AI事半功倍 从开始配置漏洞环境到漏洞复现流程 - 難しい 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 - 虚无境 Any metadata 的内存布局 C# .NET 周刊|2026年3月2期 - InCerry 我帮你测过了,测试圈排名第二的 Skill 依然很牛逼 Skill Discovery | 无监督技能发现的经典工作总结 - MoonOut 上下文工程是什么?过时了么?一文讲明白! - 一枫说码 开了 TUN 模式还是直连?90% 的人都踩过这个坑 AScript扩展多种脚本语言 - rockey627 AI 学习笔记:Agent 的记忆机制 你能被装进一个文件里吗?——7 万人把同事"蒸馏"成了 AI - 我没有三颗心脏 Claude Code 通关手册(七):给 AI 装上技能包——Skills 完全指南 - 暮色之狐 在浏览器中快速编辑代码:VSCode Web 集成实践 - Newbe36524 蒸馏自己 skill?基于 Deepseek 的蒸馏器,丐版蒸馏方式,简单便捷 - To_Carpe_Diem Spring AI Aliababa和AgentScope,哪个更好? - 苏三说技术
OpenClaw.NET 重大更新:Goal 机制登场,让 AI Agent 不再"半途而废"
张善友 · 2026-06-18 · via 博客园_首页

近日,开源 AI Agent 运行时 OpenClaw.NETGoal(目标)机制登场,首次为 .NET 生态带来了会话级持久化目标管理。这套机制要解决的是一个困扰所有 AI Agent 开发者的核心痛点:大语言模型在完成复杂任务时,经常"半途而废"——做完一半就停下,需要用户反复输入"继续"才能推动它完成剩余工作。Goal 机制通过六状态状态机、Token 预算系统、自动续跑引擎和智能阻塞检测,将这个手动、易错的循环彻底自动化。


01 一个让所有 Agent 开发者都头疼的问题

如果你用过 Claude Code、Cursor Agent 或者任何基于大语言模型的编程助手,一定遇到过这样的场景:你让 Agent "帮我修复这个 CI 配置问题",它分析了代码、修改了一两个文件,然后告诉你"已完成部分修改"。当你检查后发现还有三个文件没改,只能再输入一句"继续"。有时候这个循环要重复三四次,Agent 才能真正做完。

这个问题在业界被称为"懒惰模型"(Lazy Model)问题,表现形式有三种典型模式:

问题模式 具体表现 用户感受
部分完成 模型做完一部分工作后停下,剩余任务未完成 "怎么只做了一半?"
虚假胜利 模型在未验证完整范围的情况下宣称"已完成" "明明还有 bug,却说修好了"
范围收缩 模型用更简单的方案替代原本需求,不能完全满足目标 "这个实现跟我想的不一样"

这个现象的根源在于大语言模型的推理特性。LLM 在生成长文本时,会在某个时刻判断"这里应该结束了"——这个判断基于训练数据中的对话模式,而非对任务完成度的客观评估。对于简单问答,这没有问题;但对于"修复 CI 配置"这类多步骤工程任务,模型往往在只完成了 60%-70% 的工作时就过早停止了。根据 METR(Model Evaluation and Threat Research)的研究数据,AI Agent 的任务完成能力虽然每 7 个月翻一倍(从 2025 年初的 1 小时任务到 2026 年的 2 小时任务),但任务时长每翻一倍,失败率会翻两番 (Zylos) 。这意味着,随着 Agent 承担越来越复杂的任务,"半途而废"的问题只会越来越严重。

更麻烦的是,用户目前唯一的应对方式是反复输入"继续"——这是一个手动、易错、无法追踪进度的循环。你无法知道 Agent 还需要多少个"继续"才能真正完成,也无法判断它是不是真的卡住了。Goal 机制的核心价值,就是把这个循环彻底自动化


02 Goal 机制是什么?一句话:给 Agent 装上"任务导航系统"

OpenClaw.NET 的 Goal 机制可以通俗地理解为一套给 AI Agent 使用的"任务导航系统"。就像汽车导航会规划路线、提醒转弯、在偏航时重新计算路径一样,Goal 机制会为 Agent 的每次会话设定一个明确目标,持续追踪进度,在 Agent 想"停下来"的时候自动提醒它"还没到达目的地"。

OpenClaw.NET 完整实现了 Goal 语义 (Github) 。本次 PR #154 涉及 +3,994 行代码变更,新增 16 个核心文件,覆盖从数据模型、服务层、运行时集成到 CLI 命令和 TUI 显示的完整技术栈 (Add session-scoped goal mechanism with auto-continuation by geffzhang · Pull Request #154 · clawdotnet/openclaw.net · GitHub)

Goal 机制对比

上图展示了有无 Goal 机制的核心差异。没有 Goal 时,Agent 的每次执行都是一次"无头苍蝇"式的尝试——模型做完一部分就停,用户必须手动推动。有 Goal 后,系统会在 Agent 停止时自动评估目标完成度,如果判断任务未完成,会注入续跑提示让模型继续工作,直到目标达成或遇到真正的阻塞条件。

Goal 不是任务队列,也不是定时任务。它是附着在当前会话上的一个持久化目标,会随着会话的生命周期而存在,支持暂停、恢复、完成、阻塞等状态转换,并且在 TUI 界面中以状态行和进度条的形式实时展示 。


03 核心技术解析:六状态状态机 + Token 预算 + 自动续跑引擎

Goal 机制的技术设计非常精巧。它不是一个简单的"如果停了就让模型继续"的 hack,而是一套完整的状态管理和执行控制系统。让我们拆开来看它的核心组件。

3.1 六状态状态机:精确管理目标生命周期

Goal 机制的心脏是一个六状态状态机,定义了目标从创建到终结的完整生命周期 (openclaw.net/docs/zh-CN/GOAL_TECHNICAL_ARCHITECTURE.md at main · clawdotnet/openclaw.net · GitHub)

6状态状态机

状态 含义 关键特性
Active 目标正在推进中 唯一可自动续跑的状态;支持循环执行
Paused 操作员主动暂停 通过 /goal pause 触发;可随时恢复
Blocked 遇到真实阻塞(3+ 轮相同错误) 自动触发;需要人工介入后恢复
BudgetLimited Token 预算耗尽 自动触发;防止无限制消耗
UsageLimited 系统级用量限制(预留) 为未来扩展预留
Complete 目标已达成(终态) 不可恢复;历史记录持久化到 JSONL

状态转换受到严格守卫。例如,Complete 是终态,一旦进入就不可恢复;Paused 不能直接转换到 Blocked,必须先经过 Active。这些约束由服务层通过 InvalidOperationException 强制执行,确保状态转换的语义正确性 (openclaw.net/docs/zh-CN/GOAL_TECHNICAL_ARCHITECTURE.md at main · clawdotnet/openclaw.net · GitHub)

这个设计的一个重要考量是安全性。Complete 终态不可恢复,防止了模型在标记目标完成后又被错误地重新激活,避免了"虚假胜利"的循环。Blocked 状态的引入则让系统能够区分"只是还没做完"和"真的做不下去了"——后者需要人类操作员的介入。

3.2 Token 预算系统:让成本可控

Goal 机制内置了一套基于会话基线的 Token 预算系统,防止 Agent 在执行目标时无限制地消耗 API 额度。默认预算是 128K Token,用户可以通过 CLI 语法自定义,例如 /goal start 修复 CI +500k/goal start 写文档 +2M (openclaw.net/docs/zh-CN/GOAL_TECHNICAL_ARCHITECTURE.md at main · clawdotnet/openclaw.net · GitHub)

预算计算采用基线机制——在 Goal 创建时记录会话当前的 Token 总数作为基线,后续用量 = 当前总数 - 基线。这确保了 Goal 不会追溯计费创建之前已经消耗的 Token。当用量超过预算时,Goal 自动转换为 BudgetLimited 状态,模型正常停止,避免了硬中断带来的糟糕体验。

这个设计在生产环境中非常关键。根据行业数据,活跃的 AI Agent 每月的 API 调用成本通常在 50-150 美元之间,而未优化的重度用户甚至出现过上千美元的账单 (Milvus) 。Token 预算系统为 Agent 的运营成本提供了明确的上限控制。

3.3 自动续跑引擎:"懒惰模型"的克星

自动续跑是 Goal 机制最核心的功能。它的工作原理可以概括为:当模型在没有任何工具调用的情况下停止输出时,系统会自动评估是否还有剩余工作,如果有,就注入一个续跑提示让模型继续 (openclaw.net/docs/zh-CN/GOAL_TECHNICAL_ARCHITECTURE.md at main · clawdotnet/openclaw.net · GitHub)

具体实现上,OpenClaw.NET 的 AgentRuntime 在每次 LLM 调用后检查响应。如果响应中没有工具调用(意味着模型"停下来"了),AgentRuntimeGoalIntegration.EvaluateGoalContinuation() 方法会被触发,执行以下判断逻辑:

  1. 预算检查:当前 Token 用量是否超过预算?
  2. 阻塞检测:最近几次响应是否包含相同的阻塞内容?
  3. 续跑次数上限:本轮是否已经续跑了超过 10 次?
  4. 最大迭代上限:总迭代次数是否超过 50 次?
  5. 通道门控:当前通道是否支持交互式续跑?(例如 HTTP API 不会触发续跑)

如果以上检查全部通过,系统会在消息列表中注入一个 [goal_check:N] Continue working toward objective... 格式的系统提示,然后 continue; 进入下一轮循环。这个提示的设计经过精心考虑——它以系统消息的形式插入,告诉模型"你的任务还没完成,请继续",而不是以用户消息的形式出现,避免模型误以为这是用户的新指令 (openclaw.net/docs/zh-CN/GOAL_TECHNICAL_ARCHITECTURE.md at main · clawdotnet/openclaw.net · GitHub)

3.4 阻塞检测算法:区分"还没做完"和"真的做不到"

阻塞检测是另一个关键创新。如果没有这个机制,Agent 可能会在同一个错误上无限循环。OpenClaw.NET 采用了一个保守但可靠的启发式规则 (openclaw.net/docs/zh-CN/GOAL_TECHNICAL_ARCHITECTURE.md at main · clawdotnet/openclaw.net · GitHub)

对模型助手轮次的文本进行空白符归一化(Trim + 将连续空白折叠为单个空格),计算其 SHA-256 哈希,与 SessionGoal 上记录的 LastBlockerHash 比较。如果哈希匹配,递增 ConsecutiveBlockerCount;当计数达到 3 次时,自动将 Goal 转换为 Blocked 状态。

这个算法的设计理念是"宁可误报,不可漏报"——不同的阻塞条件因巧合而匹配(误报)被认为比相同的阻塞条件因改述而逃脱检测(漏报)更安全。误报只会让系统过早地标记阻塞,而漏报则会导致无限循环。

3.5 外部验证门控:防止"虚假胜利"

当模型通过工具调用请求标记 Goal 为 Complete 时,系统不会立即批准。UpdateGoalTool 执行合理性检查(Plausibility Check)——验证模型的完成声明是否可信。如果验证失败,系统会拒绝转换并重新注入续跑提示 (openclaw.net/docs/zh-CN/GOAL_TECHNICAL_ARCHITECTURE.md at main · clawdotnet/openclaw.net · GitHub)

这解决了"虚假胜利"问题——模型有时会声称"已完成",但实际上只做了一部分。外部验证门控为这个问题增加了一道安全防线。


04 架构亮点:双运行时、NativeAOT、双通道支持

除了核心机制的设计精巧,PR #154 在工程实现上也体现了 OpenClaw.NET 项目的一贯追求。

4.1 双运行时支持:原生 + Microsoft Agent Framework

Goal 机制的实现覆盖了 OpenClaw.NET 的两个运行时 (openclaw.net/docs/zh-CN/GOAL_TECHNICAL_ARCHITECTURE.md at main · clawdotnet/openclaw.net · GitHub)

特性 原生 AgentRuntime MAF 适配器 (MafAgentRuntime)
循环粒度 每次迭代一次 LLM 调用 每次迭代一次 agent.RunAsync()(含多次内部 LLM 调用)
工具循环 AgentRuntime 管理 ChatClientAgent 内部管理
执行作用域 不需要 每次迭代推入 MafExecutionContextScope
流式处理 RunStreamingAsync Channel<AgentStreamEvent> 生产者循环包裹

Microsoft Agent Framework (MAF) 是微软 2026 年 4 月发布的 1.0 版本框架,提供统一的 Agent 抽象、中间件管道、内存管理和工作流编排能力 (Microsoft Developer Blogs) 。OpenClaw.NET 作为 MAF 的首批深度集成项目之一,实现了原生运行时和 MAF 适配器的完全对等的 Goal 支持——无论使用哪种运行时,用户都能获得相同的 Goal 体验。

4.2 NativeAOT 兼容性

OpenClaw.NET 的一个核心设计目标是 NativeAOT 友好——支持将应用编译为原生代码,实现秒级启动和更小的内存占用 (Github) 。Goal 机制的所有序列化都使用了 .NET 的源代码生成 JSON 序列化(CoreJsonContext),避免了反射,确保了 NativeAOT 兼容性 (openclaw.net/docs/zh-CN/GOAL_TECHNICAL_ARCHITECTURE.md at main · clawdotnet/openclaw.net · GitHub)

这对于需要作为后台守护进程长期运行的 Agent 网关来说是一个重要优势。根据项目文档,OpenClaw.NET 的桌面发行包已经提供了 Windows x64、macOS Apple Silicon 和 Linux x64 的原生编译版本 (Github)

4.3 通道感知门控

Goal 的自动续跑不是"一刀切"的。系统通过通道门控确保续跑只在合适的场景触发 (openclaw.net/docs/zh-CN/GOAL_TECHNICAL_ARCHITECTURE.md at main · clawdotnet/openclaw.net · GitHub)

通道类型 ChannelId 示例 自动续跑?
Web Chat websocket ✅ 支持
CLI / TUI cli / tui ✅ 支持
HTTP API 不在交互式列表中 ❌ 不触发

这个设计的考虑是,HTTP API 通常用于程序化调用,调用方希望自己控制执行流程,自动续跑可能会打乱其预期行为。而 Web Chat 和 CLI/TUI 是交互式场景,用户期望 Agent 尽可能自动完成任务。


05 行业视角:为什么 Goal 机制代表 Agent 架构的演进方向

OpenClaw.NET 的 Goal 机制并非孤立的技术创新,它反映了整个 AI Agent 行业在长程任务执行方面的重要趋势。

5.1 从"快 AI"到"慢 AI"的范式转移

2025-2026 年,AI Agent 领域正在经历从"快 AI"(即时响应)到"慢 AI"(分钟到小时级的自主工作)的范式转移 (Zylos) 。根据 METR 的研究,前沿 Agent 系统的任务完成能力每 7 个月翻一倍——从 2025 年初的 1 小时任务,到 2026 年的 2 小时任务,预计到 2026 年底将达到 8 小时工作日级别 (Zylos)

在这个背景下,"让 Agent 自主完成任务而不需要人反复推动"成为了核心需求。Zylos Research 在 2026 年 4 月的一篇研究中指出,目标持久性(Goal Persistence)是长程 Agent 的五大关键架构能力之一,并提出了六种实用的设计模式,包括"持久化目标文档"、"显式子目标追踪"和"目标交接检查点"等 (Zylos) 。OpenClaw.NET 的 Goal 机制恰好实现了其中多个模式。

5.2 目标持久性:学术研究的热点

学术界也在关注类似问题。2026 年 5 月的一篇论文《Push Your Agent》提出了定量目标持久性的评估框架,通过 StateQGP(State-based Quantitative Goal Persistence)控制器来衡量 Agent 在长程任务中维持目标的能力 (arXiv.org) 。实验结果显示,即使在 gpt-4.1-mini 这样的轻量级模型上,StateQGP 也能达到 72.2% 的成功率,远超无控制器的基线。

另一篇 2026 年 3 月的研究提出了子目标驱动的 Agent 框架,通过将大目标分解为可管理的子目标,并在每个步骤更新当前活跃子目标,使得 Gemma3-12B 模型在 WebArena-Lite 上的成功率从 6.4% 跃升至 43.0%——超过了 GPT-4-Turbo(17.6%)和 GPT-4o(13.9%) (Zylos)

OpenClaw.NET 的 Goal 机制虽然是一个工程实现而非学术研究,但其核心思想与这些前沿研究高度一致:将目标从模型的上下文窗口中抽离出来,作为一等公民进行显式管理和追踪

5.3 Hermes 等项目的类似探索

类似的需求也出现在其他 Agent 项目中。2026 年 4 月,NousResearch 的 Hermes 项目收到了一个功能请求,要求在 run_agent.py 的 final text 出口处新增一个"lazy-final detector + auto-continue"机制,将检测范围从 Codex 特定的"中间确认"扩展到更广泛的懒惰终止模式,包括提议(offer)、选项推荐、未来意图和明显的默认推迟 (Github)

这表明自动续跑/目标持久化是整个行业的共性需求,而非 OpenClaw.NET 独有的创新。不同项目正在从不同的角度解决这个问题——有的从提示工程入手,有的从运行时控制入手,有的从训练时奖励设计入手。


06 实际使用:一条命令让 Agent 自动完成任务

对于 OpenClaw.NET 的用户来说,Goal 机制的使用非常简单。以下是典型的使用流程 (openclaw.net/docs/zh-CN/GOAL_TECHNICAL_ARCHITECTURE.md at main · clawdotnet/openclaw.net · GitHub)

# 1. 创建一个 Goal(+500k 表示 500K Token 预算)
/goal start 修复 CI 配置,确保所有测试通过 +500k

# 2. 发送实际任务
列出所有失败的测试并逐一修复

# 3. 查看 Goal 状态(显示当前状态、Token 用量、预算)
/goal

# 4. 如果工作需要等待外部事件,暂停 Goal
/goal pause 等待 CI 运行结果

# 5. 外部事件完成后,恢复 Goal
/goal resume CI 已通过,继续

# 6. 工作完成后,标记 Goal 完成
/goal complete 所有测试已通过,PR 已合并

TUI 界面会在 Footer 中实时显示 Goal 的状态——包括当前状态文本、Token 用量进度条,以及按状态着色的视觉提示 (openclaw.net/docs/zh-CN/GOAL_TECHNICAL_ARCHITECTURE.md at main · clawdotnet/openclaw.net · GitHub) 。这让操作员可以一目了然地了解 Agent 当前的工作状态。

模型本身也可以通过工具与 Goal 交互:

操作 模型工具 操作员 CLI
读取 Goal get_goal /goal status
创建 Goal create_goal(需用户指示) /goal start
标记完成 update_goal(complete) /goal complete
标记阻塞 update_goal(blocked) /goal block
暂停 ❌ 不支持 /goal pause
恢复 ❌ 不支持 /goal resume

这种权限分离的设计体现了工程上的深思熟虑——模型可以读取和创建 Goal,也可以标记完成或阻塞,但暂停和恢复只能由操作员执行。这确保了人类始终对 Agent 的执行流程保有控制权 (openclaw.net/docs/zh-CN/GOAL_TECHNICAL_ARCHITECTURE.md at main · clawdotnet/openclaw.net · GitHub)


07 项目动态:一次高质量的社区贡献

PR #154 由社区贡献者 geffzhang 提交,经过 12 个 commit、20 条评审讨论,在 2 小时前刚刚合并到主分支 (Add session-scoped goal mechanism with auto-continuation by geffzhang · Pull Request #154 · clawdotnet/openclaw.net · GitHub) 。这次贡献的质量非常高——不仅代码量达到 +3,994 行,还包含了 59 个测试用例全部通过、完整的技术架构文档(755 行中文文档),以及 CLI 命令、TUI 显示、模型工具等端到端的完整实现。

值得注意的是,OpenClaw.NET 项目本身是一个独立的开源实现,其官方声明明确指出该项目与上游 OpenClaw(TypeScript 项目)无隶属关系,但致力于保持生态兼容性 (Github) 。项目使用 MIT 协议开源,采用 .NET 10 SDK 和 C# 14 开发,强调 NativeAOT 兼容性、零警告编译和显式诊断设计。

从更宏观的视角看,OpenClaw.NET 的 Goal 机制为 .NET 生态的 AI Agent 开发提供了一个重要的参考实现。在 .NET 领域,Microsoft Agent Framework 虽然提供了强大的 Agent 抽象和编排能力 (Microsoft Developer Blogs) ,但长程任务的自动续跑和目标持久化仍然是应用层需要解决的问题。OpenClaw.NET 的这次更新,为 .NET 开发者提供了一个开箱即用的解决方案


08 总结:Goal 机制意味着什么

OpenClaw.NET 的 Goal 机制代表了一种重要的工程思路:与其试图训练模型"不要偷懒",不如在运行时层面为 Agent 装上"导航系统"。这个思路的优势在于:

  • 模型无关:不依赖特定模型的行为改进,适用于任何 LLM Provider(OpenAI、Claude、Gemini、本地模型等)
  • 成本可控:Token 预算系统防止无限制消耗
  • 安全可靠:六状态状态机 + 阻塞检测 + 外部验证,多重安全网
  • 体验一致:CLI、TUI、Web Chat 统一的交互体验

对于产品经理和技术管理者来说,Goal 机制的成熟意味着 AI Agent 从"玩具"向"生产工具"的又一步跨越。当 Agent 能够可靠地完成需要多次迭代的长程任务,而不需要用户反复手动推动时,它才能真正融入日常工作流程,成为提升效率的实用工具。

OpenClaw.NET 的这次更新,让我们离这个目标又近了一步。


参考链接: