CtrlK
BlogDocsLog inGet started
Tessl Logo

agui-dotnet-server-tools

Expose server-side (backend) tools an AG-UI agent can call with the AG-UI .NET SDK — C# functions that run on the server, where the server executes the call and feeds the result back to the model. USE FOR: defining an AIFunction with AIFunctionFactory.Create and registering it on the server's IChatClient via ConfigureOptions + UseFunctionInvocation; making the model call your backend function during a run; AOT-safe tool arguments/results (registering a JsonSerializerContext for complex tool parameter types); parallel/concurrent backend tool calls (AllowConcurrentInvocation); TerminateOnUnknownCalls behavior. DO NOT USE FOR: tools that run in the client/frontend (use agui-dotnet-client-tools); pausing a tool for human approval or input (interrupts / human-in-the-loop); plain streaming chat with no tools (use agui-dotnet-streaming-chat); shared state, generative UI, multimodal, or protobuf.

69

Quality

83%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A tight, highly actionable skill body built on complete executable C# examples and well-organized sections, with concrete verification steps. The main gaps are a missing error-recovery feedback loop in the workflow and a single-file structure that inlines a long hosting block rather than splitting it out.

Suggestions

Add an explicit validate→fix→retry loop in the Verify section, e.g., 'If the stream shows an error instead of TOOL_CALL_RESULT, confirm the JsonSerializerContext covers the parameter/result types and re-run' — this gives the workflow a feedback path for failures.

Consider moving the full endpoint-hosting code block into a references/ file (e.g., HOSTING.md) and keeping only a trimmed inline excerpt, so SKILL.md stays a lean overview with one-level-deep navigation.

DimensionReasoningScore

Conciseness

The body is lean and mostly executable code, with high-value prose limited to non-obvious semantics (AOT/trimming behavior, concurrency disambiguation, TerminateOnUnknownCalls); the opening framing and the full endpoint-hosting block could be trimmed slightly, keeping it just below the 'every token earns its place' bar.

4 / 5

Actionability

Multiple complete, copy-paste-ready C# blocks cover the common cases — install commands, AIFunctionFactory.Create registration, JsonSerializerContext setup, full endpoint hosting, and parallel invocation config — with the lone `// ... real lookup ...` stub being a justified domain-logic placeholder.

5 / 5

Workflow Clarity

A clear section sequence (Install → Define and register → AOT-safe → Host → Parallel → Verify) with a Verify section that gives concrete checkpoints (watch TOOL_CALL_* events, check for AOT publish warnings), but no explicit validate→fix→retry feedback loop for error recovery.

4 / 5

Progressive Disclosure

No bundle files exist and the single file is well-organized into clear sections, but at ~125 lines with no one-level-deep references (and content like the full hosting block inlined) it sits at 'good structure with minor organization gaps' rather than the split/overview pattern of the top anchor.

4 / 5

Total

17

/

20

Passed

Description

85%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, highly specific description with exemplary what/when structure and skill deconfliction. Its one weakness is trigger-term quality: the USE FOR list leans on API identifiers rather than the natural phrases a developer would actually utter.

Suggestions

Add natural-language trigger phrases alongside the API names — e.g., 'use when you want the model to call a server-side C# function' or 'backend function calling' — so the USE FOR list reads like things a user would say, not just API calls.

Include common synonyms/variations such as 'server-side tools', 'backend tools', and '.NET server tool calling' to broaden natural keyword coverage beyond the single canonical phrasing.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'defining an AIFunction with AIFunctionFactory.Create', 'registering it on the server's IChatClient via ConfigureOptions + UseFunctionInvocation', 'AOT-safe tool arguments/results (registering a JsonSerializerContext...)', 'parallel/concurrent backend tool calls (AllowConcurrentInvocation)', 'TerminateOnUnknownCalls behavior' — giving comprehensive coverage with no significant gaps.

5 / 5

Completeness

It clearly states the 'what' ('Expose server-side (backend) tools... C# functions that run on the server') and gives explicit 'when' guidance via concrete 'USE FOR:' and 'DO NOT USE FOR:' clauses with specific trigger phrases.

5 / 5

Trigger Term Quality

The USE FOR list is dominated by API names (AIFunctionFactory.Create, ConfigureOptions, AllowConcurrentInvocation) rather than phrases a user would naturally say; concept-level terms like 'server-side tools', 'backend tools', and 'parallel tool calls' are present but synonyms and common variations are missing.

3 / 5

Distinctiveness Conflict Risk

A clear niche (server/backend AG-UI .NET tools) with explicit deconfliction that routes away sibling skills ('use agui-dotnet-client-tools', 'use agui-dotnet-streaming-chat') and excluded domains, minimizing conflict risk.

5 / 5

Total

18

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
ag-ui-protocol/ag-ui
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.