26 lines
1.1 KiB
Go
26 lines
1.1 KiB
Go
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")
|
||
|
|
}
|