CtrlK
BlogDocsLog inGet started
Tessl Logo

agui-dotnet-client-tools

Expose client-side (frontend) tools to an AG-UI agent with the AG-UI .NET SDK — C# functions that run in the CLIENT app (read local state, GPS, UI, device APIs), where the client executes the call and returns the result so the run continues. USE FOR: declaring an AIFunction in the client and passing it via ChatOptions.Tools to AGUIChatClient; having the client execute a tool the model requested and feed the result back automatically; understanding why no UseFunctionInvocation is needed on the client (AGUIChatClient already invokes functions); what the server must do (UseFunctionInvocation + TerminateOnUnknownCalls) so it forwards an unknown/client tool instead of erroring. DO NOT USE FOR: tools that run on the server/backend (use agui-dotnet-server-tools); pausing for human approval/input before acting (interrupts / human-in-the-loop); plain chat (use agui-dotnet-streaming-chat); shared state, generative UI, multimodal, or protobuf.

80

Quality

100%

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

100%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 lean, fully executable skill body: complete copy-paste code for both client and server sides, well-targeted anti-patterns that explain consequences (double-handling, premature 'saved' returns), and a concrete verification section. Nothing is padded, and time-sensitive details are handled via a lookup command rather than hard-coded versions.

DimensionReasoningScore

Conciseness

The body teaches only AG-UI-specific behavior Claude could not know (e.g. 'AGUIChatClient is itself a function-invoking client, so it runs the tool locally'), with no general-concept padding, and defers the version number to a lookup command instead of inlining time-sensitive data — every token earns its place.

5 / 5

Actionability

Fully executable guidance throughout: a copy-paste install command, a complete runnable client example (usings, tool definition, options, streaming loop), and a concrete server registration line. The only placeholder ('/* provider IChatClient */') is where the user's provider must go, and the common case is completely covered.

5 / 5

Workflow Clarity

As a simple single-purpose skill its sequence — Install → declare tool and pass in options → configure the server → Verify — is unambiguous, and the '## Verify' section provides explicit checkpoints ('set a breakpoint or log inside it', 'run ends RUN_FINISHED in a single client call'). Not a destructive or batch operation, so no validation cap applies.

5 / 5

Progressive Disclosure

There are no bundle files and no content that belongs in a separate reference; everything is appropriately inline in a short, clearly sectioned document (Goal, Install, Declare, server config, Anti-patterns, Verify), which is the correct structure for a skill of this size.

5 / 5

Total

20

/

20

Passed

Description

100%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.

An exemplary description: it states concrete capabilities with specific API names, provides explicit USE FOR / DO NOT FOR trigger guidance, and actively disambiguates against named sibling skills. It is dense but every clause carries a capability, trigger, or boundary — no padding despite its length.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions with real API names — 'declaring an AIFunction in the client and passing it via ChatOptions.Tools to AGUIChatClient', 'UseFunctionInvocation + TerminateOnUnknownCalls', 'read local state, GPS, UI, device APIs' — giving comprehensive coverage of this skill's scope with no gaps, matching the top anchor rather than the 'minor gaps' level 4.

5 / 5

Completeness

It explicitly answers both what ('Expose client-side (frontend) tools to an AG-UI agent with the AG-UI .NET SDK…') and when, via explicit 'USE FOR:' and 'DO NOT USE FOR:' clauses with concrete trigger phrases — the level-5 anchor, clearly above the level-4 case where 'when' could be more specific.

5 / 5

Trigger Term Quality

Natural phrasings a user would actually say ('client-side (frontend) tools', 'client executes the call', 'feed the result back automatically', 'human-in-the-loop') appear alongside the SDK terms, with synonyms (client-side/frontend) covering the variations users would use, so coverage is comprehensive rather than merely good.

5 / 5

Distinctiveness Conflict Risk

The 'DO NOT USE FOR' clause explicitly routes away from named sibling skills (agui-dotnet-server-tools, agui-dotnet-streaming-chat) and lists excluded concerns (shared state, generative UI, multimodal, protobuf), establishing a clear niche with minimal conflict risk.

5 / 5

Total

20

/

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.

Validation — 16 / 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.