如何向 Claude 告知它可以使用工具？	通过在请求中包含 JSON schema 并使用 `tools` 关键字参数。
当 Claude 决定使用工具时，返回的消息结构是什么？	一个多块消息（multi-block message）。
多块消息中包含哪两种主要的块（blocks）？	文本块（Text block）和工具使用块（Tool use block）。
在工具使用响应中，文本块（Text block）的作用是什么？	提供给用户的、用于解释当前情况的文本。
工具使用块（Tool use block）的作用是什么？	指示开发者调用特定的函数或工具，并提供所需的输入参数。
关于对话历史，Claude 是否会自动存储？	不存储，开发者必须手动管理和维护对话历史。
在执行工具后，向 Claude 回复时必须包含什么？	整个对话历史（conversation history）。
在代码中，如何将 Claude 的响应添加到消息列表中？	将响应的 `content` 列表（包含所有块）作为新的助手消息（assistant message）添加。
为了支持多块消息，需要对哪些辅助函数进行更新？	需要更新 `add user message` 和 `add assistant message` 等辅助函数。
