OpenKub 图书开发书单中职/技工版 · 十二章候选稿

十二章候选稿 · 汇总于2026-10-08

第8章 把想法变成能运行的小工具

样章 v0.1 | 2026年9月21日

按一下,再靠近一点

上一章,我们把一只笔袋做成了一页作品。灰色的布面、蓝色的补丁,以及修补后继续使用的经历,都留在了图文中。

设想一位同学看过以后说:“我想再看看补丁周围的针脚。”你可以把细节图和说明全部放到首页,也可以留一个按钮,让愿意多看的人自己展开。看完以后,他还能把这部分收起来,回到原来的阅读节奏。

这个想法不大,却改变了读者接近作品的方式。他开始能够参与决定:什么时候继续看,什么时候停在这里。

请AI给出建议,它可能写下:“增加一个查看细节的按钮。”这仍然是一句建议。要让按钮起作用,还需要一些可以被计算机执行的内容:按下时查看当前情况,显示或收起细节,并把按钮上的文字一起改好。

这些内容可以写成程序。本章就从这个小动作开始,借助AI把想法变成能够打开、能够操作的小网页,再读懂其中几处关键安排,亲手改变一次行为。

你可以继续使用第7章的作品,也可以采用本章的笔袋材料。基本练习只做一个功能:展开与收起补丁细节。完成后,再考虑它是否真正帮助了读者。

学完本章,你将能够: 把一个功能说成具体的输入、处理和结果;借助AI制作并运行小网页;解释一处判断怎样影响页面;根据实际表现修改程序;分清生成代码、运行程序与调用工具之间的关系。

8.1 把需要的功能说明白

8.1.1 输入什么,得到什么结果

面对上一章的作品,可以先问:“观看的人想做什么,现有页面还不能帮助他完成?”这个问题比“还能加什么技术”更容易把我们带到有用的地方。

笔袋作品希望让人注意一次修补。主要介绍已经能够读懂,一部分读者还想知道针脚和布面有什么细节。因此,我们先增加一个可以展开的区域,把这些补充内容放进去。

暂时没有细节照片时,用一句清楚的观察说明也能开始。先让阅读方式发生变化,之后再放入自己的图片。

下面的材料可以直接用于练习:

标题:这块蓝色,我想留下

主要介绍: 笔袋的边角磨破后,我补上了一块蓝布。第二天,我把常用的几支笔放回里面,照常带它上课。

补丁细节: 蓝布与灰色布面不同,四周的针脚有些不齐。我想把这些针脚留在画面里,让人看见这只笔袋经过一次修补,又回到了每天使用的东西中间。

这里的“我”属于示例中的叙述者。采用这份材料时,作品旁可以保留“根据本章笔袋示例材料制作”的说明。

接着,把想要的变化说清楚:打开页面时,标题和主要介绍能够看到,细节先收起。按钮写着“看看补丁”。按一下,细节展开,按钮变成“收起细节”;再按一下,细节收起。

这个过程已经包含三个相互联系的部分。

输入 是程序收到的信息或动作。在这个例子中,读者按下按钮,就是一次输入。输入不一定是一段文字,也可以是一次选择、一张图片或设备测到的数值。

处理 是程序根据已有信息执行的步骤。这里要先查看细节是否收起,再决定展开还是收起,同时更新按钮上的文字。

输出 是程序产生的结果。读者能够看到细节区域和按钮文字发生变化,原来的标题与主要介绍仍然留在页面上。

可以把它连成一句话:读者按下按钮,程序查看细节当前是否可见,再改变细节和按钮的显示。

注意,同样按一下按钮,在不同情况下会产生不同结果。细节收起时,按一下应当展开;细节已经展开时,按一下应当收起。要理解这个功能,除了知道输入,还要知道操作之前是什么情况。

保存这类当前情况的信息,常称为程序的状态。本章只需要理解一个很具体的状态:细节现在是展开还是收起。它会影响下一次按下按钮时做什么。

确定自己的一个小功能。 你可以沿用展开细节,也可以让已经完成的声音作品能够播放。先写清使用者做什么、页面怎样回应,再选定一种做下去。不同功能不必同时加入。

若一段文字直接放在页面上就足够清楚,保留原样也合理。这里选择按钮,是为了让读者可以决定是否继续查看补充内容。

8.1.2 用具体例子说明预期行为

“做得方便一点”“让页面更智能”表达了愿望,却还没有说明怎样才算做到。计算机最终要执行具体操作,AI协助编写时也需要知道我们期待的变化。

把动作前后的情况摆在一起,就容易检查:

操作前的情况 读者做什么 应当看到的结果
刚打开页面,细节收起 暂时不操作 标题与主要介绍可见,按钮写着“看看补丁”
细节收起 按一下按钮 细节展开,按钮改为“收起细节”
细节展开 再按一下按钮 细节收起,按钮改回“看看补丁”

这几个例子还说明了什么不应改变:标题没有被替换,主要介绍没有消失,按钮一直能够找到。我们期待的是阅读区域的变化,不需要每按一次都重新生成一篇介绍。

这些可以观察的要求,能够帮助人和AI共同理解功能,也能在完成以后帮助我们判断结果。此时不必先知道具体代码怎样写。

本章选择把内容做成一个网页文件。网页 可以包含标题、段落、图片和按钮,浏览器根据文件中的安排显示内容、执行相应操作。[1][3] 基本练习在自己的电脑上打开即可,不需要先建立一个公开网站。

打开AI对话工具,附上刚才的材料,再提出这样的要求:

请把这份笔袋材料做成一个简单网页。保留标题、主要介绍和材料说明,只增加“展开与收起补丁细节”这一个功能。

初次打开时,细节收起,按钮写“看看补丁”。按一下后显示细节,按钮改为“收起细节”;再按一下恢复。标题和主要介绍始终保留。

请提供一个完整的HTML文件,页面样式和交互代码都放在其中,可保存为patch.html后用浏览器打开。先使用文字,不加载外部图片、字体或其他网络资源。

请使用真正的按钮,让它能够通过鼠标或键盘操作。代码后简要指出:在哪里接收点击,在哪里判断,在哪里改变页面。

HTML是超文本标记语言(HyperText Markup Language) 的英文缩写,用于描述网页内容及其结构。[1] 现在先把它理解为浏览器可以读取的一种页面写法,下一节再看它如何与其他部分配合。

“完整文件”与“其中几行示例”也要分清。若AI只给出一个按钮和几行操作代码,可以继续说:“请把它们放入一个能直接打开的完整页面。”你可以要求它解释,也可以要求它把解释与文件内容分开。

本章配套材料中的patch.html提供了一种完整写法。可以先尝试自己与AI生成,再用配套文件对照;也可以从配套文件出发,修改成自己的作品。两种方式都需要实际运行,并理解关键变化。

把自己的要求再读一遍。 它是否说明了初次打开时的样子、第一次操作后的结果,以及接着操作会怎样?同学只看这段话,能否知道你准备做出什么?

若对方理解与你不同,先修改要求,再继续制作。这样能够减少程序已经写出很多内容以后,才发现双方讨论的是两件不同事情。

8.2 与AI一起生成和修改程序

8.2.1 读懂关键输入、判断与输出

AI给出的文件中可能出现许多带尖括号的文字、样式设置和英语单词。可以先沿着刚才的功能寻找,不必从第一行开始背诵全部写法。

一个常见的交互网页会用到三类内容。HTML 安排有哪些标题、段落和按钮;层叠样式表(Cascading Style Sheets,CSS) 安排字号、间距等外观;JavaScript 是一种编程语言,可以用来编写点击以后执行的操作。[1][2][3]

本章把这三类内容放在同一个文件里。它们一起形成页面,但承担的事情不同。改变标题文字,主要涉及内容;调大按钮,主要涉及样式;让按钮展开细节,则涉及交互行为。

我们先看页面上的按钮和细节区域。下面是其中一部分:

<button id="detailButton" type="button">看看补丁</button>
<section id="detail" hidden>
  <h2>补丁细节</h2>
  <p>蓝布与灰色布面不同,四周的针脚有些不齐。</p>
</section>

button表示按钮,section把一组相关内容放在同一区域中。id为它们设置名称,后面的程序就能找到这个按钮和这块区域。这里分别用了detailButton和detail,名字需要前后一致。[1]

hidden表示细节区域开始时隐藏,因而页面先只显示主要内容。文字仍然写在文件里,展开时才让它出现在页面中。[4]

接下来,找到控制按钮的JavaScript。下面保留了主要行为:

const button = document.getElementById("detailButton");
const detail = document.getElementById("detail");

function toggleDetail() {
  if (detail.hidden) {
    detail.hidden = false;
    button.textContent = "收起细节";
  } else {
    detail.hidden = true;
    button.textContent = "看看补丁";
  }
}

button.addEventListener("click", toggleDetail);

先看开头两行。它们按刚才的名称找到按钮和细节区域,分别用button和detail来指代。后面写detail.hidden,就是在查看或改变这块细节区域的隐藏情况。

这里的const为找到的对象建立一个后续使用的名字。暂时不需要展开全部语法,只要能够把名字与页面上的对象对应起来。

再看中间的if与else,可以读成“如果……,否则……”。程序检查detail.hidden:若细节当前隐藏,就执行前一组操作;若当前没有隐藏,就执行后一组。

在本例中,true表示“是隐藏的”,false表示“不是隐藏的”。所以,detail.hidden = false会让细节显示;detail.hidden = true会让它收起。等号在这里表示把右边的值设置给左边的项目。[4]

细节变化时,按钮上的文字也应一起变化。textContent用来读取或设置对象的文字内容。[6] 细节展开后,按钮写“收起细节”,告诉读者再按一次会发生什么。

中间这一组操作用function toggleDetail()组织起来,成为一个可以调用的函数。函数把一组步骤放在一起,需要时执行;这里的名字表示“切换细节”。[3]

最后一行把按钮与这组步骤连接起来。浏览器把点击等已经发生的动作作为事件,程序可以为某个事件安排处理操作。[3] 这行代码的意思是:按钮收到点击时,执行toggleDetail中的步骤。

现在可以把代码重新读成日常语言:

找到按钮和细节区域。按下按钮时,检查细节是否隐藏。若隐藏,就显示它,并告诉读者可以收起;若已经显示,就隐藏它,并告诉读者可以再看。

这段程序没有询问模型“现在应该怎么办”。它依据当前情况执行已经写好的判断。AI参与了编写;页面运行时,这段代码由浏览器执行。

跟着程序走两次。 假设刚打开时细节隐藏。第一次按下,判断会进入哪一组?执行完以后,detail.hidden变成什么?再按一次,为什么会走另一组?先自己想,再运行检查。

配套完整文件还包含文字排版、键盘焦点,以及把展开情况提供给辅助阅读工具的设置。[5] 它们帮助不同方式操作页面的人使用这个功能。上面的节选用于看清主要判断,无需一次记住所有属性。

你的程序也可能采用另一种写法。可以请AI指出其中相应的输入、判断和输出,再结合页面核对。判断是否真正相同,要看执行过程与结果,不能只看变量是否取了同样的名字。

8.2.2 实际运行,发现问题并修改

读过关键部分,就把它放到浏览器里试一试。运行程序,就是让相应环境按照程序中的安排执行。本例中,浏览器显示HTML内容,并运行其中的JavaScript。[1][3]

将AI给出的完整文件内容放入文本编辑器,保存为patch.html,再用浏览器打开。代码块外面的解释和围住代码的三条反引号不用复制进去。若所用工具已经生成可下载的HTML文件,直接下载并打开即可。

使用文本编辑器保存,不把Word文档简单改成.html。若浏览器显示了一页代码,可以检查实际文件名是不是patch.html.txt,以及是否用浏览器打开了正确文件。具体按钮位置可按所用编辑器操作。

有可运行网页预览的环境,也可以先在预览中试。看到一张页面图片,还不足以判断交互;要实际按下按钮,观察内容是否改变。

先完成一次完整操作。 打开页面,找到标题、主要介绍和“看看补丁”。按一下,阅读展开的细节;再按一下,看它能否收起。整个过程中,主要介绍应当保持可见。

顺利完成,就已经得到了一个能够使用的小功能。若结果与你想的一样,可以保留它,不必为了练习修错而故意破坏程序。

遇到差异时,先描述发生了什么。例如:“初次打开时,细节已经显示,但按钮仍写着‘看看补丁’。”这比“网页不对”提供了更多可以查找的信息。

另一种情况是:“第一次点击后,按钮变成‘收起细节’,可是细节文字没有出现。”这说明至少有一部分点击处理已经执行,需要继续查看细节区域的名称、显示设置和相关代码。原因要结合实际文件确认,不急着凭现象下结论。

可以把当前完整文件与这段观察一起交给AI:

我打开这个文件后,第一次点击,按钮文字改变了,但细节没有出现。预期是细节和按钮文字同时变化。请根据这份代码检查原因,说明需要改哪里,保留原来的标题、主要介绍和其他已经正常的部分。

若使用的AI不能直接读取电脑文件,就粘贴代码或上传这个练习文件。它需要看到正在运行的内容,不能只凭我们心中的旧版本修改。

收到修改后,再运行原来那次操作。找到问题、检查原因、修改并重新观察的过程,称为调试。它可以很小,只围绕一个按钮展开,也可以用于以后更复杂的程序。

接着主动改变一项要求。 假设你比较之后觉得,这页内容很短,读者一打开就应看到补丁细节,同时保留收起的选择。现在要把“开始时收起”改为“开始时展开”。

先写出新的预期:打开时细节可见,按钮写“收起细节”;按一下以后细节收起,按钮写“看看补丁”;再按一下恢复展开。

在前面的简化HTML中,这项修改涉及两个直观的地方:去掉细节区域开始标签上的hidden,把按钮的初始文字改成“收起细节”。点击后的两种判断仍然可以沿用,因为它们查看的是当时的实际情况。

配套完整文件还要把初始的展开信息一起改好。可以请AI完成这次局部调整,并指出改动位置;也可以对照配套材料中的patch-open.html阅读。先保留原文件,再把修改后的文件另存一个名字,便于比较。

用同一组动作比较修改前后。 分别打开两个文件,各按两次按钮。初次显示不同,后续都应能够正常展开和收起。若只修改了按钮文字,细节仍然隐藏,就还没有完成新要求。

刷新本章配套页面,会按各自文件中的初始设置重新开始。因为这两个示例没有保存上一次的展开情况,浏览器当前显示的变化没有被写回源文件。需要“下次继续上次状态”时,还要另行设计保存与恢复,基本练习暂不增加。

功能能运行以后,再看它是否便于操作。按Tab键,把焦点移到按钮上,再按Enter或空格,应当能完成相同操作。[5] 缩窄浏览器窗口,看看按钮和文字是否仍然容易找到,不必横向拖动才能读完一句话。

还可以把上一章的照片放进细节区域。让AI使用你实际保存的图片文件名,并说明图像内容。照片与网页分开存放时,网页中的引用需要能找到对应文件。[1] 这属于内容替换,展开与收起的主要判断不必因此改变。

本章先用文字完成整个功能,加入照片是可选的一步。无论采用哪种材料,都让一位读者试一次,看看他是否知道按钮会做什么、展开后是否得到了想了解的信息。

8.3 理解模型、程序与工具的关系

8.3.1 生成说明与调用工具执行操作

做到这里,可以回看:这件作品从一句想法到能够运行,中间分别发生了什么?

你先用文字说明要求,AI生成页面代码。随后,你把代码保存为文件,浏览器读取文件,按规定显示内容和处理点击。人的表达、模型生成和程序执行共同参与了这个过程。

这里有两个容易混在一起的时刻:编写程序时 和使用程序时。

编写时,模型根据要求生成或修改代码,帮助我们比较做法、解释问题。使用时,本章的按钮执行文件里已有的判断,没有再次请求模型生成答案。这个网页借助AI制作完成,运行本身不需要调用AI。

因此,使用AI编写的工具,可以是一个普通网页;一个页面能响应点击,也不自动意味着其中运行了大模型。判断它用了什么,应当看实际组成和运行过程。

反过来,有些AI应用配备了读取文件、写入文件、运行代码或操作浏览器的工具。这时,模型可以根据任务发出工具调用请求,由配套的执行程序完成相应操作,再把结果返回给模型。[7]

工具调用 可以先这样理解:模型提出要执行的操作以及所需信息,系统通过相应工具执行,并返回发生了什么。至于工具在哪台计算机上运行、能够操作哪些文件,取决于具体环境,不能从一句自然语言回答中推断。

下面是一个过程示例,用普通语言表示其中的关系:

你提出要求:把这份材料写成patch.html。

模型请求写入工具:将指定的页面内容保存到patch.html。

工具执行后返回:文件已写入,或说明未能写入的原因。

配有浏览器工具时,还可以继续打开文件,操作按钮,返回页面变化或遇到的问题。

工具真正执行以后,环境中的文件或运行结果才会发生相应变化。只输出“我已经写好了”这句话,不能代替写入操作。[7]

如果当前工具只有文字对话能力,你可以自己保存和打开文件,照样完成本章。配有文件与运行工具时,则可以让它们承担部分操作。学习重点是分清哪些步骤已经发生,以及怎样查看结果。

程序与模型也可以通过工具结合。例如,模型帮助理解“把照片等比例缩小到600像素宽”的要求,计算工具负责计算尺寸,图像工具执行缩放。最后还要查看图片是否保持比例、重要内容有没有被截掉。

其中,文字要求需要被理解,计算需要输入正确数值,文件处理需要拿到正确图片。这些环节各有作用。工具返回了结果,也仍然需要检查它是否回答了我们原来的问题。

本章不要求搭建这类工具连接。先把自己完成的保存、打开和检查看清楚,下一章再观察AI怎样把几项行动接起来,并根据实际结果继续处理。

8.3.2 检查计算、读取或保存是否真正完成

第6章讨论过,一个回答需要有根据。到了程序与工具这里,我们还可以直接检查行动留下的结果:算出了什么,读到了什么,文件里保存了什么,页面实际怎样变化。

先看计算是否与要求相符。 第7章用过一张1200×800像素的图片。现在要把它等比例缩小到600像素宽,缩放比例是600÷1200=0.5,高度应为800×0.5=400像素。

可以请AI计算,也可以用计算器核对,最后得到600×400像素。若工具输出600×600像素,要进一步看它做了什么:可能是拉伸,也可能是裁剪或增加留白,单看两个数字还不能判断具体处理过程。

这个小例子提醒我们,计算结果要与“等比例缩小”的要求一起核对。数字正确、动作正确、符合用途,是相互联系却需要分别查看的事情。

再看是否读取了正确材料。 让AI解释当前网页时,可以请它指出标题、按钮初始文字,以及细节区域是否带有hidden。把它说出的内容与实际文件对照,就有了可以核查的对象。

例如,你已经把初始状态改为展开,AI却仍说“打开时细节隐藏”,就要确认它看到的是哪个文件。也许读取了修改前的版本,也许只根据上一次对话推断;需要回到读取内容本身检查。

把一张照片的文件名写在对话中,也不意味着模型已经看过照片。要判断读取是否完成,应当看实际提供的材料或工具读取结果。复制了一段代码给AI,则应如实说它依据这段代码分析,不把它写成已经浏览过整个项目。

最后看保存与运行的结果。 页面代码出现在对话里,说明我们得到了一份可以采用的内容;保存后,才有一个实际文件;用浏览器打开并操作,才能看到这份文件运行得怎样。

可以把几个结果这样区分:

已经发生的事情 目前能够说明什么 还需要怎样检查
对话中出现完整代码 已生成一份程序内容 保存并运行,查看实际行为
写入工具报告成功,或编辑器完成保存 操作报告文件已写入 重新读取或打开对应文件,确认内容
页面打开,按钮能够展开与收起 当前环境下,这组操作能够执行 对照要求,查看内容与使用效果

不必为每一次点击保存大量记录。对这个小工具,亲自完成“打开—展开—收起”,再指出一处修改后的变化,就能形成有用的检查。

也要看清检查覆盖了什么。按钮能点击,尚不能证明同学容易理解按钮文字;在自己的电脑上能打开,尚不能说明它已经发布给所有人使用。需要哪一种结果,就针对那种结果再做确认。

若通过工具修改文件,可以把范围说得具体:“只修改当前练习网页中细节的初始显示,其他内容保持不变。”涉及覆盖已有作品或删除材料时,先确认自己要保留什么。

完成自己的小工具。 保留能够继续修改的网页文件,运行选定的功能,再写两三句话:它帮助观看者做什么;哪一段判断决定了结果;你改变了哪一项要求,实际表现怎样变化。

沿用第7章的材料说明,补充AI这次协助了什么。例如:“AI帮助生成网页和解释点击程序;我确定展开方式,对照实际页面修改,并检查按钮操作。”按照真实过程写即可。

再把页面交给一个人使用。若他想看细节,能够自己找到按钮,并顺利回到主要介绍,这个小功能就帮助作品多打开了一种阅读方式。若他始终没有注意到按钮,就还有一个具体问题值得继续改进。

本章回望

创造一个小工具,可以从一项很小的需要开始。先说明谁要做什么,再用具体例子描述输入、处理与结果,就能把模糊的愿望变成可以讨论和检查的功能。

AI可以帮助生成代码,我们沿着关键行为读懂程序。按钮收到动作,程序查看细节是否隐藏,再选择相应操作。同样的输入与不同的当前情况结合,会带来不同输出。

实际运行让设想接受检查。能够说明“我做了什么、看到什么、原来希望怎样”,就更容易找到需要修改的地方。原本运行正常时,也可以主动改变一项要求,观察程序怎样随之改变。

模型、程序和工具在协作中承担不同作用。生成内容、写入文件、运行操作和达到使用目的,需要分别看清。工具的执行结果提供了检查依据,人的判断让这些结果与最初的需要保持联系。

上一章,你决定让别人看见什么;这一章,你进一步决定别人能够怎样接近它。下一章,我们将观察AI怎样连续完成读取、修改和检查等工作,以及什么时候应当由自己作出下一步选择。

练习与继续探索

1. 说清一个行为。 为自己的作品选择一个小功能,写出操作前的情况、使用者的动作和预期结果。请同学只读这段话,说说他认为页面会怎样变化。

2. 跟着判断走。 本章基本示例从细节隐藏开始,连续点击三次,每次以后细节是展开还是收起?按钮分别写什么?先推想,再运行核对。若从展开开始,结果又怎样?

3. 改变一项要求。 把“打开时收起”改为“打开时展开”,或为自己的功能提出另一项小调整。说明需要改变哪些内容,以及原来的哪些行为可以保留。保存后重新运行,不只比较代码或截图。

4. 区分几种完成。 AI输出了一个文件名,提供了完整代码,报告写入成功,以及实际打开并点击页面,这几种情况分别说明什么?选其中两种,说明还缺少哪一步才能得到你要的结果。

5. 检查一个具体结果。 一张1200×800像素的图片等比例缩小到300像素宽,高度应是多少?若工具输出300×300像素,需要继续查看哪种处理?把这种“先说明要求,再核对结果”的方法用于自己的程序。

6. 为下一次尝试留下问题。 请一位读者实际操作作品,选择一条值得继续处理的反馈。想一想:其中哪一步可以请AI或工具协助,哪项选择还需要自己决定?本章不要求立即增加新功能。

本章资料来源

[1] MDN Web Docs. HTML: Creating the content. 用于核对HTML的内容结构、元素与文件引用,以及保存HTML并用浏览器打开的基本方式。访问日期:2026-09-21。https://developer.mozilla.org/en-US/docs/Learn_web_development/Getting_started/Your_first_website/Creating_the_content

[2] MDN Web Docs. CSS: Styling the content. 用于核对CSS安排网页外观的基本作用。访问日期:2026-09-21。https://developer.mozilla.org/en-US/docs/Learn_web_development/Getting_started/Your_first_website/Styling_the_content

[3] MDN Web Docs. JavaScript: Adding interactivity;Introduction to events. 用于核对浏览器交互、函数、条件判断与事件处理的基础解释。访问日期:2026-09-21。https://developer.mozilla.org/en-US/docs/Learn_web_development/Getting_started/Your_first_website/Adding_interactivity ;https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/Events

[4] MDN Web Docs. HTMLElement: hidden property. 用于核对本例中隐藏属性与JavaScript的true、false值之间的关系。正文仅使用隐藏与显示两种情况。访问日期:2026-09-21。https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/hidden

[5] W3C Web Accessibility Initiative. Disclosure (Show/Hide) Pattern. 用于核对展开/收起按钮的键盘操作与展开状态说明。配套示例保留相应设置,正文不要求掌握全部属性。访问日期:2026-09-21。https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/

[6] MDN Web Docs. Node: textContent property. 用于核对设置对象文字内容的行为。访问日期:2026-09-21。https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent

[7] Anthropic. Tool use with Claude. 用于核对模型发出操作请求、执行程序调用工具、结果返回的基本关系。仅用于原理核对,不指定课堂产品,也不引入接口配置。访问日期:2026-09-21。https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview