Scoring A2A Agent Skills with System One (Jev) in .NET A developer has built a pre-LLM gating layer in .NET that scores individual A2A agent skills against a user request using TypeSafe's System One (Jev) classification API, exposing only the winning skills to the downstream LLM tool loop. The approach flattens each agent card into scorable rubrics and sends all skill questions in a single HTTP call, returning typed relevance scores compared against a default 0.6 threshold. The developer argues this avoids re-sending full agent-card descriptions on every tool-loop iteration, which grows the prompt linearly with the number of agents. Follow-up to AgentCard into an AIFunction and let one LLM loop do the routing. tools = agents.Select ToTool means the prompt grows linearly with the number of agents, and each tool description is a blob of the whole card: Ask the SupplyChainAnalyst specialist. Manages warehouse logistics, stock levels, inbound shipment delivery statuses, and DWH stock-velocity tracking. Skills: GetStock, GetShipments. Worse, that blob is re-sent on every iteration of the tool loop, not once per request. Two consequences: System One https://docs.typesafe.ai/api is a classification primitive, not a chat model. You send a state plus a map of typed questions , and get one typed answer per key. Three primitives: noul - TypeSafe's name for the boolean primitive; returns the probability of "yes" rather than a yes/no token, choice pick one + distribution , score ordered rubric, probability-weighted . Answers come back structured, so there is nothing to parse out of prose. We use it as a pre-LLM gate : score each agent skill against the request, expose only the winners. The unit of selection is the skill , not the agent. ToolCatalog flattens every card into scorable rubrics: private static string BuildRubric RemoteAgent agent, string name, string? description, IReadOnlyList