📖 本章预览
本章为预览版本,展示部分核心内容。完整内容包含详细源码解析、实战代码和面试要点,加入知识星球即可解锁全部章节。
第19章 Agent 高级特性:Hook、路由与容错
19.1 Agent Hook 机制
19.1.1 什么是 Hook
Hook 本质上是 AOP(面向切面编程)在 Agent 领域的应用。Agent 的执行流程是一条链:接收输入 → LLM 思考 → 调用工具 → 返回结果。Hook 允许你在这条链的关键节点插入自定义逻辑,而不需要修改 Agent 本身的代码。
Agent 执行流程中可插入 Hook 的位置:
用户输入
│
▼
┌──────────────┐
│ beforeRun │ ← 请求到达时:参数校验、日志记录、限流检查
├──────────────┤
│ beforeThink │ ← LLM 推理前:Prompt 改写、上下文注入
├──────────────┤
│ LLM 推理 │
├──────────────┤
│ afterThink │ ← LLM 推理后:思考过程记录、异常检测
├──────────────┤
│ beforeTool │ ← 工具调用前:权限校验、参数脱敏、调用拦截
├──────────────┤
│ 工具执行 │
├──────────────┤
│ afterTool │ ← 工具调用后:结果缓存、审计日志、异常处理
├──────────────┤
│ afterRun │ ← 最终返回前:结果过滤、敏感信息脱敏、计费统计
└──────────────┘
│
▼
返回结果
为什么需要 Hook 而不是直接在 Agent 里写逻辑?
- 解耦:审计、限流、权限这些横切关注点不应该和业务逻辑混在一起
- 可插拔:不同场景组合不同的 Hook,不需要改 Agent 代码
- 可复用:同一个 Hook 可以挂到多个 Agent 上
19.1.2 Hook 接口设计
/**
* Agent Hook 接口
* 每个方法都有默认空实现,子类按需覆盖
*/
public interface AgentHook {
/** Agent 开始执行前(可用于参数校验、限流) */
default void beforeRun(AgentContext context) {}
/** Agent 执行完成后(可用于计费、审计) */
default void afterRun(AgentContext context, String result) {}
/**
* 工具调用前(可用于权限校验、参数拦截)
* @return true=允许调用,false=拦截
*/
default boolean beforeToolCall(String toolName, Object args) { return true; }
/** 工具调用后(可用于结果缓存、日志) */
default void afterToolCall(String toolName, Object args, Object result) {}
}
/**
* Agent 上下文:在 Hook 之间传递数据
*/
public class AgentContext {
private String input; // 用户输入
private String sessionId; // 会话ID
private String userId; // 用户ID
private long startTime; // 开始时间
private int toolCallCount; // 工具调用次数
private Map<String, Object> attrs; // 自定义属性(Hook 间传递数据)
public long getElapsedTime() {
return System.currentTimeMillis() - startTime;
}
// getter/setter 省略
}
19.1.3 实战:审计日志 Hook
这是最常见的 Hook,记录 Agent 的每一步操作,用于问题排查和合规审计。
/**
* 审计日志 Hook
* 记录 Agent 的完整执行轨迹:谁在什么时候调了什么工具,耗时多少
*/
@Component
public class AuditHook implements AgentHook {
private static final Logger log = LoggerFactory.getLogger(AuditHook.class);
🔒 解锁完整内容
本章剩余内容需要解锁后查看
以上仅为本章部分预览内容,完整内容包含更多深度源码解析、实战代码和面试要点。
加入知识星球你将获得:
- ✅ 全部 26 章完整内容 + 持续更新
- ✅ 配套源码 + 实战项目
- ✅ 一对一答疑 + 面试辅导
- ✅ 简历优化 + 内推机会
📚 本章完整目录
以下为本章完整目录结构,加入知识星球即可解锁全部内容。