用途
该技能用于帮助用户运行、启动或调试 Mule 应用程序。当用户要求运行、启动或调试 Mule 应用时,应首先且仅调用 use_skill。它通过已有的运行配置来执行 Mule 应用,支持运行模式(run)和调试模式(debug)。
主要能力
- 判断用户请求是明确还是模糊。
- 获取工作区信息(工作区类型与项目列表)。
- 查找或创建匹配的运行配置。
- 执行配置:明确请求自动执行,模糊请求需用户确认后执行。
- 支持工作区级(多项目)和项目级(单项目)配置。
- 检测模式:默认运行模式(noDebug: true),用户明确提到“debug”时使用调试模式(noDebug: false 或未定义)。
- 处理配置中引用的项目已从工作区移除的情况,并提示用户。
使用方式
明确请求
当用户指定了确切的项目或配置名称时,可自动执行:
- 调用 get_workspace_info 获取可用项目。
- 查找匹配配置:
- 若用户指定了确切配置名,列出相应范围的配置,查找同名配置;找到则执行,未找到则告知并建议创建。
- 若用户指定了项目名,检测模式(默认运行模式),匹配项目,确定范围(单项目为 project,多项目为 workspace),列出该范围配置,查找模式匹配且项目完全匹配的配置;找到则执行,未找到则自动创建。
- 如需创建配置:使用 manage_run_configuration 的 create 操作,生成合适名称(如“Debug ”或“Run All Projects”)。注意工具可能因重名返回不同名称(如“Run All Projects (2)”),执行时必须使用返回的确切名称。
- 自动执行,无需额外确认。
模糊请求
当请求不明确时,按以下步骤:
- 首先调用 get_workspace_info(无参数),获取工作区类型和项目列表。
- 若工作区为 multi-root,询问用户要运行多个项目还是单个项目,等待回答。若为 single-folder,直接使用该唯一项目,范围设为 project。
- 列出可用配置:
- 多项目:{ "operation": "list", "scope": "workspace" }
- 单项目:{ "operation": "list", "scope": "project", "projectPath": "<绝对路径>" } 注意:list 必须带 scope 参数,否则会失败。 列出后向用户展示所有配置,检查工作区级配置中的项目是否与当前工作区匹配,若有不匹配需提示。然后询问用户想运行哪个配置,等待选择。即使只有一个配置,也必须确认。
- 用户确认后,使用 manage_run_configuration 的 execute 操作执行:
- 工作区级:{ "operation": "execute", "configName": string, "scope": "workspace" }
- 项目级:{ "operation": "execute", "configName": string, "scope": "project", "projectPath": string }
- 将工具返回的消息(如“Started configuration ''”)告知用户。
适用场景
- 在 Mule 开发环境中运行或调试单个 Mule 项目。
- 在包含多个项目的工作区中,将多个项目放在同一个工作区级配置中一起运行。
- 根据用户指定的项目名或配置名快速执行。
- 需要区分运行模式与调试模式时。
限制
- 一次只能有一个 Mule 运行时实例处于活动状态。要运行多个项目,必须将它们放在单个工作区级配置中。绝不能尝试按顺序或并行运行多个项目级配置。
- 若工作区级运行失败,不要回退到运行单个项目配置,也不要使用 run_local_mule_application 工具作为回退。应报告错误并建议创建新的工作区级配置或检查配置是否存在。
- 绝不使用 run_local_mule_application:该工具用于不同的工作流(直接运行时部署)。执行运行配置应始终使用 manage_run_configuration 的 execute 操作。
- 调用 list 时必须提供 scope 参数,否则会失败。
- 创建配置后,执行时必须使用工具返回的确切名称,而非最初建议的名称。
- 对于模糊请求,即使只有一个配置,也必须获得用户明确确认后才能执行(明确请求除外)。
- 不要做假设:选择“多个项目一起”并不意味着用户想运行所有项目,需要用户确认具体要执行的配置。
- 工作区级配置中若引用了已从工作区移除的项目,应跳过该配置并提示用户。