当然モデル側の問題でもあるが、ローカルLLMなら自身が設定しているコンテキストサイズとかSillyTavernみたいな使っているツール側の設定にも原因があったりする
例えば、SillyTavernだとチャット/メッセージの処理で読み込むメッセージの量が少ないと同じセリフしか言わなくなったりする頻度が上がる
(確認してないからアレだけど、下手するとコンテキストサイズに関係なく画面に表示させているメッセージの分しかバックエンド側に送っていない?)

あとはコンテキストサイズがモデルで解釈しきれないくらいに複雑になると言葉が崩れていくから要約も必要。ただ、日本語で要約するとめっちゃ精度低い
(俺のやり方が悪かった可能性もあるけれど、極端な例だと家庭教師が教え子にやる気出して貰うために叡智なことをしていくってストーリーを日本語で要約させてみたら「勉強頑張ろうね」の一言にまとめられたこともあるレベル)
だから、要約する場合は英語に翻訳してからやってもらうのがおすすめ。その場合は自分とキャラクターの名前にローマ字読みを追加しておくといいかもしれない
(バカみたいな例だと「みかん」って名前のキャラが要約上で「mi-kun」って名前に変換されていて、チャット進めてたらおもむろに「みかん」とは別に「mi-kun」ってキャラが登場してくる場合もあった)