Pi 系列 09|Skills 系统:把可复用指令做成按需内容
前面几篇可以先看: 01 事件流 02 Agent loop 与 turn 03 Provider 抽象 04 Tool 系统(上) 05 Tool 系统(下) 06 实战:给应用加一个 tool 07 Session 系统 08 Context 构建 关于 skill,前面也写过两篇:一篇是 skill 的介绍,一篇是 skill 的整体格式要求: 从 prompt 到...
前面几篇可以先看: 01 事件流 02 Agent loop 与 turn 03 Provider 抽象 04 Tool 系统(上) 05 Tool 系统(下) 06 实战:给应用加一个 tool 07 Session 系统 08 Context 构建 关于 skill,前面也写过两篇:一篇是 skill 的介绍,一篇是 skill 的整体格式要求: 从 prompt 到...
前面几篇可以先看: 01 事件流 02 Agent loop 与 turn 03 Provider 抽象 04 Tool 系统(上) 05 Tool 系统(下) 06 实战:给应用加一个 tool 07 Session 系统 本文源码主要在 core/system-prompt.ts、core/messages.ts、extensions/runner.ts、agent...
前面几篇可以先看: 01 事件流 02 Agent loop 与 turn 03 Provider 抽象 04 Tool 系统(上) 05 Tool 系统(下) 06 实战:给应用加一个 tool 本文源码主要在 session-manager.ts 和 core/compaction/compaction.ts。 本文来看 pi 的 session 系统。进入源码之...
This article explains Claude Code’s dynamic workflows from the ground up, covering the following: What dynamic workflows are, and why Anthropic built them; What problems its main APIs each so...
本文从头解释 Claude Code 的动态工作流,主要包含以下内容: 动态工作流(Dynamic Workflows)是什么,官方为什么做它; 它的主要 API 分别解决什么问题; 七种可复用的质量模式; 怎么配置和触发,运行时有哪些限制; 实际运行效果如何; 它和 Anthropic 几篇文章的关系; 基于它做的一个开源移植。 一、它要解决什么问题...
前面五篇可以先看: 01 事件流 02 Agent loop 与 turn 03 Provider 抽象 04 Tool 系统(上) 05 Tool 系统(下) 给基于 pi 的应用加一个 tool,有 customTools 和 extension 两种注册方式。本文以一个查天气的 tool 为例,分别用这两种方式实现。 tool 定义本身在两种方式下是一样的,区别只在于...
前面四篇可以先看: 01 事件流 02 Agent loop 与 turn 03 Provider 抽象 04 Tool 系统(上) 写在前面 上篇我们了解了 toolCall,看了一个工具调用怎么执行、出错怎么处理。 但有一个没有提及:** toolCall 是怎么来的?模型怎么知道自己有哪些工具可用?工具又是怎么进到系统里的?** 这一篇简单了解下工具从注册、暴露给模型、...
前三篇可以先看 Pi 系列 01|用最小例子看 agent runtime 的事件流 Pi 系列 02|Agent loop 与 turn Pi 系列 03|Provider 抽象与统一事件协议 这篇介绍下 tool 相关的。 写在前面 这一篇(上)先回答一个问题:当模型”调用”一个工具时,从它生成调用意图,到本地真的执行,再到结果回到下一轮上下文,中间发生了什么? 我们顺着这条...
没看过前两篇的话,可以先看 Pi 系列 01|用最小例子看 agent runtime 的事件流 和 Pi 系列 02|Agent loop 与 turn。 写在前面 上一篇结尾,streamAssistantResponse 里有这样一段调用: const streamFunction = streamFn || streamSimple; const response = awai...
没看过上一篇的话,可以先看 Pi 系列 01|用最小例子看 agent runtime 的事件流。 写在前面 为什么一句 prompt 明明只问了一句话,pi 最后却跑了 4 个 turn? 如果你把 agent 理解成”把 prompt 发给模型一次”,这里会很反直觉:模型没有一次性回答,而是先请求 ls,拿到结果后再请求 read package.json,接着又读 hello.m...