n8n/packages/@n8n/instance-ai/evaluations/binaryChecks/checks/agent-has-language-model.ts
José Braulio González Valido 700b32237f
feat(ai-builder): Surface WHAT-dimension binary checks per built workflow (no-changelog) (#30932)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 12:18:52 +01:00

27 lines
853 B
TypeScript

import type { BinaryCheck } from '../types';
import { AGENT_TYPE, collectTargetsByConnectionType } from '../utils';
export const agentHasLanguageModel: BinaryCheck = {
name: 'agent_has_language_model',
description: 'Agent nodes have a language model connected',
kind: 'deterministic',
dimension: 'ai_nodes',
run(workflow) {
const nodes = (workflow.nodes ?? []).filter((n) => n.type === AGENT_TYPE);
if (nodes.length === 0) return { pass: true, applicable: false };
const lmTargets = collectTargetsByConnectionType(
workflow.connections ?? {},
'ai_languageModel',
);
const missing = nodes.filter((n) => !lmTargets.has(n.name)).map((n) => n.name);
return {
pass: missing.length === 0,
...(missing.length > 0
? { comment: `Agent node(s) missing language model connection: ${missing.join(', ')}` }
: {}),
};
},
};