Hooks(钩子)——Deep Agents Code 中用于观察和控制生命周期事件的机制
Hooks钩子是 Deep Agents Code 中用于观察和控制生命周期事件的机制。当特定事件触发时系统会找到匹配的处理器把 JSON 载荷通过 stdin 传给外部命令并根据其退出码和 stdout 决定允许/拒绝操作、注入上下文或继续对话轮次。安全提示Hooks 以当前用户权限运行任意代码配置等同于可执行代码只应从可信来源安装。配置与加载位置用户级~/.deepagents/hooks.json全局生效项目级{project_root}/.deepagents/hooks.json需授予工作区信任后才加载插件也可贡献 hooks结构事件名 → matcher 组 → handlers 数组优先级项目 hooks 用户 hooks 插件 hooks所有匹配的都会并发执行结果按优先级合并快照机制配置在会话中固定修改后需/reload或新会话才生效项目信任交互式会提示确认CI/无头模式需加--trust-project-hooksHandler 定义每个 handler 目前只支持type: commandcommand要执行的 shell 命令必填argv可选直接传参数列表绕过 shelltimeout超时秒数默认 600sUserPromptSubmit默认 30sstatusMessage运行时在 UI 显示的临时提示环境特点工作目录为 payload 中的cwd包含 KEY/TOKEN/SECRET/PASSWORD/APIKEY 的环境变量会被剥离。Matcher匹配器根据事件类型匹配不同字段省略 / 空 /*→ 匹配全部精确名称如Bash|或,分隔多选其他视为正则如mcp__.*UserPromptSubmit和Stop没有 matcher 字段。支持的事件事件所有者退出码 2 的效果匹配字段SessionStartClient诊断sourceUserPromptSubmitClient阻止提示无SessionEndClient诊断reasonPermissionRequestClient拒绝tool_nameNotificationClient诊断notification_typePreToolUseServer拒绝工具tool_namePostToolUseServer反馈tool_namePreCompactServer阻止压缩triggerStopServer继续轮次无SubagentStart / SubagentStopServer诊断 / 添加上下文agent_type工具调用主路径Agent 请求工具 →PreToolUse可 allow/ask/deny→ 工具执行 →PostToolUse。输入 Payload所有事件共享通用字段session_id、transcript_path、cwd、hook_event_name、permission_mode、effort等再加事件专属字段如PreToolUse的tool_name、tool_input、tool_use_id。公开工具名包括Bash、Write、Edit、Read、Glob、Grep、LS、mcp__server__tool等。Handler 输出规则退出码 0成功。stdout 若为合法 JSON 则解析应用非 JSON 在部分事件中作为额外上下文。退出码 2阻塞/反馈路径具体效果见上表主要用 stderr 传原因。其他非零非阻塞错误记录诊断后继续。常用控制方式PreToolUse返回permissionDecisionallow/ask/deny优先级为 deny ask allow。PermissionRequest返回decision.behaviorallow/deny。Stop返回decision: block可让 agent 继续工作有连续 8 次硬限制注意检查stop_hook_active。注入上下文SessionStart、UserPromptSubmit、SubagentStart、PostToolUse、SubagentStop等可返回additionalContext。部分兼容字段如修改工具输入、更新权限规则等会被解析但不生效。典型用例拦截危险 Bash 命令PreToolUse matcherBashSessionStart 时注入最近 git 提交等项目上下文Stop 时发送桌面通知用 Python/其他语言读取 stdin JSON 做自定义逻辑调试与安全运行中会显示 statusMessage错误/警告以 Hook warning/error 形式出现。设置DEEPAGENTS_CODE_DEBUG1可获取更详细诊断。旧版列表式配置仍兼容但已弃用。原则只信任可靠来源、优先使用明确可执行文件、避免把敏感信息暴露给 hook。整体上Hooks 提供了一套灵活的扩展点让你在工具执行前后、会话启停、权限询问等关键节点插入自定义逻辑同时通过优先级、匹配器和输出协议保持可控性。

相关新闻

Deep Agents配置文件目录结构

Deep Agents配置文件目录结构

这是 Deep Agents(与 LangChain 生态相关的 AI Agent 配置体系)的目录结构总结: 1. 全局用户级配置(~/.deepagents/) 机器级别的状态与默认 Agent 配置,位于用户主目录下。路径作用~/.deepagents/.state/机…

2026/10/5 5:56:08 阅读更多 →
Python开发环境搭建:从安装到VS Code高效配置全攻略

Python开发环境搭建:从安装到VS Code高效配置全攻略

1. 项目概述:为什么Python和VS Code是黄金搭档?如果你刚接触编程,或者从其他语言转过来,听到“Python安装”和“VS Code配置”可能会觉得有点头大。但别担心,这其实是每个Python开发者都要走的第一步,而且一…

2026/10/4 9:10:30 阅读更多 →
实时虚拟数字人入门怎么选:2026年数字人口播,5款对比横评

实时虚拟数字人入门怎么选:2026年数字人口播,5款对比横评

为什么越来越多开发者开始关注实时虚拟数字人传统文字 ChatBot 交互延迟高、缺少情绪反馈,长时间协作容易疲劳;纯 TTS 语音助手又没有可视形象,难以承担口播、陪伴、直播副驾等场景。随着本地算力提升与流式语音技术成熟,2026 年「…

2026/10/8 7:51:25 阅读更多 →

最新新闻

Unity2D弹球游戏可运行完整项目:物理引擎+碰撞+UI闭环实现

Unity2D弹球游戏可运行完整项目:物理引擎+碰撞+UI闭环实现

简介:这是一份面向Unity初学者与2D游戏开发入门者的可运行完整项目,聚焦弹球游戏核心逻辑实现,帮助开发者掌握不依赖物理引擎的2D运动控制、碰撞检测、挡板交互、得分系统及UI状态管理等关键技能。资源包含432个文件,以128个info配…

2026/10/14 14:38:54 阅读更多 →
零基础网页制作入门:HTML与CSS实战指南

零基础网页制作入门:HTML与CSS实战指南

1. 项目概述与核心思路拆解 1.1 这个项目到底在解决什么问题 先说结论:创建简单网页教学这个方向,本质上是帮那些完全不了解前端的人,用最短的时间建立起对网页制作的基本认知和动手能力。很多人觉得做网页是程序员的专属技能,一…

2026/10/14 14:38:54 阅读更多 →
Kubernetes CronJob执行延迟排查:从控制器到节点侧的关键链路与优化

Kubernetes CronJob执行延迟排查:从控制器到节点侧的关键链路与优化

告警一夜之间刷了十几条:原本应该准点 1:00 执行的 CronJob,实际跑到 1:37 才从 Pod 里打出第一批日志。我盯着“执行延迟”三个字想了很久,最初以为是容器时间不同步,后来才发现问题根本不在 CronJob 控制器,而在调度…

2026/10/14 14:38:54 阅读更多 →
MySQL SELECT与SHOW实战:从基础查询到性能排查的完整指南

MySQL SELECT与SHOW实战:从基础查询到性能排查的完整指南

从接触数据库开始,大多数人的第一条SQL都是SELECT,而SHOW往往是那个“我知道它存在,但很少深入研究”的兄弟命令。这个主题虽然叫“简单检索”,但SELECT和SHOW几乎撑起了日常数据库操作的半边天:前者负责从一张或多张表…

2026/10/14 14:38:54 阅读更多 →
主成分分析PCA从原理到实战:高维数据降维的核心技术解析

主成分分析PCA从原理到实战:高维数据降维的核心技术解析

很多人在刚开始接触数据分析时,面对几十个甚至上百个特征,第一反应往往是茫然。画出来的散点图矩阵密密麻麻,算出来的相关系数表让人眼花缭乱,跑出来的模型又总被多重共线性拖后腿。这时候,主成分分析(PCA&…

2026/10/14 14:38:54 阅读更多 →
Pandas线性插值实战:空气质量数据异常值与缺失值处理

Pandas线性插值实战:空气质量数据异常值与缺失值处理

这段时间帮某个环境监测项目处理城市空气质量数据,遇到最多的不是模型效果差,而是数据本身的问题。一套PM2.5、PM10、NO2、SO2浓度数据拿过来,缺失值、异常值、重复记录混在一起,直接建模结果根本没法看。把这些数据清洗干净&…

2026/10/14 14:37:53 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →