package agent import ( "strings" "testing" "github.com/Tencent/WeKnora/internal/models/chat" "github.com/stretchr/testify/require" ) func TestInstructionSkillsEnterEveryTurnSystemPromptWithoutReplacingBase(t *testing.T) { baseline := newTestEngine(t, nil).buildSystemPrompt(t.Context()) engine := newTestEngine(t, nil) engine.config.InstructionSkillPrompt = "\n\n## 已挂载的文字技能\n连续叙事规则" prompt := engine.buildSystemPrompt(t.Context()) require.Contains(t, prompt, "连续叙事规则") require.Contains(t, prompt, strings.TrimSpace(baseline[len(baseline)-40:])) messages := engine.buildMessagesWithLLMContext(prompt, "next", "session", []chat.Message{{Role: "user", Content: "previous"}, {Role: "assistant", Content: "answer"}}, nil) require.Equal(t, "system", messages[0].Role) require.Equal(t, 1, strings.Count(messages[0].Content, "连续叙事规则")) for _, message := range messages[1:] { require.NotContains(t, message.Content, "连续叙事规则") } require.False(t, engine.config.SkillsEnabled, "Markdown rules must not enable sandbox skill execution") }