diff --git a/src/core/apis/msg.ts b/src/core/apis/msg.ts
index 2a73f950..37041dd4 100644
--- a/src/core/apis/msg.ts
+++ b/src/core/apis/msg.ts
@@ -3,6 +3,9 @@ import { InstanceContext, NapCatCore } from '@/core';
 import { GeneralCallResult } from '@/core/services/common';
 
 export class NTQQMsgApi {
+    getMsgByClientSeqAndTime(peer: Peer, replyMsgClientSeq: string, replyMsgTime: string) {
+        return this.context.session.getMsgService().getMsgByClientSeqAndTime(peer, replyMsgClientSeq, replyMsgTime);
+    }
     // nt_qq//global//nt_data//Emoji//emoji-resource//sysface_res/apng/ 下可以看到所有QQ表情预览
     // nt_qq\global\nt_data\Emoji\emoji-resource\face_config.json 里面有所有表情的id, 自带表情id是QSid, 标准emoji表情id是QCid
     // 其实以官方文档为准是最好的,https://bot.q.qq.com/wiki/develop/api-v2/openapi/emoji/model.html#EmojiType
@@ -22,7 +25,9 @@ export class NTQQMsgApi {
     async sendShowInputStatusReq(peer: Peer, eventType: number) {
         return this.context.session.getMsgService().sendShowInputStatusReq(peer.chatType, eventType, peer.peerUid);
     }
-
+    async getSourceOfReplyMsgV2(peer: Peer, clientSeq: string, time: string) {
+        return this.context.session.getMsgService().getSourceOfReplyMsgV2(peer, clientSeq, time);
+    }
     async getMsgEmojiLikesList(peer: Peer, msgSeq: string, emojiId: string, emojiType: string, count: number = 20) {
         //注意此处emojiType 可选值一般为1-2 2好像是unicode表情dec值 大部分情况 Taged Mlikiowa
         return this.context.session.getMsgService().getMsgEmojiLikesList(peer, msgSeq, emojiId, emojiType, '', false, count);
@@ -106,9 +111,9 @@ export class NTQQMsgApi {
             pageLimit: 1,
         });
     }
-    //@deprecated
-    async getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, z: boolean) {
-        return await this.context.session.getMsgService().getMsgsBySeqAndCount(peer, seq, count, desc, z);
+    // 客户端还在用别慌 
+    async getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, isReverseOrder: boolean) {
+        return await this.context.session.getMsgService().getMsgsBySeqAndCount(peer, seq, count, desc, isReverseOrder);
     }
     async getMsgExBySeq(peer: Peer, msgSeq: string) {
         const DateNow = Math.floor(Date.now() / 1000);
diff --git a/src/core/services/NodeIKernelMsgService.ts b/src/core/services/NodeIKernelMsgService.ts
index c779a736..5e279195 100644
--- a/src/core/services/NodeIKernelMsgService.ts
+++ b/src/core/services/NodeIKernelMsgService.ts
@@ -172,7 +172,7 @@ export interface NodeIKernelMsgService {
         msgList: RawMessage[]
     }>;
     //@deprecated
-    getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, unknownArg: boolean): Promise<GeneralCallResult & {
+    getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, isReverseOrder: boolean): Promise<GeneralCallResult & {
         msgList: RawMessage[]
     }>;
 
@@ -186,27 +186,29 @@ export interface NodeIKernelMsgService {
 
     getSingleMsg(Peer: Peer, msgSeq: string): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
 
-    getSourceOfReplyMsg(peer: Peer, MsgId: string, SourceSeq: string): unknown;
+    // 下面的msgid全部不真实
+    getSourceOfReplyMsg(peer: Peer, msgId: string, sourceSeq: string): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
 
-    getSourceOfReplyMsgV2(peer: Peer, RootMsgId: string, ReplyMsgId: string): unknown;
+    //用法和聊天记录一样
+    getSourceOfReplyMsgV2(peer: Peer, rootMsgId: string, replyMsgId: string): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
 
-    getMsgByClientSeqAndTime(peer: Peer, clientSeq: string, time: string): unknown;
+    getMsgByClientSeqAndTime(peer: Peer, clientSeq: string, time: string): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
 
-    getSourceOfReplyMsgByClientSeqAndTime(peer: Peer, clientSeq: string, time: string): unknown;
+    getSourceOfReplyMsgByClientSeqAndTime(peer: Peer, clientSeq: string, time: string, replyMsgId: string): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
 
     getMsgsByTypeFilter(peer: Peer, msgId: string, cnt: unknown, queryOrder: boolean, typeFilter: {
         type: number,
         subtype: Array<number>
-    }): unknown;
+    }): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
 
     getMsgsByTypeFilters(peer: Peer, msgId: string, cnt: unknown, queryOrder: boolean, typeFilters: Array<{
         type: number,
         subtype: Array<number>
-    }>): unknown;
+    }>): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
 
-    getMsgWithAbstractByFilterParam(...args: unknown[]): unknown;
+    getMsgWithAbstractByFilterParam(...args: unknown[]): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
 
-    queryMsgsWithFilter(...args: unknown[]): unknown;
+    queryMsgsWithFilter(...args: unknown[]): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
 
     //queryMsgsWithFilterVer2(MsgId: string, MsgTime: string, param: QueryMsgsParams): Promise<unknown>;
 
diff --git a/src/onebot/api/msg.ts b/src/onebot/api/msg.ts
index 1e2b6466..bce77da1 100644
--- a/src/onebot/api/msg.ts
+++ b/src/onebot/api/msg.ts
@@ -217,21 +217,34 @@ export class OneBotMsgApi {
             if (records.peerUin === '284840486' || records.peerUin === '1094950020') {
                 return createReplyData(records.msgId);
             }
-            let replyMsgList = (await this.core.apis.MsgApi.queryMsgsWithFilterExWithSeqV2(peer, element.replayMsgSeq, element.replyMsgTime, [element.senderUidStr])).msgList;
+            let replyMsgList = (await this.core.apis.MsgApi.queryMsgsWithFilterExWithSeqV2(peer, element.replayMsgSeq, records.msgTime, [element.senderUidStr])).msgList;
             let replyMsg = replyMsgList.find(msg => msg.msgRandom === records.msgRandom);
+
             if (!replyMsg || records.msgRandom !== replyMsg.msgRandom) {
-                // 我猜测可能是时间参数未对上 导致找不到引用消息 或者msgList 存在问题
-                this.core.context.logger.logWarn.bind(this.core.context.logger)(
-                    '初次筛选消息失败,获取不到引用的消息 Seq:',
+                this.core.context.logger.logError.bind(this.core.context.logger)(
+                    '筛选结果,筛选消息失败,将使用Fallback-1 Seq: ',
                     element.replayMsgSeq,
                     ',消息长度:',
                     replyMsgList.length
                 );
-                // 再次筛选
-                replyMsgList = (await this.core.apis.MsgApi.queryMsgsWithFilterExWithSeqV3(peer, element.replayMsgSeq, [element.senderUidStr])).msgList;
-                // console.log(JSON.stringify(replyMsgList, null, 4));
+                replyMsgList = (await this.core.apis.MsgApi.getMsgsBySeqAndCount(peer, element.replayMsgSeq, 1, true, true)).msgList;
                 replyMsg = replyMsgList.find(msg => msg.msgRandom === records.msgRandom);
             }
+
+            if (!replyMsg || records.msgRandom !== replyMsg.msgRandom) {
+                this.core.context.logger.logWarn.bind(this.core.context.logger)(
+                    '筛选消息失败,将使用Fallback-2 Seq:',
+                    element.replayMsgSeq,
+                    ',消息长度:',
+                    replyMsgList.length
+                );
+                replyMsgList = (await this.core.apis.MsgApi.queryMsgsWithFilterExWithSeqV3(peer, element.replayMsgSeq, [element.senderUidStr])).msgList;
+                replyMsg = replyMsgList.find(msg => msg.msgRandom === records.msgRandom);
+            }
+
+
+
+            // 丢弃该消息段
             if (!replyMsg || records.msgRandom !== replyMsg.msgRandom) {
                 this.core.context.logger.logError.bind(this.core.context.logger)(
                     '最终筛选结果,筛选消息失败,获取不到引用的消息 Seq: ',