
《Agent Runtime 工程化》第十一章 源码研读方法:11.3 读项目入口
入口包括 CLI 入口、IDE extension 激活入口、Web server 入口、worker 入口。入口读法: 找 package.json scripts 和 bin; 找 extension manifest; 找 server bootstrap; 找主 command handle

入口包括 CLI 入口、IDE extension 激活入口、Web server 入口、worker 入口。入口读法: 找 package.json scripts 和 bin; 找 extension manifest; 找 server bootstrap; 找主 command handle

Agent 可以动态接入和移除工具;工具 schema 改变不会把 Agent 弄崩;MCP 工具仍然经过本地权限审批;模型供应商替换不影响 runtime 主循环。完成这一章,你的 miniagent 已经具备生态接入能力。

实现 Tool Permission Matrix: 对文件路径做 workspace whitelist; 对 shell 命令做风险分类; 对 destructive 操作默认拒绝; 对 write/network/install 操作生成 preview 并请求确认; 所有审批写入 audit

工具结果进入上下文前,应先问: 这是事实结果,还是日志噪声? 后续步骤是否需要逐字引用? 是否有结构化字段可提取? 是否超过预算? 是否包含 secret 或隐私数据? 例如测试失败日志,模型通常需要失败用例、断言信息、文件路径、行号、错误堆栈顶部,而不是全部构建输出。搜索结果通常需要文件路径和匹配

目标:给 Agent 增加上下文预算分配器。 功能范围: 对历史消息、文件片段、工具结果、repo map 分配 token; 超限时按优先级降级; 生成 context debug report; 在 UI 或日志中解释'为什么包含/丢弃某项'。 适合证明: 上下文工程; token 成本治理;

入门阶段可先用本地 JSONL: 每个 run 写入: 后续再接 OpenTelemetry、LangSmith 或自建 UI。先把语义记对,再追求漂亮 dashboard。

说 Agent '变好了'很容易。证明它变好了,要靠 eval。 Agent 产品很容易陷入'今天试了几个问题,感觉不错'的幻觉。工程系统不能靠感觉上线。Eval Harness 要把真实任务变成可重复的测试,把 trace 变成回归样本,把 prompt、工具和 runtime 策略的变化变成可比

本书统一使用以下术语。 turn 是一次用户与系统的交互轮次。用户提出一个任务,是一个 turn 的开始。 step 是 runtime 在一个 turn 内的一次模型决策或工具执行推进。一次 turn 可以有很多 step。 run 是一次完整执行,从收到用户请求到最终回答、失败或取消。长任务中,

第八章 Checkpoint、Resume、Rollback:8.3 gitbased checkpoint 另一种做法是借助 git。每个 step 或关键写入点创建临时 commit、stash、worktree 或 patch 文件。 gitbased 的优点是成熟、可审计、适合代码项目。缺点

第十二章 hermesagent 产品级实战 前面十一章讲的是方法。最后这一章,我们把方法放进一个真实开源项目里。 本章选择 NousResearch/hermesagent。原因不是它'功能多'这么简单,而是它已经把 Agent Runtime 从一个工具调用循环扩展成了产品系统:CLI/TUI、Desktop、messaging gateway、多 pr

上下文构建往往是 coding agent 的核心竞争力。读时关注: system/developer 指令; 用户消息和历史保留; 文件读取策略; repo map; 最近修改; terminal output; diagnostics; selection/range; embedding 或检

用户说'回滚'时,可能有三种意思: 回滚文件到某个 checkpoint; 回滚对话状态,让 Agent 忘记某段计划; 回滚外部副作用,例如撤销 API 操作。 Runtime 必须区分这三件事。文件 patch 可以回滚,对话状态可以恢复,外部副作用通常只能补偿,不能直接撤销。比如创建了 Git

我对生产级 Agent Runtime 的 10 条工程判断 写到第 21 天,可以把前面的问题收成一些判断。 这些不是金句。 金句没用。 真正有用的是:你在设计 Agent 系统、读开源项目、排线上事故时,能不能拿它们当检查项。 下面 1

过去 30 天,我对 Agent Runtime 的理解变化 这 30 天,我一直在写同一个主题: 一开始,我以为要做的是'把 Agent Runtime 这个概念讲清楚'。 写到后面,我发现更重要的不是概念。 是证据。 一个 Agent

长任务一定会中断。问题是:失败后怎么继续,而不是重来? Agent Runtime 一旦进入真实工程任务,就会遇到长运行:改多个文件、跑多轮测试、安装依赖、查文档、等待用户确认。浏览器刷新、进程崩溃、网络超时、模型失败、用户临时离开,都可能打断 run。如果没有 checkpoint,Agent 只能从头再来;从头再来又可能重复执行副作用。 可恢复执行系统要

A 术语表 Agent:根据目标和上下文选择下一步行动的执行体。 Agent Runtime:负责模型调用、工具调用、上下文、权限、状态、观测、恢复、评测和成本治理的运行系统。 Tool Calling:模型输出结构化工具调用,应用执行工具并把结果返回模型的接口能力。 Tool Registry:工具定义、schema、风险等级、执行器、输出策略和版本的注册

模型调用失败时,runtime 可以重试;但要分清失败类型。 网络抖动可以重试;限流需要退避;上下文超限需要重新构建上下文;模型不支持某个 schema 特性,需要 schema 降级;工具调用格式不合法,可以让模型重试一次;安全策略拒绝,不应换模型绕过。 一个清晰的模型错误分类: 类型 处理 RA

完成本书和毕业项目后,你应能做到: 从零实现一个 TypeScript Agent Runtime; 讲清楚 tool call loop 的完整生命周期; 设计工具 schema、权限模型和审批流; 解决 context 超限与历史压缩; 实现 checkpoint、resume、rollback

一个成熟 runtime 必须支持取消。取消不是'UI 不显示了',而是从用户操作一路传播到模型请求、工具执行、子进程和资源清理。 这段代码只是开始。上线后的 runtime 需要把 AbortSignal 传给 HTTP client、模型 SDK、工具 executor、子进程管理器。任何一层吞

Agent Runtime 和 Workflow Engine 有什么区别? 很多人第一次做 Agent 系统,会问: 既然 Temporal、Step Functions、Airflow、Dagster 这类 workflow engin