INNER CODE UNIT · Go

TestContract_TerminalToolExitConsultsStopGuard

voocel/ainovel-cli · internal/agents/agentcore_contract_test.go:100

func TestContract_TerminalToolExitConsultsStopGuard(t *testing.T) {
	var guardCalls atomic.Int32
	var trigger atomic.Value

	model := &contractModel{fn: func(i int, _ []agentcore.Message) (*agentcore.LLMResponse, error) {
		switch i {
		case 0:
			return &agentcore.LLMResponse{Message: assistantToolCall("finish", `{}`)}, nil
		default:
			// guard 否决终态退出后模型必须获得新一轮;这轮正常结束。
			return &agentcore.LLMResponse{Message: assistantText("done", agentcore.StopReasonStop)}, nil
		}
	}}

	if err := runSubagent(t, subagent.Config{
		Name:           "editorish",
		Description:    "contract",
		Model:          model,

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…