INNER CODE UNIT · Go
TestContract_StopGuardInjectContinuesEscalateTerminates
voocel/ainovel-cli · internal/agents/agentcore_contract_test.go:201
func TestContract_StopGuardInjectContinuesEscalateTerminates(t *testing.T) {
var sawInject atomic.Bool
model := &contractModel{fn: func(i int, msgs []agentcore.Message) (*agentcore.LLMResponse, error) {
if i > 0 {
for _, m := range msgs {
if strings.Contains(m.TextContent(), "禁止结束-契约") {
sawInject.Store(true)
}
}
}
return &agentcore.LLMResponse{Message: assistantText("try stop", agentcore.StopReasonStop)}, nil
}}
var guardCalls atomic.Int32
err := runSubagent(t, subagent.Config{
Name: "stubborn", Description: "contract", Model: model,
SystemPrompt: "test", MaxTurns: 10,
StopGuardFactory: func(_, _ string) agentcore.StopGuard {