驱动与 provider 中立:PromptStack、Message 与统一工具协议
30 秒导读: Griptape 里,上层逻辑(任务、工具、记忆)从不直接碰 OpenAI/Anthropic 的 SDK。它们只跟一套 provider 无关的中间表示打交道——
PromptStack(一叠消息)、Message(一条消息)、MessageContent(消息里的一块内容)。真正懂某家 API 的只有一个BasePromptDriver子类。于是"换供应商"退化成"换一个 driver 对象",代码里就是配置里的一行。
本章讲清一件事:为什么在 Griptape 里换 LLM 供应商只需要改一行。 我们先讲这套抽象是什么、长什么样,再拆开 driver 基类的模板方法,最后看三个可切换开关和配置层怎么把它们装配起来。
不重复的部分:ReAct 文本协议怎么解析,见 02-prompt-task-agent-loop.md;各家 provider driver 的逐行实现不展开,本章只讲基类契约 + 抽象点。