betaHi's Blog

让模型写脚本来调度模型:Claude Code 动态工作流详解

本文从头解释 Claude Code 的动态工作流,主要包含以下内容: 动态工作流(Dynamic Workflows)是什么,官方为什么做它; 它的主要 API 分别解决什么问题; 七种可复用的质量模式; 怎么配置和触发,运行时有哪些限制; 实际运行效果如何; 它和 Anthropic 几篇文章的关系; 基于它做的一个开源移植。 一、它要解决什么问题...

Pi 系列 05|Tool 系统(下):工具从哪来、怎么暴露,以及 extension 的角色

前面四篇可以先看: 01 事件流 02 Agent loop 与 turn 03 Provider 抽象 04 Tool 系统(上) 写在前面 上篇我们了解了 toolCall,看了一个工具调用怎么执行、出错怎么处理。 但有一个没有提及:** toolCall 是怎么来的?模型怎么知道自己有哪些工具可用?工具又是怎么进到系统里的?** 这一篇简单了解下工具从注册、暴露给模型、...

Pi 系列 04|Tool 系统(上):一个 toolCall 的一生

前三篇可以先看 Pi 系列 01|用最小例子看 agent runtime 的事件流 Pi 系列 02|Agent loop 与 turn Pi 系列 03|Provider 抽象与统一事件协议 这篇介绍下 tool 相关的。 写在前面 这一篇(上)先回答一个问题:当模型”调用”一个工具时,从它生成调用意图,到本地真的执行,再到结果回到下一轮上下文,中间发生了什么? 我们顺着这条...

Pi 系列 02|Agent loop 与 turn:一次 prompt 为什么会拆成 4 趟

没看过上一篇的话,可以先看 Pi 系列 01|用最小例子看 agent runtime 的事件流。 写在前面 为什么一句 prompt 明明只问了一句话,pi 最后却跑了 4 个 turn? 如果你把 agent 理解成”把 prompt 发给模型一次”,这里会很反直觉:模型没有一次性回答,而是先请求 ls,拿到结果后再请求 read package.json,接着又读 hello.m...