diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/brand/controller/InternalBrandTaskController.java b/backend-java/src/main/java/com/nanri/aiimage/modules/brand/controller/InternalBrandTaskController.java
new file mode 100644
index 00000000..152b52bd
--- /dev/null
+++ b/backend-java/src/main/java/com/nanri/aiimage/modules/brand/controller/InternalBrandTaskController.java
@@ -0,0 +1,56 @@
+package com.nanri.aiimage.modules.brand.controller;
+
+import com.nanri.aiimage.common.api.ApiResponse;
+import com.nanri.aiimage.common.exception.BusinessException;
+import com.nanri.aiimage.common.security.AdminAuthSupport;
+import com.nanri.aiimage.modules.brand.model.dto.BrandTaskAbortRequest;
+import com.nanri.aiimage.modules.brand.service.BrandTaskService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletRequest;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * 内部接口:品牌任务中止上报,供主机 A 品牌检测服务(15126)在爬取不可继续时调用
+ * (如 WIPO 连续限流熔断)。Java 侧用已收到的结果分片部分组装结果文件并落 failed +
+ * 真实原因,避免任务悬挂到心跳超时被判「前端长时间无响应」、已跑出的数据无法下载。
+ *
+ *
鉴权:仅凭 X-Internal-Token(与容器 AIIMAGE_INTERNAL_TOKEN / 宿主机
+ * ~/.aiimage/internal-token 同值)。/api/internal 前缀虽在 AdminApiGuardFilter 兜底
+ * 名单内、可信令牌会放行,controller 仍须自校验——防止配置漂移时匿名可达。
+ */
+@RestController
+@RequiredArgsConstructor
+@Slf4j
+@RequestMapping("/api/internal/brand")
+@Tag(name = "内部接口", description = "服务间调用(X-Internal-Token 鉴权)。")
+public class InternalBrandTaskController {
+
+ private final BrandTaskService brandTaskService;
+ private final AdminAuthSupport adminAuthSupport;
+
+ @PostMapping("/tasks/{taskId}/abort")
+ @Operation(summary = "上报品牌任务中止(爬取方调用)",
+ description = "用已收到的结果分片部分组装结果文件(未检测品牌单独成 sheet)并落 failed + 真实原因;幂等,终态任务直接返回。")
+ public ApiResponse