当前位置: 首页 > news >正文

Cursor智能体开发:Webhooks概述

当你创建带有 webhook URL 的代理(agent)时,Cursor 会发送 HTTP POST 请求来通知状态变更。目前仅支持statusChange事件,即当代理进入ERRORFINISHED状态时。

Webhook 验证

为确保 webhook 请求确实来自 Cursor,请验证每个请求所附的签名:

标头

每个 webhook 请求都包含以下标头:

  • X-Webhook-Signature– 以sha256=<hex_digest>格式提供的 HMAC-SHA256 签名
  • X-Webhook-ID– 此次投递的唯一标识符(便于日志记录)
  • X-Webhook-Event– 事件类型(目前仅statusChange
  • User-Agent– 固定为Cursor-Agent-Webhook/1.0

签名验证

要验证 webhook 签名,请先计算期望的签名,然后与收到的签名进行比对:

const crypto = require("crypto");function verifyWebhook(secret, rawBody, signature) { const expectedSignature = "sha256=" + crypto.createHmac("sha256", secret).update(rawBody).digest("hex"); return signature === expectedSignature;}
import hmacimport hashlibdef verify_webhook(secret, raw_body, signature): expected_signature = 'sha256=' + hmac.new( secret.encode(), raw_body, hashlib.sha256 ).hexdigest() return signature == expected_signature

计算签名时应始终使用原始请求体(在任何解析之前)。

载荷格式

Webhook 载荷以 JSON 形式发送,结构如下:

{ "event": "statusChange", "timestamp": "2024-01-15T10:30:00Z", "id": "bc_abc123", "status": "FINISHED", "source": { "repository": "https://github.com/your-org/your-repo", "ref": "main" }, "target": { "url": "https://cursor.com/agents?id=bc_abc123", "branchName": "cursor/add-readme-1234", "prUrl": "https://github.com/your-org/your-repo/pull/1234" }, "summary": "添加了包含安装说明的 README.md"}

请注意,部分字段为可选项,仅在可用时才会显示。

最佳实践

  • 验证签名– 始终验证 webhook 签名,确保请求来自 Cursor
  • 处理重试– 若你的端点返回错误状态码,webhook 可能会重试
  • 快速响应– 尽快返回 2xx 状态码
  • 使用 HTTPS– 在生产环境中始终为 webhook 端点使用 HTTPS URL
  • 存储原始负载– 存储原始 webhook 负载以便调试和后续验证

《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。全书共11章,前6章涵盖深度学习基础,包括张量运算、神经网络原理、数据预处理及卷积神经网络等;后5章进阶探讨图像、文本、音频建模技术,并结合Transformer架构解析大语言模型的开发实践。书中通过房价预测、图像分类等案例讲解模型构建方法,每章附有动手练习题,帮助读者巩固实战能力。内容兼顾数学原理与工程实现,适配PyTorch框架最新技术发展趋势。

http://www.jsqmd.com/news/743018/

相关文章:

  • 终极文件提取神器:如何用UniExtract2一键搞定500+格式文件解压
  • AI-Browser:为AI智能体构建可编程浏览器操作环境的开源框架
  • 网盘直链解析工具LinkSwift:打破八大平台下载壁垒的本地化解决方案
  • Radxa Dragon Q6A Arm SBC运行Windows 11预览版体验
  • 大数据系列(10) ClickHouse:OLAP查询快到飞起,秘诀是什么?
  • UMA框架在材料科学中的跨数据库联合训练实践
  • 【工业级C加密库选型指南】:mbedTLS、TinyCrypt、WolfSSL、Picocrypt、NaCl-C移植实测对比(含RAM/ROM/时钟周期/常数时间实现完整矩阵)
  • Cursor Installer:Go语言打造的Linux编辑器自动化部署方案
  • Python调用国密SM2/SM3不再踩坑:5个被90%项目忽略的合规性校验与性能优化关键点
  • 3大核心功能+5步实战配置:华硕笔记本终极性能调校指南
  • 3分钟快速上手:让电视盒子变身高性能Linux服务器的终极指南
  • 开源与商业大模型对比及企业选型指南
  • AO3镜像站终极指南:5分钟免费访问全球同人创作宝库
  • 如何在5分钟内完成Windows包管理器的终极自动化安装部署
  • 3个场景解锁EhViewer:从零开始打造你的个性化画廊浏览器
  • MetaClaw框架:动态进化的大语言模型智能体开发
  • 拆解 Warp AI Agent(五):跨生态联邦——10 种 Skill + MCP + 多 Harness 互操作设计
  • 大模型后训练评估平台OpenDataArena解析与应用
  • 基于Docker的远程代码执行环境构建:安全沙箱与AI编程实践
  • EhViewer完整指南:打造你的个性化Android画廊浏览器
  • Autoloom:自动化依赖验证,从被动通知到主动证明的CI/CD实践
  • Linux 6.13内核特性解析:异构计算与实时性优化
  • 国产编译器报错“undefined reference to __stack_chk_fail”?这不是Bug,是安全栈保护机制切换信号——C语言适配中的3层防护适配策略(含patch实测代码)
  • 全域数学0、1、∞ 完整运算总表解析【乖乖数学】
  • 终极桌面体验:如何用Coolapk-UWP在Windows上重新定义酷安社区浏览
  • 2026年如何降AI率?3个免费方法+10款亲测有效工具推荐 - 降AI实验室
  • 山西公考哪家好,靠谱的机构有哪些? - myqiye
  • STM32 HAL库驱动AT24C256 EEPROM,我踩过的那些硬件I2C的坑(附完整工程)
  • 2026Q2白酒定制贴牌技术拆解:散白酒加盟、散酒连锁加盟、浓香白酒贴牌、白酒 OEM 贴牌、白酒代理加盟、白酒连锁加盟选择指南 - 优质品牌商家
  • 如何免费打造专业级Windows音频均衡器:Equalizer APO实用指南