CtrlK
BlogDocsLog inGet started
Tessl Logo

agui-dotnet-multimodal

Send images and other binary/file content to an AG-UI agent with the AG-UI .NET SDK — attach pictures (or audio, PDFs, etc.) to a user message so a multimodal model can see them. USE FOR: building a user ChatMessage with mixed content parts (TextContent plus DataContent for inline bytes, or UriContent for a hosted URL); choosing inline bytes vs a URL reference; setting the correct media type; sending the message through AGUIChatClient so the content parts cross the AG-UI wire to a vision/multimodal model. DO NOT USE FOR: plain text chat (use agui-dotnet-streaming-chat); tool calls (use agui-dotnet-server-tools / agui-dotnet-client-tools); structured shared state (use agui-dotnet-shared-state); reasoning traces, interrupts, generative UI, or protobuf.

75

Quality

92%

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

92%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 well-crafted, self-contained skill body: executable code for both the inline-bytes and hosted-URL paths, media-type guidance, useful anti-patterns, and an explicit verification section. Its only flaw is a redundant restatement of the inline-vs-URL choice guidance, which costs it the top conciseness score.

DimensionReasoningScore

Conciseness

The body is lean and code-forward with no explanations of concepts Claude already knows, but the UriContent guidance is stated twice — 'When the asset already lives at a URL, use UriContent(uri, mediaType) instead' and then 'Prefer UriContent to reference an asset already hosted at a URL; use DataContent for local bytes the model host can't reach by URL' — a redundant restatement that could be trimmed. This matches 'efficient; minor instances of over-explanation that could be trimmed' rather than 'every token earns its place'.

4 / 5

Actionability

Fully executable guidance: an install command ('dotnet add package AGUI.Client'), a copy-paste-ready streaming example with correct usings and File.ReadAllBytesAsync, a complete UriContent variant, and concrete media-type examples ('image/png', 'image/jpeg', 'audio/wav', 'application/pdf'). Both common cases (inline bytes and hosted URL) are covered with runnable code.

5 / 5

Workflow Clarity

A simple, single-purpose skill (attach binary content to a message and send it) whose single action is unambiguous, sequenced install → attach → send, and capped by an explicit '## Verify' section with two concrete checkpoints ('the assistant's streamed reply describes the actual image content' and 'the user message on the wire has both a text part and an image/data part with the media type you set'). The simple-skill exception applies and the verification section exceeds it.

5 / 5

Progressive Disclosure

The skill is self-contained with no bundle files (references/, scripts/, assets/ are absent), well-organized sections (Install, Attach inline bytes, Reference a hosted URL, Anti-patterns, Verify), and nothing inlined that belongs in a separate file — the anti-patterns and verify content is appropriately brief for the main file. Navigation is trivial; there are no buried or nested references.

5 / 5

Total

19

/

20

Passed

Description

92%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 description: concrete named actions, an explicit USE FOR trigger clause, and active disambiguation against sibling AG-UI skills. The only gap is the absence of file extensions among the trigger terms, which keeps trigger quality at 4 rather than 5.

DimensionReasoningScore

Specificity

The description lists multiple concrete, named actions — 'building a user ChatMessage with mixed content parts (TextContent plus DataContent for inline bytes, or UriContent for a hosted URL)', 'choosing inline bytes vs a URL reference', 'setting the correct media type', 'sending the message through AGUIChatClient' — with comprehensive coverage of the skill's surface. It exceeds the score-4 anchor ('several specific actions; minor gaps') because every action names the exact SDK types involved, leaving no coverage gaps.

5 / 5

Completeness

It explicitly answers both 'what' ('Send images and other binary/file content to an AG-UI agent with the AG-UI .NET SDK — attach pictures… to a user message so a multimodal model can see them') and 'when' via a concrete 'USE FOR:' clause with four trigger scenarios, plus a 'DO NOT USE FOR' clause redirecting to sibling skills. This matches the score-5 anchor exactly.

5 / 5

Trigger Term Quality

Natural trigger terms are well covered — 'images', 'pictures', 'audio, PDFs', 'binary/file content', 'multimodal', 'vision' — including the images/pictures synonym pair. It falls short of the score-5 anchor, which requires file extensions (e.g. '.png', '.jpg', '.wav'), none of which appear.

4 / 5

Distinctiveness Conflict Risk

The skill occupies a clear niche (multimodal content parts over the AG-UI wire) and explicitly disambiguates against adjacent skills — 'plain text chat (use agui-dotnet-streaming-chat); tool calls (use agui-dotnet-server-tools / agui-dotnet-client-tools); structured shared state (use agui-dotnet-shared-state)'. Conflict risk is minimal, matching the score-5 anchor.

5 / 5

Total

19

/

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.