@ claude- flow/ hooks
@ claude- flow/ hooks ——按优先秩序登记并运行生命周期钩(PreEdit,Post Task,会话起止等),并将其结果反馈给ReasoningBank模式学习.
支持的环境 : 节点.js 20+- 无害环境管理
快速启动
npm install @claude-flow/hooks
import { HookRegistry, HookEvent, HookPriority } from '@claude-flow/hooks';
const registry = new HookRegistry();
registry.register(HookEvent.PreEdit, async () => ({ success: true }), HookPriority.Normal, { name: 'log-edit' });
console.log(registry.getForEvent(HookEvent.PreEdit).map((h) => h.name));
预期产出:
[ 'log-edit' ]
建造在 @claude-flow/shared; 用于 @claude-flow/plugins。 。 。 .
Claude Flow V3 事件驱动的生命周期钩与理性银行学习融合
这个 @claude-flow/hooks 软件包为Claude Flow业务的拦截和扩展提供了全面的钩子系统。 它能够实现智能任务路由,模式学习,背景度量衡收集,以及实时状态线集成.
特征
- 🎣 Hook 书记官处 - 优先登记有过滤和管理的钩子
- ⚡ Hook 执行器 - 超时处理、错误恢复和结果汇总
- 🤖 背景守护进程 - 计量收集、群集监测、模式学习
- 👷 背景工人 - 从事分析、优化和自动化的12名专业人员
- 📊 状态整合 - 克劳德代码的实时状态显示
- 🧠 银行学习 - 根据学到的规律确定智能任务路线
- 🔧 MCP 工具 - 13个MCP工具,用于程序接通
- 🔄 V2 兼容性 - 向后兼容V2钩命令
安装
# Using npm
npm install @claude-flow/hooks
# Using pnpm
pnpm add @claude-flow/hooks
# Using yarn
yarn add @claude-flow/hooks
快速启动
基本用途
import {
HookRegistry,
HookExecutor,
HookEvent,
HookPriority,
} from '@claude-flow/hooks';
// Create registry and executor
const registry = new HookRegistry();
const executor = new HookExecutor(registry);
// Register a pre-edit hook
registry.register(
HookEvent.PreEdit,
async (context) => {
console.log(`Editing file: ${context.file?.path}`);
return { success: true };
},
HookPriority.Normal,
{ name: 'log-edits' }
);
// Execute hooks
const result = await executor.preEdit('src/app.ts', 'modify');
console.log(`Hooks executed: ${result.hooksExecuted}`);
以守护进程初始化
import { initializeHooks } from '@claude-flow/hooks';
// Initialize full system with background daemons
const { registry, executor, statusline } = await initializeHooks({
enableDaemons: true,
enableStatusline: true,
});
// Generate statusline
console.log(statusline.generateStatusline());
使用 MCP 工具
import { hooksMCPTools, getHooksTool } from '@claude-flow/hooks';
// Get specific tool
const routeTool = getHooksTool('hooks/route');
// Execute routing
const result = await routeTool.handler({
task: 'Implement user authentication',
includeExplanation: true,
});
console.log(`Recommended agent: ${result.recommendedAgent}`);
console.log(`Confidence: ${result.confidence}%`);
CLI 命令
虎克守护进程
管理用于衡量和学习的背景守护进程.
# Start daemon with default 60s interval
hooks-daemon start
# Start with custom interval (30 seconds)
hooks-daemon start 30
# Stop daemon
hooks-daemon stop
# Check status
hooks-daemon status
# Run pattern consolidation
hooks-daemon consolidate
# Export learned patterns
hooks-daemon export json
# Rebuild HNSW index
hooks-daemon rebuild-index
# Notify activity (for hook integration)
hooks-daemon notify-activity
现状
为 Claude 代码集成生成状态线输出 .
# Display formatted statusline
statusline
# Output JSON data
statusline --json
# Compact JSON (single line)
statusline --compact
# Show help
statusline --help
示例输出 :
▊ Claude Flow V3 ● agentic-flow@alpha │ ⎇ v3
─────────────────────────────────────────────────────
🏗️ DDD Domains [●●●●●] 5/5 ⚡ 1.0x → 2.49x-7.47x
🤖 Swarm Agents ◉ [ 5/15] 🟢 CVE 3/3 💾 156 patterns
🔧 Architecture DDD ●93% │ Security ●CLEAN │ Hooks ●ACTIVE
📊 Routing 89% accuracy │ Avg 4.2ms │ 1547 operations
─────────────────────────────────────────────────────
钩子事件
| 活动 | 说明 |
|---|---|
PreToolUse | 在任何工具执行之前 |
PostToolUse | 工具执行完成后 |
PreEdit | 文件修改前 |
PostEdit | 在文件修改后 |
PreRead | 文件读取前 |
PostRead | 文件后读取 |
PreCommand | 在 shell 命令执行前 |
PostCommand | 完成 shell 命令后 |
PreTask | 任务开始前 |
PostTask | 任务完成后 |
TaskProgress | 任务执行期间 |
SessionStart | 当会话开始时 |
SessionEnd | 当会话结束时 |
SessionRestore | 恢复上一个会话时 |
AgentSpawn | 当物剂被产出时 |
AgentTerminate | 代理终止时 |
PreRoute | 在任务路径之前 |
PostRoute | 路线决定后 |
PatternLearned | 当学习出新模式时 |
PatternConsolidated | 当模式得到巩固时 |
虎克优先事项
| 优先权 | 数值 | 使用大小写 |
|---|---|---|
Critical | 1 000个 | 安全验证,必须先运行 |
High | 100个 | 预处理、准备 |
Normal | 第50条 | 标准钩 |
Low | 10个 | 伐木、计量 |
Background | 1个 | Async 操作, 最后运行 |
背景工人
钩子系统包括12个专业背景工人,可以自动或手动地被触发.
现有工人
| 工人 | 优先权 | 东. 时间 | 说明 |
|---|---|---|---|
ultralearn | 常规 | 60岁 | 二. 深入获取和学习知识 |
optimize | 高级 | 30岁 | 性能优化和调整 |
consolidate | 低级 | 20 岁 | 内存合并和清理 |
predict | 常规 | 15岁 | 预装和预期 |
audit | 关键事项 | 45岁 | 安全分析和脆弱性扫描 |
map | 常规 | 30岁 | 编码基础绘图和结构分析 |
preload | 低级 | 10岁 | 资源预装和缓存变暖 |
deepdive | 常规 | 60岁 | 深密码分析和检查 |
document | 常规 | 45岁 | 自动文档生成 |
refactor | 常规 | 30岁 | 代码重构建议 |
benchmark | 常规 | 60岁 | 业绩基准 |
testgaps | 常规 | 30岁 | 测试覆盖面分析 |
工人 CLI 命令
# List all available workers
claude-flow hooks worker list
# Detect triggers from prompt text
claude-flow hooks worker detect --prompt "optimize performance"
# Auto-dispatch when triggers match (confidence ≥0.6)
claude-flow hooks worker detect --prompt "deep dive into auth" --auto-dispatch --min-confidence 0.6
# Manually dispatch a worker
claude-flow hooks worker dispatch --trigger refactor --context "auth module"
# Check worker status
claude-flow hooks worker status
# Cancel a running worker
claude-flow hooks worker cancel --id worker_refactor_1_abc123
绩效目标
| 度量衡 | 目标 |
|---|---|
| 触发检测 | < 5 ms 时 |
| 工人产卵 | < 50 分钟 |
| 最大并行数 | 10个 |
用户Prompt 提交集成
工人通过 UserPromptSubmit 当即时图案与工人的触发方式相匹配时,有自信的-0.6. 将此添加到您的 Claude 设置 :
{
"hooks": {
"UserPromptSubmit": [{
"matcher": ".*",
"hooks": [{
"type": "command",
"timeout": 6000,
"command": "claude-flow hooks worker detect --prompt \"$USER_PROMPT\" --auto-dispatch --min-confidence 0.6"
}]
}]
}
}
MCP 工具
| 工具 | 说明 |
|---|---|
hooks/pre-edit | 在文件编辑前获取上下文和建议 |
hooks/post-edit | 记录用于学习的编辑结果 |
hooks/route | 通往最佳代理的路由任务 |
hooks/metrics | 查询学习尺度 |
hooks/pre-command | 评估命令风险 |
hooks/post-command | 记录命令结果 |
hooks/daemon-status | 获取守护进程状态 |
hooks/statusline | 获取状态线数据 |
hooks/worker-list | 列出所有12名背景工作者 |
hooks/worker-dispatch | 按触发类型派遣工人 |
hooks/worker-status | 获得经营工人的地位 |
hooks/worker-detect | 从快速文本中检测工人触发 |
hooks/worker-cancel | 取消运行中的工人 |
API 参考
虎克注册
class HookRegistry {
// Register a hook
register(
event: HookEvent,
handler: HookHandler,
priority: HookPriority,
options?: HookRegistrationOptions
): string;
// Unregister a hook
unregister(hookId: string): boolean;
// Get hooks for event
getForEvent(event: HookEvent, enabledOnly?: boolean): HookEntry[];
// Enable/disable hooks
enable(hookId: string): boolean;
disable(hookId: string): boolean;
// List hooks with filtering
list(filter?: HookListFilter): HookEntry[];
// Get statistics
getStats(): HookRegistryStats;
}
Hook 执行器
class HookExecutor {
// Execute hooks for any event
execute<T>(
event: HookEvent,
context: Partial<HookContext<T>>,
options?: HookExecutionOptions
): Promise<HookExecutionResult>;
// Convenience methods
preToolUse(toolName: string, parameters: Record<string, unknown>): Promise<HookExecutionResult>;
postToolUse(toolName: string, parameters: Record<string, unknown>, duration: number): Promise<HookExecutionResult>;
preEdit(filePath: string, operation: 'create' | 'modify' | 'delete'): Promise<HookExecutionResult>;
postEdit(filePath: string, operation: 'create' | 'modify' | 'delete', duration: number): Promise<HookExecutionResult>;
preCommand(command: string, workingDirectory?: string): Promise<HookExecutionResult>;
postCommand(command: string, exitCode: number, output?: string, error?: string): Promise<HookExecutionResult>;
sessionStart(sessionId: string): Promise<HookExecutionResult>;
sessionEnd(sessionId: string): Promise<HookExecutionResult>;
agentSpawn(agentId: string, agentType: string): Promise<HookExecutionResult>;
agentTerminate(agentId: string, agentType: string, status: string): Promise<HookExecutionResult>;
}
守护进程管理器
class DaemonManager {
// Register and manage daemons
register(config: DaemonConfig, task: () => Promise<void>): void;
start(name: string): Promise<void>;
stop(name: string): Promise<void>;
restart(name: string): Promise<void>;
// Bulk operations
startAll(): Promise<void>;
stopAll(): Promise<void>;
// Status
getState(name: string): DaemonState | undefined;
getAllStates(): DaemonState[];
isRunning(name: string): boolean;
}
状态化
class StatuslineGenerator {
// Register data sources
registerDataSources(sources: StatuslineDataSources): void;
// Generate output
generateData(): StatuslineData;
generateStatusline(): string;
generateJSON(): string;
generateCompactJSON(): string;
// Configuration
updateConfig(config: Partial<StatuslineConfig>): void;
invalidateCache(): void;
}
环境变量
| 变量 | 说明 | 默认 |
|---|---|---|
CLAUDE_FLOW_HOOK_TIMEOUT | Hook 执行超时 | 5000 |
CLAUDE_FLOW_REASONINGBANK_ENABLED | 启用正因银行 | true |
CLAUDE_FLOW_HOOKS_NAMESPACE | 学习命名空间 | hooks-learning |
CLAUDE_FLOW_HOOKS_LOG_LEVEL | 日志级别 | info |
CLAUDE_FLOW_SHOW_HOOKS_METRICS | 在状态行中显示钩子 | true |
CLAUDE_FLOW_SHOW_SWARM_ACTIVITY | 在状态行中显示群集 | true |
CLAUDE_FLOW_SHOW_PERFORMANCE | 显示绩效目标 | true |
与克洛德代码合并
添加到您的 Claude 设置(~/.claude/settings.json:
{
"hooks": {
"SessionStart": [{
"hooks": [{
"type": "command",
"timeout": 5000,
"command": "hooks-daemon start"
}]
}],
"SessionEnd": [{
"hooks": [{
"type": "command",
"timeout": 3000,
"command": "hooks-daemon stop"
}]
}],
"PreToolUse": [{
"hooks": [{
"type": "command",
"timeout": 100,
"command": "hooks-daemon notify-activity"
}]
}]
},
"statusLine": {
"type": "command",
"command": "statusline"
}
}
相关软件包
- @ claude- flow/ 分享 - 共享公用事业和类型
- @ claude- flow/ 神经 - 神经网络和SONA学习
- @ claude- flow/ swarm (英语) - 多机构协调
- @ claude- flow/ 记忆 - AgentDB记忆系统
许可证
麻省理工学院 克洛德流动小组