diff --git a/src/core/src/apis/friend.ts b/src/core/src/apis/friend.ts
index 742d0da1..486b8c4e 100644
--- a/src/core/src/apis/friend.ts
+++ b/src/core/src/apis/friend.ts
@@ -4,59 +4,29 @@ import { NTEventDispatch } from '@/common/utils/EventTask';
 
 export class NTQQFriendApi {
   static async getBuddyV2(refresh = false): Promise<FriendV2[]> {
-    let uids: string[];
-    let categoryMap: Map<string, any> = new Map();
-    if (!refresh) {
-      uids = (await napCatCore.session.getBuddyService().getBuddyListFromCache('0')).flatMap((item) => {
-        for (let i = 0; i < item.buddyUids.length; i++) {
-          categoryMap.set(item.buddyUids[i], { categoryId: item.categoryId, categroyName: item.categroyName });
-        }
-        return item.buddyUids;
-      });
-    }
-    uids = (await (napCatCore.session.getBuddyService().getBuddyListV2('0', BuddyListReqType.KNOMAL))).data.flatMap((item) => item.buddyUids);
-    let data = await NTEventDispatch.CallNoListenerEvent<NodeIKernelProfileService['getCoreAndBaseInfo']>('NodeIKernelProfileService/getCoreAndBaseInfo', 5000, 'nodeStore', uids);
-    //遍历data
-    let retArr: FriendV2[] = [];
-    data.forEach((value, key) => {
-      let category = categoryMap.get(key);
-      if (category) {
-        retArr.push({
-          ...value,
-          categoryId: category.categoryId,
-          categroyName: category.categroyName
-        });
-      }
-    })
-    return retArr;
+    let uids: string[] = [];
+    const buddyService = napCatCore.session.getBuddyService();
+    const buddyListV2 = refresh ? await buddyService.getBuddyListV2('0', BuddyListReqType.KNOMAL) : await buddyService.getBuddyListV2('0', BuddyListReqType.KNOMAL);
+    uids.push(...buddyListV2.data.flatMap(item => item.buddyUids));
+    const data = await NTEventDispatch.CallNoListenerEvent<NodeIKernelProfileService['getCoreAndBaseInfo']>(
+      'NodeIKernelProfileService/getCoreAndBaseInfo', 5000, 'nodeStore', uids
+    );
+    return Array.from(data.values());
   }
-  static async getBuddyV2Ex(refresh = false): Promise<FriendV2[]> {
+  static async getBuddyV2ExWithCate(refresh = false) {
     let uids: string[] = [];
     let categoryMap: Map<string, any> = new Map();
-
     const buddyService = napCatCore.session.getBuddyService();
-
-    if (!refresh) {
-        const cachedBuddyList = await buddyService.getBuddyListFromCache('0');
-        cachedBuddyList.forEach(item => {
-            item.buddyUids.forEach(uid => {
-                categoryMap.set(uid, { categoryId: item.categoryId, categroyName: item.categroyName });
-            });
-            uids.push(...item.buddyUids);
-        });
-    }
-
-    const buddyListV2 = await buddyService.getBuddyListV2('0', BuddyListReqType.KNOMAL);
+    const buddyListV2 = refresh ? await buddyService.getBuddyListV2('0', BuddyListReqType.KNOMAL) : await buddyService.getBuddyListV2('0', BuddyListReqType.KNOMAL);
     uids.push(...buddyListV2.data.flatMap(item => item.buddyUids));
-
     const data = await NTEventDispatch.CallNoListenerEvent<NodeIKernelProfileService['getCoreAndBaseInfo']>(
-        'NodeIKernelProfileService/getCoreAndBaseInfo', 5000, 'nodeStore', uids
+      'NodeIKernelProfileService/getCoreAndBaseInfo', 5000, 'nodeStore', uids
     );
     return Array.from(data).map(([key, value]) => {
-        const category = categoryMap.get(key);
-        return category ? { ...value, categoryId: category.categoryId, categroyName: category.categroyName } : value;
+      const category = categoryMap.get(key);
+      return category ? { ...value, categoryId: category.categoryId, categroyName: category.categroyName } : value;
     });
-}
+  }
   static async isBuddy(uid: string) {
     return napCatCore.session.getBuddyService().isBuddy(uid);
   }
diff --git a/src/core/src/core.ts b/src/core/src/core.ts
index 45288c30..7b205d13 100644
--- a/src/core/src/core.ts
+++ b/src/core/src/core.ts
@@ -15,12 +15,12 @@ import { DependsAdapter, DispatcherAdapter, GlobalAdapter, NodeIGlobalAdapter }
 import path from 'node:path';
 import os from 'node:os';
 import fs from 'node:fs';
-import { getFullQQVesion, QQVersionAppid, QQVersionQua } from '@/common/utils/QQBasicInfo';
+import { getFullQQVesion, QQVersionAppid, QQVersionQua, requireMinNTQQBuild } from '@/common/utils/QQBasicInfo';
 import { hostname, systemVersion } from '@/common/utils/system';
 import { genSessionConfig } from '@/core/sessionConfig';
 import { sleep } from '@/common/utils/helper';
 import crypto from 'node:crypto';
-import { rawFriends, friends, groupMembers, groups, selfInfo, stat } from '@/core/data';
+import { friends, groupMembers, groups, selfInfo, stat } from '@/core/data';
 import { GroupMember, RawMessage } from '@/core/entities';
 import { NTEventDispatch } from '@/common/utils/EventTask';
 import {
@@ -254,29 +254,16 @@ export class NapCatCore {
     this.addListener(msgListener);
     // 好友相关 
     const buddyListener = new BuddyListener();
-    buddyListener.onBuddyListChange = arg => {
-      rawFriends.length = 0;
-      rawFriends.push(...arg);
-      // console.log('onBuddyListChange', arg);
-      for (const categoryItem of arg) {
-        for (const friend of categoryItem.buddyList) {
-          // console.log("onBuddyListChange", friend)
-          const existFriend = friends.get(friend.uid);
-          if (existFriend) {
-            Object.assign(existFriend, friend);
-          }
-          else {
-            friends.set(friend.uid, friend);
-          }
-        }
-        // console.log("onBuddyListChange", friend)
-      }
-    };
+
+
     this.addListener(buddyListener);
-    // 刷新一次好友列表
-    this.session.getBuddyService().getBuddyList(true).then(arg => {
-      // console.log('getBuddyList', arg);
-    });
+    // 刷新一次好友列表  26702版本以下需要手动刷新一次获取 高版本NTQQ自带缓存
+    if (!requireMinNTQQBuild('26702')) {
+      this.session.getBuddyService().getBuddyList(true).then(arg => {
+        // console.log('getBuddyList', arg);
+      });
+    }
+
     interface SelfStatusInfo {
       uid: string
       status: number
diff --git a/src/core/src/data.ts b/src/core/src/data.ts
index 24965a3c..31143f41 100644
--- a/src/core/src/data.ts
+++ b/src/core/src/data.ts
@@ -28,7 +28,6 @@ export const groupMembers: Map<string, Map<string, GroupMember>> = new Map<strin
 
 // uid -> Friend 下面这俩个准备移除 QQ里面自带缓存
 export const friends: Map<string, Friend> = new Map<string, Friend>();
-export const rawFriends: Array<BuddyCategoryType> = []; // 带分组的好友列表
 
 export async function getGroup(qq: string | number): Promise<Group | undefined> {
   let group = groups.get(qq.toString());
diff --git a/src/onebot11/action/extends/GetFriendWithCategory.ts b/src/onebot11/action/extends/GetFriendWithCategory.ts
index 2a5fef6a..5d423dc3 100644
--- a/src/onebot11/action/extends/GetFriendWithCategory.ts
+++ b/src/onebot11/action/extends/GetFriendWithCategory.ts
@@ -1,12 +1,19 @@
-import { rawFriends } from '@/core/data';
+import { requireMinNTQQBuild } from '@/common/utils/QQBasicInfo';
 import BaseAction from '../BaseAction';
 import { ActionName } from '../types';
 import { BuddyCategoryType } from '@/core/entities/';
+import { NTQQFriendApi } from '@/core';
+import { OB11Constructor } from '@/onebot11/constructor';
 
-export class GetFriendWithCategory extends BaseAction<void, Array<BuddyCategoryType>> {
+export class GetFriendWithCategory extends BaseAction<void, any> {
   actionName = ActionName.GetFriendsWithCategory;
 
   protected async _handle(payload: void) {
-    return rawFriends;
+    if (requireMinNTQQBuild('26702')) {
+      //全新逻辑
+      return OB11Constructor.friendsV2(await NTQQFriendApi.getBuddyV2ExWithCate(true));
+    } else {
+      throw new Error('not support');
+    }
   }
 }
diff --git a/src/onebot11/action/user/GetFriendList.ts b/src/onebot11/action/user/GetFriendList.ts
index bc1e8df6..e72eaa31 100644
--- a/src/onebot11/action/user/GetFriendList.ts
+++ b/src/onebot11/action/user/GetFriendList.ts
@@ -23,7 +23,7 @@ export default class GetFriendList extends BaseAction<Payload, OB11User[]> {
   protected async _handle(payload: Payload) {
     if (requireMinNTQQBuild('26702')) {
       //全新逻辑
-      return OB11Constructor.friendsV2(await NTQQFriendApi.getBuddyV2Ex(payload?.no_cache === true || payload?.no_cache === 'true'));
+      return OB11Constructor.friendsV2(await NTQQFriendApi.getBuddyV2(payload?.no_cache === true || payload?.no_cache === 'true'));
     }
     if (friends.size === 0 || payload?.no_cache === true || payload?.no_cache === 'true') {
       const _friends = await NTQQFriendApi.getFriends(true);