Sentry 错误追踪与应用监控平台 Skill
Sentry 对外其实是两套互不相通的接口:DSN 只能写、专供 SDK 上报错误,auth token 才能读写组织里已有的数据,把这两种凭证搞混是本 skill 要防的头号错误。更容易被忽略的是,不传 query 参数查 issue 时会默认隐式加上 is:unresolved,而 issue 详情本身从不带堆栈跟踪——要看堆栈跟踪必须单独再取一次具体的 event,路径参数 event_id 还可以直接传字面量 latest 一步拿到最新一次报错现场。
安装
选你用的 Agent,复制命令。
npx -y skills add fxp/skillify --skill sentry --agent claude-code --yes装到项目的 .claude/skills/;加 -g 装到全局。装完需要你手动执行 /reload-plugins,这一步 Agent 代劳不了。
npx -y skills add fxp/skillify --skill sentry --agent codex --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill sentry --agent cursor --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill sentry --agent opencode --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill sentry --agent gemini-cli --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill sentry --agent github-copilot --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill sentry --agent trae --yes装到项目的 .trae/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill sentry --agent windsurf --yes装到项目的 .windsurf/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill sentry --agent qwen-code --yes把 --agent 换成你用的 Agent 标识,可以一次写多个。skills CLI 1.5.25 共支持 79 个,例如 qwen-code、kimi-code-cli、trae-cn、qoder、lingma、cline、roo。
或者让 Agent 自己装
读 https://github.com/fxp/skillify/blob/main/skills/sentry/prompt.md 并照它执行装对了的标志:references/ 下有 8 份文档。
装好后,可以这样问你的 Agent
这份 Skill 覆盖的典型任务。点一下复制。
8 类能力
每类能力对应一份 reference,Agent 按任务只打开需要的那份。
Ingestion 还是 Web API
两套互相独立的接口该走哪条:用 DSN 装 SDK 上报错误,还是用 auth token 直接调 HTTP 查询/管理数据;DSN 结构、SDK 初始化最小示例、两者交界点(建项目后再查它的 DSN)
鉴权与 Token
Bearer 请求头精确格式、三种 auth token(Organization/Internal Integration/Personal)该怎么选、scope 对照表、OAuth2 与 Device Authorization Flow、遗留 API Key
组织与项目
列出 token 能访问的组织与各自的 region URL、创建项目、项目详情更新的权限白名单细节、Client Key(DSN)的增删改查
Issue 查询与管理
Sentry 自己的 key:value 搜索 DSL、resolve/ignore/assign/merge、批量更新与批量删除的坑、Seer AI 自动修复
Event 详情与堆栈跟踪
取一个具体 event(latest/oldest/recommended 字面量怎么用)、堆栈跟踪在响应里的位置、event 附件、source map 调试信息
Release 与 Deploy
创建 release、关联 commit、记录 deploy、release health(crash-free session/user)、上传 release 文件
告警与 Webhook
新版统一告警系统 Detector + Workflow、Service Hook 与 Integration Platform Webhook 的签名校验、和名字相近的 Crons 定时监控要分清楚
分页、限流与报错
Link header + cursor 分页怎么翻、限流响应头怎么读、HTTP 状态码含义、报错 body 结构官方没有统一规范
当前事实
整理自官方文档(抓取于 2026-09-21),还没有用真实凭证验证。
| 项 | 值 |
|---|---|
| Base URL | 带区域前缀的 https://{region}.sentry.io/api/0/...(us 或 de);不确定用哪个时先调 GET /api/0/organizations/,响应里 links.regionUrl 就是该组织该用的地址 |
| 鉴权头 | Authorization: Bearer <token>,标准 Bearer,没有自定义前缀或 header 名 |
| 两套凭证 | DSN 只能写不能读,供 SDK 上报错误(ingestion);Auth Token(Bearer)供 Web API 读写组织数据——两者不能互换,DSN 打不了 GET /issues/ |
| 最容易漏传的字段 | 项目级 endpoint 是 /api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/...,组织 slug 也必须写在前面,漏掉直接 404 |
| 分页 | 靠响应头 Link(rel="next" + results="true"/"false")配 cursor 参数,不是页码 |
照通用经验写容易错的 6 件事
来自官方文档,还没有用真实凭证验证。
- 不传 query 参数默认只返回未解决的 issue。Issue 列表 endpoint 在没传
query时会隐式加上is:unresolved;想要全部 issue(含已解决/已忽略)要显式传一个空字符串query=。 - Issue 搜索本身不支持布尔操作符。
AND/OR/括号只在 Explore、Dashboards、Monitors 里可用;多值查询要用列表语法issue.priority:[high, medium],而不是拼OR。 - Event 本身不可变。PUT/DELETE 权限只对 issue(聚合体)生效,不能单独删除或修改一次具体的 event,只能对它所属的 issue 做操作。
- 批量删除 issue 是破坏性操作,默认作用范围很宽。
DELETE /api/0/organizations/{org}/issues/不传id时会尝试删除前 1000 个匹配query的 issue;批量更新里越权的那部分 ID 会被静默跳过而不报错,响应仍显示成功。 - 三种 auth token 权限模型不同,选错要么权限不够要么权限过大。CI 场景官方首推权限固定较窄的
Organization Token;需要程序化建项目这类更完整权限时才用Internal Integration Token;Personal Token会在创建者被移出组织后失效,不建议用在 CI 里。 - project 级 event 详情 endpoint 不接受 latest/oldest/recommended。这三个字面量只在 issue 级的
GET /api/0/organizations/{org}/issues/{issue_id}/events/{event_id}/里可用,用到 project 级的GET /api/0/projects/{org}/{project}/events/{event_id}/上会直接 404。