Hooks 钩子

智能体钩子是强大的自动化工具,当集成开发环境(IED)中发生特定事件时,它能自动执行预定义的智能体操作,从而简化开发工作流程。使用钩子,您无需手动请求常规任务,并确保代码库的一致性。

什么是智能体钩子?

智能体钩子是自动触发器,当特定事件在您的IDE中发生时,它们会执行预定义的智能体操作。无需手动请求执行常规任务,钩子会针对以下事件自动相应:

  • Saving files 保存文件
  • Creating new files 创建新文件
  • Deleting file 删除文件

智能体挂钩通过智能自动化改变您的开发工作流程。通过为常见任务设置挂钩,您可以:

  • 保持一直的代码质量
  • 防止安全漏洞
  • 减少人工负担
  • 规范团队流程
  • 打造更快的开发周期
    无论你是在处理一个小项目,还是在管理一个大型代码库,智能体钩子都有助于确保日常任务能够自动且一致地得到处理,让你能够专注于开发优秀的软件。

智能体钩子的工作原理

智能体挂钩系统遵循一个简单的三步流程:

  1. 事件检测:该系统会监控IDE, 中的特定事件
  2. 提示执行:当某个事件发生时候,一条预定义的提示会被发送给智能体
  3. 自动操作:只能听处理提示并执行请求的操作

设置智能体钩子

创建和管理钩子很简单:

使用资源管理器试图

  1. 导航到 Kiro 面板中的智能体挂钩部分
  2. 点击 + 按钮创建新的钩子
  3. 在输入框中使用自然语言定义钩子工作流程
  4. 按下回车键或者点击提交继续操作
  5. 配置钩子设置并保存

使用命令面板

你还可以使用命令面板导航到Hook 用户界面:

  1. 使用 Cmd + shift +p 打开命令面板
  2. 输入:kiro: open Kiro Hook UI
  3. 按照屏幕上的说明创建你的钩子

后续步骤

既然你已经创建了一个钩子文件,你可以在此进一步了解钩子:
钩子类型 - 了解不同的出发类型及其用例
管理 - 学习如何组织、编辑和维护你的钩子
最佳实践 - 遵循有效钩子设计模式
示例 - 查看可使用的示例和模板

钩子类型

智能体钩子支持多种出发类型,每种类型都是为特定的自动化场景而设计的。了解这些类型有助于您根据工作流程需求选择正确的方法。

文件创建时

在工作区中创建与特定模式匹配的新文件时触发。
用例:

  • 为新组建生产样板代码
  • 为新文件添加许可证头
  • 创建实现文件时设置测试文件
    Example: React Component Setup 示例:React 组件设置

When a new React component file is created, add:

  1. Import statements for React and necessary hooks
  2. A functional component with TypeScript props interface
  3. Export statement
  4. Basic styling if applicable
  5. A skeleton test file in the appropriate directory

文件保存时

当保存与特定模式匹配的文件时触发。
用例:

  • 运行代码检查和格式化
  • 更新相关文件
  • 生成文档
  • 对更改的文件运行测试

示例:更新测试覆盖率

When a JavaScript/TypeScript file is saved:

  1. Identify the corresponding test file
  2. Update tests to maintain coverage for any new functions
  3. Run the tests to verify they pass
  4. Update any snapshots if necessary

文件删除时

当匹配特定模式的文件被删除时触发。
用例:

  • 清理相关文件
  • 更新其他文件中的导入引用
  • 维护项目完整性

示例:清理引用

When a JavaScript/TypeScript file is saved:

    1. Identify the corresponding test file
    1. Update tests to maintain coverage for any new functions
    1. Run the tests to verify they pass
    1. Update any snapshots if necessary

手动触发

手动执行一个钩子。
用例:

  • 按需代码审查
  • 文档生成
  • 安全扫描
  • 性能优化

示例:代码审查按钮

Review the current file for:

  1. Code quality issues
  2. Potential bugs
  3. Performance optimizations
  4. Security vulnerabilities
  5. Accessibility concerns

最佳实践

遵循这些最佳实践奖帮助你创建可靠,高效,且可维护的钩子,从而提升你的开发工作流程

钩子设计

具体且清晰

  • 写下详细、明确的说明
  • 每个钩子专注于一项特定任务
  • 对于复杂操作,使用编号步骤

全面测试

  • 在部署之前对视力文件进行钩子测试
  • 验证钩子在极端情况下是否有效
  • 在扩展之前,先从优先的文件模式开始

性能监控

  • 确保钩子不会拖慢你的工作流程
  • 考虑触发事件的频率
  • 优化提示以提高效率

安全注意事项

验证输入
  • 确保钩子函数能够妥善处理意外的文件内容
  • 考虑文件格式中潜在的边界情况
  • 使用格式错误或意外的输入进行测试
限制范围
  • 尽可能针对特定的文件类型或者目录
  • 使用精确的文件模式,避免不必要的执行
  • 考虑钩子函数对你整个代码库的影响
定期回顾
  • 随着项目的发展更你想你钩子逻辑
  • 移除不再需要的钩子
  • 根据实际结果优化提示词

团队协作

文档钩子
  • 对钩子用途保持清晰的记录
  • 包括预期行为的示例
  • 记录任何限制或极端情况
共享配置
  • 在团队成员之间使用一直的钩子
  • 将钩子配置存储在版本控制系统中
  • 为常见的团队工作流程创建标准钩子
版本控制集成
  • 考虑与版本控制系统及集成的钩子
  • 为代码审查工作流程创建钩子
  • 使用钩子来执行团队标准

示例

这些示例展示了显示世界中的钩子实现,你可以根据自己的项目进行调整。每个示例都包含触发类型、目标模式和完整的钩子说明。

安全预提交扫描器

这个钩子通过在文件提交前对其进行扫描,来帮助防止安全漏洞
触发类型:文件保存
目标: */
钩子说明:

Review changed files for potential security issues:

  1. Look for API keys, tokens, or credentials in source code
  2. Check for private keys or sensitive credentials
  3. Scan for encryption keys or certificates
  4. Identify authentication tokens or session IDs
  5. Flag passwords or secrets in configuration files
  6. Detect IP addresses containing sensitive data
  7. Find hardcoded internal URLs
  8. Spot database connection credentials

For each issue found:

  1. Highlight the specific security risk
  2. Suggest a secure alternative approach
  3. Recommend security best practices
国际化助手

此钩子可确保更新主语言文件中的文本时,翻译内容也能保持同步。
触发类型:文件保存
目标:src/locales/en/*.json
钩子说明:

When an English locale file is updated:

  1. Identify which string keys were added or modified
  2. Check all other language files for these keys
  3. For missing keys, add them with a “NEEDS_TRANSLATION” marker
  4. For modified keys, mark them as “NEEDS_REVIEW”
  5. Generate a summary of changes needed across all languages
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐