INNER CODE UNIT · Go
okTool
voocel/ainovel-cli · internal/agents/agentcore_contract_test.go:81
func okTool(name string) agentcore.Tool {
return agentcore.NewFuncTool(name, "contract test tool", map[string]any{"type": "object"},
func(context.Context, json.RawMessage) (json.RawMessage, error) {
return json.RawMessage(`"ok"`), nil
})
}
// runSubagent 用给定配置经 Runner.Run(Engine 的派发通道)跑一次单派发。
// 返回执行错误——StopGuard 升级终止会以 error 形式浮出(这本身也是契约),
// 期望正常结束的用例自行断言 nil。
func runSubagent(t *testing.T, cfg subagent.Config) error {
t.Helper()
_, err := subagent.NewRunner(cfg).Run(context.Background(), cfg.Name, "contract")
return err
}
// 契约 1:终态工具退出经过 StopGuard;guard 否决(InjectMessage)后 run 继续。
// 依赖方:EditorStopGuard —— save_review 等终态工具命中后,任务感知 guard 必须