登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

cv usk
@cv_usk
AI / Software Research Notes AI Agent, LLMOps, MLOps, Software Architecture 投稿は個人の意見です。
参加 May 2026
280 フォロー中    415 ファン
# Cursorの機能と実践的な使い方 🪝 エージェントの行動に「自動整形」や「危険コマンドのブロック」を仕込みたくありませんか。CursorのHooksは、エージェントループの各段階に割り込むための仕組みです。 🏷️ タイトル: エージェントループ介入(JSON) 🔗 URL: 📘 概要 Hooksは、エージェントループを観察・制御・拡張するために起動されるプロセスです。stdioを通じて双方向にJSONでやり取りし、ループの定義済み段階の前後で実行されます。整形・監査ログ・秘密情報スキャン・危険操作のゲートなどに使えます。 ⚙️ 機能の説明 設定は `hooks.json` に書き、優先順位はEnterprise → Team → プロジェクト(`/.cursor/hooks.json`) → ユーザー(`~/.cursor/hooks.json`)です。主なイベントは次のとおりです。 ・`beforeShellExecution` / `afterShellExecution`: シェル実行のゲートと後処理 ・`beforeReadFile` / `afterFileEdit`: ファイル読み取り・編集の前後 ・`beforeMCPExecution` / `beforeSubmitPrompt` / `sessionStart` / `stop` など 各フックはstdinでJSON(`conversation_id` `model` `hook_event_name` 等)を受け取り、stdoutにJSONを返します。制御系フックは `{"permission":"allow"|"deny"|"ask"}` を返し、`deny` 時は `user_message` / `agent_message` を添えられます。終了コードは 0 が成功、2 がブロック(deny相当)、それ以外はフェイルオープン(`failClosed:true` 指定時を除く)です。 🛠️ 実践的な使い方 編集後に自動整形するには `afterFileEdit` を使い、stdinのJSONから `.file_path` を取り出して `prettier --write` に渡すスクリプトを登録します。 危険SQLや破壊的コマンドは `beforeShellExecution` でブロックします。コマンド文字列を検査し、該当すれば `echo '{"permission":"deny","user_message":"このSQLは禁止です"}'` を返します。PIIや秘密情報のスキャンは `beforeReadFile` に登録し、`"failClosed": true` を付けて、スキャン失敗時はモデルに渡さず安全側に倒します。 💡 ユースケース チーム全体に整形・lint・コミット規約を強制する。本番DBへの書き込みや `rm -rf` 等をゲートする。`sessionEnd` や `postToolUse` で監査ログを fire-and-forget で残す。`matcher` でツール種別やコマンドパターンを絞れば、必要なときだけフックを走らせられます。 ⚠️ 注意点 パス基準に注意が必要です。プロジェクトフックはプロジェクトルートから、ユーザーフックは `~/.cursor/` から実行され、誤ったパスは静かに失敗します。既定はフェイルオープンなので、セキュリティ用途のフックには必ず `failClosed: true` を付けます。出力JSONが不正だとフック自体が失敗します。`hooks.json` は自動リロードされますが、反映されない場合は再起動を。クラウドエージェントは command 型のみ対応で、`sessionStart` や `beforeMCPExecution`、Tab系、prompt型フックは使えません。 #Cursor# #DevSecOps#
もっと見る