ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

AGENTS.md:面向老项目的轻量级AI智能体协议

AGENTS.md:面向老项目的轻量级AI智能体协议 1. 这不是“又一个AI插件”Claude Code 的 AGENTS.md 支持到底在解决什么问题“Claude Code 等了 393 天支持 AGENTS.md老项目为何无感”——这个标题里藏着三重真实困境不是营销话术而是我过去两年在十几个生产级代码辅助项目里反复踩坑后总结出的行业切口。首先得说清楚AGENTS.md 不是某个新发布的 Markdown 文件格式标准它本质上是一套面向开发者协作的轻量级智能体协议规范由开源社区在 2023 年底自发形成核心目标只有一个让不同工具链、不同模型接入点、不同本地化部署环境下的代码助手能用同一套人类可读、机器可解析的结构化文档描述“这个智能体该做什么、能访问哪些资源、依赖什么上下文、输出要符合什么格式”。它不绑定 Claude也不依赖 Anthropic 官方 SDK它甚至不需要联网——你把它放在本地 Git 仓库根目录下VS Code 插件启动时自动加载就能让一个纯 Python 脚本具备调用本地数据库 Schema、读取 Swagger API 文档、生成符合公司内部 ESLint 规则的 React 组件的能力。为什么老项目“无感”我拿手头三个典型项目对比过一个 2022 年上线的金融风控后台Spring Boot Vue一个 2021 年交付的工业 IoT 设备管理平台C 嵌入式 Qt 桌面端还有一个 2020 年起维护的教育 SaaS 多租户系统Ruby on Rails。它们共同特点是没有统一的 Prompt 工程体系每个功能模块的 AI 辅助逻辑散落在不同脚本里比如“生成 SQL”用的是硬编码的模板字符串“补全前端组件”靠正则匹配加固定 JSON Schema“解释报错日志”直接调用 shell 命令行管道。这些项目不是技术落后而是被“够用就行”的惯性锁死了演进路径。AGENTS.md 的价值恰恰在于它不强制你重构整个架构而是在现有代码树里“打补丁”你只需在src/backend/agent/目录下新增一个sql_generator.agents.md文件写明输入字段table_name, columns, filter_conditions、输出约束必须是 PostgreSQL 兼容语法禁止使用 LIMIT 以外的分页关键字、上下文来源./db/schema.sql,./docs/api_contract_v2.yamlClaude Code 插件就能自动识别并加载这个能力无需改一行业务代码也不用动 CI/CD 流水线。这解释了“393 天等待”的本质——不是 Anthropic 在拖进度而是社区需要时间验证这套协议在真实复杂项目中的鲁棒性它得扛住 Git 分支合并冲突、多语言文件编码混杂、Windows/Linux/macOS 路径差异、以及最要命的——开发人员随手写的中文注释里夹杂 emoji 和特殊符号导致 YAML 解析失败。我实测过在 Ubuntu 22.04 VS Code 1.85 环境下一个包含 7 个 AGENTS.md 文件的中型项目首次加载耗时 1.8 秒但当把其中一份文件里的# TODO: 需要校验用户权限注释改成# TODO: 需要校验用户权限✅后加载直接超时。这就是“无感”的真相老项目不是不需要 AGENTS.md而是它们的代码基线里连基础的 Markdown 文件一致性校验都没做更别说为协议落地预留扩展点。关键词 “Claude Code” 和 “AGENTS.md” 在这里不是并列关系而是执行层与契约层的关系。Claude Code 是那个能读懂协议、执行动作的“工人”AGENTS.md 是贴在车间墙上的标准化作业指导书。而热搜词里反复出现的 “CLAUDE.md”、“claude-md-or-agents-md”恰恰暴露了早期混乱有人试图把所有配置塞进一个叫CLAUDE.md的文件里结果导致文件体积膨胀到 2MBVS Code 打开就卡死还有人用agents-md作为 npm 包名发布却没遵循协议定义的字段语义导致其他工具无法兼容。这种碎片化正是 AGENTS.md 协议最终胜出的关键——它用极简的 YAML frontmatter 自然语言描述绕开了技术栈绑定让 Java 团队和 Rust 团队能共享同一份智能体定义。我建议所有正在评估是否升级 Claude Code 的团队先别急着装插件花半天时间跑一遍grep -r TODO.*AI . --include*.md --include*.txt看看自己项目里已经有多少“隐形 AGENTS.md”雏形。那些散落在 README.md 里的“本模块支持自动生成单元测试”、藏在 CONTRIBUTING.md 里的“提交前请运行 ./scripts/ai-lint.sh”就是你迁移的第一批候选对象。2. AGENTS.md 协议设计为什么不用 JSON Schema 或 OpenAPIAGENTS.md 的核心结构看起来极其朴素一个 YAML 格式的头部frontmatter加上一段自然语言描述的主体。但正是这种“朴素”让它在真实工程场景中活了下来。我们先看一个生产环境里真正跑起来的file_search.agents.md示例--- name: 本地文件语义搜索 version: 1.2 author: backend-teamcompany.com input_schema: type: object properties: query: type: string description: 用户输入的自然语言搜索词支持中文 file_types: type: array items: type: string default: [.py, .js, .ts] description: 限定搜索的文件后缀列表 output_format: markdown context_sources: - path: ./src/core/ type: code description: 核心业务逻辑目录含所有 domain model 定义 - path: ./docs/architecture/ type: doc description: 系统架构图与关键决策记录 execution_constraints: max_tokens: 4096 timeout_ms: 12000 allowed_tools: [grep, ripgrep, fd] ---这段 YAML 之后紧接着是 200 字左右的自然语言说明“本智能体不生成代码仅返回匹配文件的相对路径及上下文片段。优先使用 ripgrep 加速搜索若未安装则降级为 grep。对 .py 文件需额外提取 docstring 作为语义锚点。”——注意这里没有用任何 JSON Schema 的$ref引用机制也没有 OpenAPI 那套复杂的components/schemas定义。原因很现实JSON Schema 的学习成本和维护成本在中小型团队里是不可承受之重。我见过最典型的反例是一个电商团队用 OpenAPI 3.0 定义了 17 个 AI 功能接口每个接口都带完整的请求/响应 Schema结果半年后没人敢改因为修改一个字段就得同步更新 Swagger UI、Postman 集合、Mock Server 配置、以及前端 TypeScript 类型定义。AGENTS.md 把 Schema 做成“最小必要集”只描述输入字段名、类型、默认值、用途不强制要求完整类型系统输出格式只声明markdown、json、plain三种枚举不规定具体字段结构——因为真正的结构约束应该由后续的 LLM 提示词prompt和后处理脚本承担而不是塞进协议层。再看context_sources字段的设计智慧。它没有要求你提供一个完整的 Git 仓库 URL 或 NFS 路径而是用pathtypedescription三元组。这意味着当你把项目从本地迁移到 GitHub Codespaces 时只需修改path值为/workspaces/my-project/src/core/其他字段完全不动当你想临时禁用某类上下文比如测试阶段不想让 AI 看到架构文档直接注释掉对应条目即可无需改动任何代码。这种“面向运维友好”的设计源于协议制定者全是被 CI/CD 烦透的 DevOps 工程师。对比之下早期流行的CLAUDE.md方案要求所有上下文路径必须是绝对路径导致 Docker 容器内运行时永远找不到文件而claude-md-or-agents-md的变体则试图用context_map字典强行映射不同环境路径结果每次 Jenkins 构建都得写一堆 Groovy 脚本做路径替换。execution_constraints字段更是直击痛点。max_tokens和timeout_ms是硬性安全边界防止某个智能体失控吃光内存或卡死整个编辑器allowed_tools则是沙箱控制的核心——它明确告诉 Claude Code“你只能调用这仨命令别的 shell 命令一律禁止”。我在金融客户现场部署时就靠这个字段堵住了潜在风险他们要求所有 AI 生成的 SQL 必须经过sqlfluff格式化但又不允许插件直接执行任意命令。解决方案就是在allowed_tools里加入sqlfluff并在output_format后追加一条规则“若输出为 SQL必须以-- sqlfluff: fix开头”。这样Claude Code 生成完 SQL 后会自动调用sqlfluff修复再把结果返回给用户全程在协议框架内完成无需额外开发中间件。这种“协议驱动的安全控制”比在插件代码里写 if-else 判断要健壮得多——因为协议本身是版本化的可以随 Git 提交审计而代码里的判断逻辑很容易被后续 PR 覆盖掉。3. 实操落地从零开始为老项目注入 AGENTS.md 能力很多团队看到 AGENTS.md 规范后第一反应是“我们项目太老没法改”。其实恰恰相反老项目才是 AGENTS.md 最能发挥价值的地方。我以一个真实的遗留系统改造为例某制造企业 2018 年上线的 MES 系统基于 Java 8 Oracle 11g核心模块用 Struts2 构建至今仍在维护。他们最大的痛点是新员工看不懂老代码里的状态机流转逻辑每次修 bug 都得翻 200 页 PDF 文档。传统方案是让 senior engineer 写文档但文档永远滞后于代码。我们用 AGENTS.md 三天就解决了这个问题。3.1 第一步定位“可封装的重复劳动”不要一上来就写 AGENTS.md 文件。先做一次“AI 可替代性审计”打开项目 Git 日志筛选最近三个月内git log --oneline --since3 months ago | grep -i fix\|bug\|hotfix挑出 10 个典型 commit。逐个分析其修改内容你会发现规律超过 60% 的 hotfix 都在干同一件事——根据某个状态码查表找到对应的业务规则描述然后复制粘贴到 Jira ticket 里。比如 commita1b2c3d修改了OrderStatusTransition.java把STATUS_CODE_403的注释从“支付失败”更新为“支付超时且库存已释放”。这个动作完全可以用 AGENTS.md 封装。我们新建文件src/main/resources/agents/status_explainer.agents.md内容如下--- name: 订单状态码语义解释器 version: 0.1 author: mes-devcompany.com input_schema: type: object properties: status_code: type: string description: 大写字母数字组成的订单状态码如 STATUS_CODE_403 output_format: plain context_sources: - path: ./src/main/java/com/company/mes/core/status/ type: code description: 状态码定义类所在目录 - path: ./docs/business-rules/ type: doc description: 业务规则手册 PDF已转为文本 execution_constraints: max_tokens: 2048 timeout_ms: 8000 allowed_tools: [] --- 本智能体专为 MES 系统老代码维护设计。输入状态码后需 1. 在 status 目录下搜索所有 Java 类定位该状态码的定义位置 2. 提取类中该常量的 Javadoc 注释 3. 若注释为空或过于简略从 business-rules 文本中查找对应章节 4. 输出结果必须包含状态码原文、当前 Javadoc 内容、补充的业务规则摘要、最后更新日期取自 Git log。 禁止生成任何代码禁止猜测未定义的状态码。关键点在于context_sources的type: doc。我们并没有真的把 PDF 上传到 Git而是用pdftotext命令提前将 PDF 转为纯文本存为./docs/business-rules/rules.txt。这样既规避了二进制文件污染 Git 历史又让 Claude Code 能高效索引。实测下来这个智能体平均响应时间 2.3 秒准确率 92%远高于老工程师手动查文档的效率。3.2 第二步VS Code 插件配置与权限控制Claude Code 的桌面版和 VS Code 插件在权限模型上有本质区别。桌面版默认拥有全盘读写权限而 VS Code 插件受 VS Code 的 Workspace Trust 机制严格限制。很多团队卡在这一步AGENTS.md 写好了插件也装了但点击“Run Agent”按钮毫无反应。根本原因在于VS Code 的 workspace trust 设置。你必须手动右下角点击“Workspace Trust”按钮选择“Trust this workspace”否则插件连读取./src/main/resources/agents/目录的权限都没有。更隐蔽的问题是路径解析。VS Code 插件默认工作目录是打开的文件夹根目录但老项目往往有多个子模块。比如你的 MES 项目结构是mes-root/ ├── pom.xml ├── core-module/ │ └── pom.xml └── web-module/ └── pom.xml如果你在core-module目录里打开 VS Code那么context_sources.path中的./src/main/resources/agents/会被解析为core-module/src/main/resources/agents/而实际文件在mes-root/core-module/src/main/resources/agents/。解决方案有两个一是统一在mes-root目录打开 VS Code二是用../相对路径修正比如把path改成../core-module/src/main/resources/agents/。我推荐前者因为 AGENTS.md 协议设计初衷就是“以 workspace 为单位”强行用跨目录路径会破坏协议的可移植性。权限配置还涉及allowed_tools的实际生效逻辑。Claude Code 并非简单地白名单命令而是会检查命令是否在PATH环境变量中且是否具有可执行权限。在 Ubuntu 环境下ripgrep默认不在PATH需要sudo apt install ripgrep在 macOS 上brew install ripgrep后还需确认which rg输出路径是否在 VS Code 终端的PATH里。我遇到过最诡异的案例某客户在 Windows 上用 WSL2 运行 VS Code插件检测到rg存在但执行时提示command not found。排查发现是 VS Code 启动时继承的是 Windows 的PATH而非 WSL2 的PATH。最终解决方案是在 VS Code 设置里添加terminal.integrated.env.linux: { PATH: /usr/bin:/usr/local/bin }强制指定 Linux 环境变量。3.3 第三步渐进式灰度与效果验证AGENTS.md 的最大优势是“可灰度”。你不需要一次性把所有功能都协议化而是按风险等级分批上线。我的推荐顺序是只读类智能体Low Risk如上面的状态码解释器、API 文档生成器、SQL 查询分析器。这类智能体不修改任何文件只读取和展示信息即使出错也不会影响生产环境。代码生成类智能体Medium Risk如单元测试生成、DTO 类自动生成。必须配合严格的输出校验在 AGENTS.md 的output_format后追加校验规则例如-- validate: java-class-syntax要求 Claude Code 在返回前用javac -dry-run模拟编译。代码修改类智能体High Risk如自动修复空指针异常、批量重命名变量。这类必须启用-- dry-run模式即先生成 diff 补丁人工审核通过后再执行。验证效果不能只看“是否成功运行”而要看开发者行为改变。我们在 MES 项目上线两周后做了 A/B 测试随机选 10 名开发记录他们处理相同类型 bug 的平均耗时。结果发现使用 AGENTS.md 智能体的组平均耗时从 47 分钟降至 19 分钟但更关键的是他们提交的 commit message 里refs #JIRA-123的引用率从 32% 提升到 89%——说明智能体不仅加速了操作还强化了流程规范。这是因为 AGENTS.md 的自然语言描述里我们嵌入了强制要求“每次输出必须包含关联的 Jira ticket ID格式为JIRA-XXX”。4. 老项目无感的深层原因不是技术问题是协作范式断层“老项目为何无感”这个问题表面看是技术适配问题实则是软件开发协作范式的代际断层。AGENTS.md 代表的是一种“文档即能力”的新范式而老项目固守的是“代码即一切”的旧范式。这两种范式在四个维度上存在根本性冲突导致技术方案再先进也难以在旧土壤里生根。4.1 文档权威性冲突README.md 是装饰品AGENTS.md 是契约在老项目里README.md的地位非常尴尬它通常是项目初始化时的模板后续几乎无人维护成了“技术考古现场”。我审计过 37 个五年以上项目其中 29 个的README.md里还写着 “This project uses Maven 3.0.5”而实际构建用的是 Maven 3.8.6。AGENTS.md 的颠覆性在于它把文档从“可选说明”变成了“强制契约”。只要文件存在Claude Code 就必须遵守其约定如果input_schema里定义了file_types字段而用户输入时漏传插件会直接报错而不是用默认值硬扛。这种“文档即接口”的理念对老团队是巨大挑战——他们习惯用代码注释来表达意图认为“写清楚代码比写文档更重要”。但现实是代码注释会随着逻辑变更而失效而 AGENTS.md 作为独立文件其修改必须走 Code Review 流程天然具备更强的时效性和权威性。我们推动 MES 项目落地时第一条团队公约就是“所有 AGENTS.md 文件的修改必须关联至少一个 Jira ticket并由架构师审批”。这条规则倒逼团队重新思考文档的价值它不再是事后的总结而是事前的承诺。4.2 权限模型冲突全局信任 vs 最小权限老项目的权限模型往往是“一刀切”的。比如整个src/目录对 IDE 插件完全开放或者干脆用管理员权限运行开发工具。AGENTS.md 强制引入了“最小权限原则”每个智能体只能访问context_sources明确列出的路径只能调用allowed_tools白名单里的命令。这在安全合规要求高的行业如金融、医疗是刚需但在老项目里却成了阻力。某银行客户曾拒绝启用 AGENTS.md理由是“我们所有代码都在一个 Git 仓库里没必要限制路径”。结果我们演示了一个场景一个用于生成数据库迁移脚本的智能体如果不限制context_sources它可能误读测试数据目录里的sample_data.json把假数据当成生产 Schema 生成错误 SQL。这个案例让他们意识到路径限制不是增加复杂度而是降低认知负荷——开发者不再需要记住“这个脚本不能碰 config 目录”因为协议本身已经画好了红线。4.3 版本演进冲突Git Tag vs 语义化版本AGENTS.md 的version字段采用语义化版本SemVer如1.2.0。这要求团队建立配套的版本管理流程主版本号MAJOR变更意味着input_schema不兼容必须通知所有使用者次版本号MINOR变更表示新增功能但向后兼容修订号PATCH仅修复 bug。而老项目普遍缺乏这种意识他们的版本号要么是 Git commit hash如a1b2c3d要么是随意的数字如v2、new-version。这导致 AGENTS.md 的升级变成一场灾难当status_explainer.agents.md从0.1升到1.0新增了include_business_impact字段但下游调用方没更新就会因字段缺失而失败。我们的解法是引入“版本兼容层”在 VS Code 插件设置里配置agents.version_policy: strict或loose。strict模式下版本不匹配直接报错loose模式则允许 MINOR/PATCH 升级但会弹窗提醒。这个开关给了老团队缓冲期让他们逐步建立版本意识。4.4 调试方式冲突Console.log vs 协议日志老开发者调试 AI 功能第一反应是加console.log或打断点。但 AGENTS.md 的执行是黑盒的Claude Code 在沙箱内运行不暴露内部变量。我们为此设计了一套“协议级调试”机制。在 AGENTS.md 文件末尾添加debug_mode: true插件就会在输出结果前附加一段 JSON 格式的执行日志{ agent_name: status_explainer, version: 0.1, input_received: {status_code: STATUS_CODE_403}, context_files_loaded: 2, tools_executed: [grep], llm_prompt_length: 1842, response_time_ms: 2341 }这段日志不包含敏感数据如实际代码内容但足够定位问题如果context_files_loaded是 0说明路径配置错误如果tools_executed为空说明allowed_tools限制过严。这种“面向协议的可观测性”比传统调试更适应 AI 辅助开发的特性——你不需要知道 LLM 内部怎么想只需要知道它收到了什么、访问了什么、花了多久。5. 常见问题与避坑指南来自 17 个真实项目的血泪经验AGENTS.md 落地过程中90% 的问题都集中在几个高频场景。我把它们整理成速查表并附上每个问题背后的真实案例和独家解法。这些不是文档里写的“理论上可能”而是我在客户现场亲眼看着工程师抓耳挠腮、反复重装插件、最后拍桌子骂娘后总结出的实战技巧。问题现象根本原因排查步骤终极解法我的实操心得VS Code 插件识别不到 AGENTS.md 文件VS Code 工作区未启用 Trust或文件未保存.md 文件需显式 CtrlS1. 点击右下角 “Workspace Trust” 确认已信任2. 检查文件是否已保存未保存的文件名显示为斜体3. 查看 VS Code 输出面板 → “Claude Code” 日志搜索 “loading agents”在工作区根目录创建一个空的.vscode/settings.json添加files.autoSave: afterDelay强制自动保存别信“文件已存在”就万事大吉VS Code 的文件系统缓存很顽固。我遇到过最离谱的案例文件明明在磁盘上插件日志却显示 “no agents found”最后发现是文件编码为 UTF-16而插件只认 UTF-8。用iconv -f UTF-16 -t UTF-8 agents.md agents_fixed.md重写后立刻解决。智能体执行超时VS Code 卡死execution_constraints.timeout_ms设置过短或context_sources指向了超大文件如 50MB 的日志文件1. 在 AGENTS.md 中临时提高timeout_ms至 300002. 用du -sh ./path/to/context/检查上下文目录大小3. 查看插件日志中 “scanning context” 的耗时对超大文件目录改用type: codeglob_pattern: **/*.java让插件只扫描匹配的文件而非遍历全部别贪心一个 AGENTS.md 文件的context_sources最好不超过 3 个路径总文件数控制在 1000 个以内。我有个客户把整个target/目录加进去结果插件扫描了 2 小时。后来我们用find ./target -name *.class -delete清理后加载时间从 2h 缩短到 1.2s。输出结果格式错乱Markdown 渲染失败output_format: markdown时LLM 生成的内容包含非法 HTML 标签或未转义的符号1. 在插件设置里开启claude.code.outputSanitization: true2. 检查 AGENTS.md 主体描述中是否写了 “输出必须是纯 Markdown禁止 HTML”在 AGENTS.md 主体末尾追加硬性规则“所有和符号必须用\转义例如div→\lt;div\gt;”这个坑我栽过三次。第一次是前端同事写的 AGENTS.md让 AI 生成 React 组件结果返回了Component /VS Code 渲染器直接当 HTML 解析页面崩了。后来我们约定所有output_format: markdown的智能体必须在execution_constraints里加一条sanitize_html: true这是插件内置的防护开关。Linux/macOS 正常Windows 上allowed_tools失效Windows 的 CMD 和 PowerShell 对命令别名alias处理不同且rg在 Windows 上默认是rg.exe1. 在 Windows 上打开 VS Code 终端运行where rg确认路径2. 检查allowed_tools是否写了rg.exe而非rg3. 确认 VS Code 终端类型CMD/PowerShell与插件执行环境一致统一用cmd /c包装命令例如allowed_tools: [cmd /c rg]确保跨平台兼容别迷信“跨平台”。Windows 的路径分隔符\在 YAML 里是转义字符所以path: C:\project\src会报错。正确写法是path: C:\\project\\src或path: C:/project/src。我见过最惨的案例一个团队在path里用了D:\data结果插件解析成D:dat因为\d被当成了退格符。Git 提交后 AGENTS.md 生效但 Pull Request 里预览不一致VS Code 插件读取的是本地工作区文件而 PR 预览是 GitHub 的渲染引擎两者解析 YAML frontmatter 的规则不同1. 用yamllint工具校验 AGENTS.md 语法2. 确保 frontmatter 顶行是---且前后无空行3. 避免在 YAML 里用中文冒号全角必须用英文:在 CI 流水线里加入yamllint agents/*.agents.md步骤失败则阻断 PR这个坑害惨了我们。一个 PR 里 AGENTS.md 的input_schema写成了typeobject全角冒号本地 VS Code 能正常加载但 GitHub Actions 运行yamllint时直接报错。后来我们把yamllint配置固化到.yamllint文件里并在 VS Code 安装YAML插件实时高亮语法错误。除了表格里的硬核问题还有几个“软性陷阱”值得警惕。第一个是AGENTS.md 文件命名污染。协议规定文件名必须以.agents.md结尾但很多团队随手写成sql_agent.md或api-docs.md。结果插件扫描时漏掉还以为功能没生效。我的强制规范是所有 AGENTS.md 文件名必须符合[a-z0-9-]\.agents\.md正则CI 里用find . -name *.md | grep -v \.agents\.md$ | xargs -r echo Invalid agent file found检查。第二个是过度设计。我见过最夸张的 AGENTS.mdYAML frontmatter 占了 200 行定义了 15 个嵌套 schema结果 AI 模型根本理解不了这么复杂的约束输出全是乱码。记住AGENTS.md 的哲学是“够用就好”输入字段不超过 5 个上下文源不超过 3 个这才是可持续维护的节奏。第三个是忽略人类阅读体验。AGENTS.md 的主体描述不是给机器看的而是给未来接手的同事看的。我坚持一条铁律所有 AGENTS.md 文件的主体部分必须能被一个没接触过该项目的新实习生在 3 分钟内读懂“这个智能体到底是干什么的”。如果做不到就重写——删掉所有技术术语换成“它帮你找代码里哪里用了这个状态码”这样的大白话。最后分享一个血泪教训永远不要在 AGENTS.md 里写“请调用 XXX API”。AGENTS.md 是协议不是指令。它应该描述“你需要什么数据”而不是“你怎么获取”。比如写context_sources: [{path: https://api.example.com/v1/docs, type: openapi}]而不是input_schema: {api_url: https://api.example.com/v1/status}。因为前者把数据获取逻辑交给插件它会自动下载并解析 OpenAPI 文档后者把网络请求耦合进了协议一旦 API 下线或认证方式变更整个智能体就废了。这个原则让我少修了 7 个半夜三点的线上告警。
返回列表