T learn.traeai

第 6 节 · 本站原创中文课程 · 建议 45 分钟

第六节:用 Hook 做确定性校验

学完能做:理解事件、脚本和返回状态,先验证校验器再接入自动触发。

把必须遵守的规则落到程序检查

提示词可以提醒,Hook 可以在明确事件到来时触发脚本。先选择一个可确定判断的小规则,例如练习 JSON 是否有效。不要一开始就自动提交、发布或修改大量文件。

参考原文:06-hooks/README.md ↗

先单独运行,再接入事件

先写一个最小校验器,确认有效 JSON、无效 JSON 和文件缺失分别返回什么。下面代码只读取你明确指定的练习文件,不读取 Hook 输入,也不是可直接复制的完整 Hook 配置。

import json
import sys
from pathlib import Path

try:
    json.loads(Path(sys.argv[1]).read_text(encoding="utf-8"))
except (OSError, ValueError, IndexError) as error:
    print(f"校验失败:{error}", file=sys.stderr)
    raise SystemExit(1)
print("JSON 校验通过")

事件语义决定失败后会怎样

PreToolUse 与 PostToolUse 的时间点不同,普通退出码也不自动等同于所有事件的阻断协议。按当前文档确认输入 JSON、匹配器和阻断返回格式,再接入练习配置。工具写入后的事件不能撤销已经发生的外部动作。

测试失败和超时

为脚本设定合理超时、明确工作目录,保证日志不泄露文件内容。测试事件未匹配、正常通过、检查失败和脚本超时四条路径。保留移除配置的恢复步骤,避免学习过程影响其他项目。

这是本站独立编写的讲解与示例,并非官方课程逐字翻译。理解之后,请完成下面的练习、自测和笔记。

参考来源:luongnv89 / claude-howto · 社区开源教程

动手,把理解变成成果

本节练习

正在读取本机草稿…

先实现练习 JSON 校验器,再设计一个 Hook 接入方案。提交四条路径、匹配事件、失败返回语义和恢复办法;未接入时明确标注。

50 / 6000 字。本页不执行代码;可下载后在本地运行,或用 Agent 获取定性建议。

给我一个提示

先跑脚本,再核对事件协议;不要假定任意非零退出都能阻止动作。

查看参考思路(本站预写,非实时 Agent)

校验器覆盖合法、非法与缺失文件。接入前查当前 Hook 协议,按事件选择返回格式;配置仅作用于练习项目,并保留删除该配置的恢复步骤。

人工自评:逐项核对自己的作品

这些勾选由你确认,不是自动测试结果。遇到待测项,请在作品里明确注明。

理解自测

PostToolUse 检查失败,能保证什么?

自己的学习笔记

0 / 3000 字 · 仅保存在此浏览器

围绕当前章节学习

Agent 答疑与作品评价

正在检查连接…

本站讲解、提示、参考思路和自测可独立使用。连接模型服务后,才能实时提问或评价;这里不会把预写内容伪装为 Agent 回答。

走完学习闭环

完成本节

保留练习、勾选人工自评并通过自测后,可记录完成。修改作品或答案会重新打开本节。

课程进度:0 / 10 · 本机记录,不是外部官方证书

← 上一节:第五节:编写一个可复用的审查 Skill