Failproof AI SDK Integration
FailproofAI/failproofai
Helps instrument a custom Python or TypeScript agent to record events for Failproof AI, verify what gets written, and run an evaluator worker that scores the runs.
Build type-safe AI agents and graph-based workflows with PydanticAI and PydanticGraph.
$ npx skills add magnus919/agent-skills --skill pydanticai -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install magnus919/agent-skills pydanticai --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/pydanticai .claude/skills/pydanticai && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pydanticai" agent skill from https://github.com/magnus919/agent-skills/tree/main/pydanticai into .claude/skills/pydanticai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pydanticai", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/magnus919/agent-skills/tree/main/pydanticaiType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add magnus919/agent-skills --skill pydanticai -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install magnus919/agent-skills pydanticai --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/pydanticai .agents/skills/pydanticai && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pydanticai" agent skill from https://github.com/magnus919/agent-skills/tree/main/pydanticai into .agents/skills/pydanticai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pydanticai", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add magnus919/agent-skills --skill pydanticai -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install magnus919/agent-skills pydanticai --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/pydanticai .cursor/skills/pydanticai && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pydanticai" agent skill from https://github.com/magnus919/agent-skills/tree/main/pydanticai into .cursor/skills/pydanticai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pydanticai", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/magnus919/agent-skills.git --path pydanticai--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add magnus919/agent-skills --skill pydanticai -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install magnus919/agent-skills pydanticai --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/pydanticai .gemini/skills/pydanticai && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pydanticai" agent skill from https://github.com/magnus919/agent-skills/tree/main/pydanticai into .gemini/skills/pydanticai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pydanticai", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install magnus919/agent-skills pydanticaiInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add magnus919/agent-skills --skill pydanticai -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/pydanticai .github/skills/pydanticai && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pydanticai" agent skill from https://github.com/magnus919/agent-skills/tree/main/pydanticai into .github/skills/pydanticai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pydanticai", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add magnus919/agent-skills --skill pydanticai -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install magnus919/agent-skills pydanticai --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/pydanticai .opencode/skills/pydanticai && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pydanticai" agent skill from https://github.com/magnus919/agent-skills/tree/main/pydanticai into .opencode/skills/pydanticai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pydanticai", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pydanticaiBuild type-safe AI agents and graph-based workflows with PydanticAI and PydanticGraph.
Pydanticai is an agent skill from magnus919/agent-skills. Build type-safe AI agents and graph-based workflows with PydanticAI and PydanticGraph. Agent creation, function tools, capabilities, dependency injection, structured output, streaming, multi-agent patterns, testing, evals, and graph state machines. Use whenever you are building agents, tool-using LLM workflows, or graph-based state machines in Python. Do not use this skill for unrelated requests; route to the nearest named specialist.
Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files, including reference files (for example `README.md`, `evals/business-app-rubric-challenges.md` and `evals/evals.json`). Compatibility notes: Python 3.10+; requires pydantic-ai or pydantic-ai-slim package
It sits in AI & LLM Engineering, covering Building AI agents, Structured output and tool calling and Design patterns. It works with Python and LangGraph. The repository describes itself as: Curated collection of AI agent skills for Hermes and other agent frameworks. The licence is MIT.
Read from SKILL.md and the folder at commit 22b4723. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Python 3.10+; requires pydantic-ai or pydantic-ai-slim package
From compatibility in the SKILL.md frontmatter.
Pydanticai loads about 4.3k tokens when it runs, and up to ~26k if it reads all its reference files. Until then it costs about 112 tokens; SKILL.md has 1,495 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from magnus919/agent-skills at commit 22b4723, republished under its MIT licence (© magnus919). 1,495 words, ~4,267 tokens.
.claude/skills/pydanticai/SKILL.md (or your agent's skills folder). This skill also uses 16 other files; get the full folder from GitHub.PydanticAI is a Python agent framework for building production-grade GenAI applications, built by the team behind Pydantic. PydanticGraph is its companion graph/state-machine library.
Install:
pip install pydantic-ai # Full install (all providers)
pip install "pydantic-ai-slim[openai]" # Minimal install + your providerfrom pydantic_ai import Agent
# Basic agent — one line
agent = Agent('openai:gpt-5.2', instructions='Be concise.')
# Run it
result = agent.run_sync('What is the capital of France?')
print(result.output)| Topic | Load When | File |
|---|---|---|
| Agent creation & lifecycle | You need to create, configure, or run an agent — define tools, deps, output types, run methods, streaming | references/core-agents.md |
| Capabilities & hooks | You need built-in capabilities (Thinking, WebSearch, MCP, etc.), on-demand loading, lifecycle hooks, or custom capabilities | references/capabilities-hooks.md |
| PydanticGraph | You need a state machine, graph-based control flow, parallel execution, BaseNode subclasses, or GraphBuilder with joins/decisions | references/graph.md |
| Models, output & streaming | You need multi-model setups, FallbackModel, streaming output, output functions, or structured output with validation | references/models-output.md |
| Multi-agent patterns & integrations | You need agent delegation, programmatic hand-off, MCP servers, durable execution, or UI adapters | references/patterns.md |
| Testing & evaluation | You need TestModel, FunctionModel, pytest patterns, overrides, or Pydantic Evals for systematic eval | references/testing-evals.md |
| Full worked examples | You want complete runnable examples — bank support agent, email feedback graph, multi-agent flight booking | references/examples.md |
| Framework boundaries | You need to compare PydanticAI vs LangGraph for a project, or want to combine them | references/hybrid-pydanticai-langgraph.md — also load skill_view(name='langgraph') |
| Typed System One decision in an agent | You need to inject a typed decision service, validate its response shape, or keep a decision separate from generative output | references/core-agents.md and System One; use harness-engineering for placement, authority, recovery, and whole-task evidence |
| API surface reference | You need to find the right import path, class name, or method signature quickly | references/api-reference.md |
from pydantic import BaseModel
from pydantic_ai import Agent, RunContext
class WeatherResult(BaseModel):
temperature: float
conditions: str
agent = Agent('openai:gpt-5.2', output_type=WeatherResult)
@agent.tool
async def get_weather(ctx: RunContext, city: str) -> str:
"""Get current weather for a city."""
return f"24°C and sunny in {city}"
result = agent.run_sync('Weather in London?')
print(result.output.temperature)→ See references/core-agents.md for full agent lifecycle, run methods, and tool patterns.
from dataclasses import dataclass
from pydantic_ai import Agent, RunContext
@dataclass
class MyDeps:
api_key: str
db_conn: str
agent = Agent('openai:gpt-5.2', deps_type=MyDeps)
@agent.tool
async def query_db(ctx: RunContext[MyDeps], sql: str) -> str:
return f"Query results using {ctx.deps.db_conn}"→ See references/core-agents.md for dependency injection patterns and testing overrides.
from dataclasses import dataclass
from pydantic_graph import BaseNode, End, GraphRunContext, GraphBuilder
@dataclass
class MyState:
value: int = 0
@dataclass
class ProcessNode(BaseNode[MyState]):
async def run(self, ctx: GraphRunContext[MyState]) -> End | NextNode:
ctx.state.value += 1
if ctx.state.value >= 5:
return End(ctx.state.value)
return NextNode()→ See references/graph.md for both BaseNode and GraphBuilder APIs, parallel execution, and join/reducer patterns.
| When you need… | Use | Key behavior |
|---|---|---|
| A single answer, sync code | run_sync() | Blocks until complete, returns RunResult |
| A single answer, async code | run() | Async, returns RunResult |
| Stream text as it's generated | run_stream() | Async context manager, yields stream_text() / stream_output() |
| See granular events (tool calls, part starts, deltas) | run_stream_events() | Yields AgentStreamEvent types — FunctionToolCallEvent, PartStartEvent, FinalResultEvent |
| Manual control over each graph step | iter() | Iterate over agent's internal graph nodes (UserPromptNode → ModelRequestNode → CallToolsNode) |
| Tool calls to execute during streaming | run_stream_events() or run(event_stream_handler=...) | run_stream() stops at the first output that matches output_type and does NOT execute subsequent tool calls |
Details for each run method in references/core-agents.md.
| Factor | BaseNode (class-based) | GraphBuilder (function-based) |
|---|---|---|
| Style | Subclass BaseNode[StateT], implement async run() | Decorate async functions with @g.step |
| State mutation | Via ctx.state inside run() method | Via ctx.state inside step function |
| Parallelism | Manual fork/join logic | Built-in .map() per-element fan-out and .broadcast() same-input-to-multiple |
| Joins / aggregation | Manual aggregation in return types | Built-in reducers: reduce_list_append, reduce_sum, reduce_dict_update, etc. |
| Edge declaration | Inferred from run() return type annotation | Explicit via g.edge_from(source).to(target) |
| When to use | Complex node logic, OO patterns, conditional edge logic | Simple linear flows, parallel data processing, concise syntax |
Both APIs in references/graph.md.
Both frameworks build agentic systems with graphs and tools, but they differ sharply in design philosophy. The right choice depends on what you're optimizing for.
| Factor | PydanticAI + PydanticGraph | LangGraph | Using both together |
|---|---|---|---|
| Design philosophy | Type-safe, data-schema-driven. Feels like FastAPI. | Low-level graph primitives (Pregel/Beam inspired). Feels like NetworkX. | PydanticAI for the agent layer; LangGraph for complex orchestration |
| Agent definition | Agent(model, tools, deps, output_type) — declarative, one line | Manual StateGraph nodes with message-passing | PydanticAI Agent as a node function inside LangGraph StateGraph |
| Tool calling | @agent.tool decorator, auto-schema from type hints, RunContext DI | Manual tool registration, tool_node = ToolNode(tools) | PydanticAI's typed tool definitions used within LangGraph nodes |
| State management | GraphRunContext.state — mutable dataclass, in-memory | State with typed reducers, checkpointers (SQLite/Postgres) | LangGraph checkpointer for the outer flow; PydanticGraph for sub-graph state |
| Multi-agent patterns | Agent delegation (tool-call), programmatic hand-off, graph-based | Supervisor (central router), swarm (direct handoff), hierarchical (subgraphs) | PydanticAI delegation within a LangGraph supervisor node |
| Persistence | Durable execution via Temporal, Inngest, Prefect, DBOS | Built-in checkpointers (MemorySaver, SqliteSaver, PostgresSaver) | LangGraph checkpointer at graph level |
| Streaming | 5 methods: run, run_sync, run_stream, run_stream_events, iter | .stream() / .astream_events() on compiled graph | LangGraph .astream_events() wrapping PydanticAI event handlers |
| Learning curve | Lower — type hints guide everything | Higher — more manual wiring | Highest — two mental models |
| Best for | Single agents, tool-using workflows, type-safe structured output, teams new to agents | Complex state machines, multi-agent with branching/cycles, HITL, existing LangChain users | Large systems needing type-safe agents AND sophisticated orchestration |
Boundary conditions — consider LangGraph when:
Send()Consider PydanticAI when:
Consider using both when:
references/hybrid-pydanticai-langgraph.md for a complete worked example.LangGraph skill: skill_view(name='langgraph') — covers supervisor/swarm/hierarchical patterns, persistence, production deployment, and evals.
from pydantic_ai import UnexpectedModelBehavior, capture_run_messages
with capture_run_messages() as messages:
try:
result = agent.run_sync('Query')
except UnexpectedModelBehavior as e:
cause = e.__cause__ # Often ModelRetry('reason')
print(f"Root cause: {cause}")
print("Full conversation:", messages) # Inspect every message
# Common recovery: raise ModelRetry from tools with clear instructions| Exception | Meaning | Recovery |
|---|---|---|
UnexpectedModelBehavior | Retry limit exceeded or model gave unexpected response | Inspect e.__cause__, check messages, adjust instructions or tool retries |
ModelRetry (raised from tools) | Tool wants model to retry with different args | Let it propagate — PydanticAI handles it automatically up to retries limit |
ModelAPIError | Provider returned 4xx/5xx | Check API key, rate limits, model availability |
UsageLimitExceeded | Token/request budget exhausted | Increase UsageLimits or optimize prompt |
HookTimeoutError | A lifecycle hook timed out | Increase hook timeout or optimize hook logic |
pip install pydantic-ai # Everything
pip install "pydantic-ai-slim[openai]" # Minimal
pip install "pydantic-ai-slim[openai,google,anthropic]" # Multi-providerpydanticai/
├── SKILL.md
├── references/
│ ├── core-agents.md # Agent lifecycle, tools, deps, output
│ ├── capabilities-hooks.md # Capabilities system & lifecycle hooks
│ ├── graph.md # PydanticGraph (BaseNode + GraphBuilder)
│ ├── models-output.md # Models, streaming, structured output
│ ├── patterns.md # Multi-agent patterns & integrations
│ ├── testing-evals.md # Testing & evaluation framework
│ ├── examples.md # Complete worked examples
│ ├── hybrid-pydanticai-langgraph.md # PydanticAI as LangGraph node (hybrid pattern)
│ └── api-reference.md # Quick API surface referenceOutput type = final only: The output_type constrains the final response. The model can still call tools (function tools) mid-run. Output functions are different — they're forced to be called and end the run.
pydantic-graph has zero dependency on pydantic-ai: It's a standalone library. You can use it for non-GenAI state machines. Install with pip install pydantic-graph.
pydantic-ai-slim vs pydantic-ai: The slim package ships only core deps + OpenTelemetry. The full pydantic-ai is a meta-package that adds openai, anthropic, google, cli, mcp, evals, web, retries, and logfire extras.
Tool calls during streaming by default DON'T execute: run_stream() stops at the first output that matches the output type. Use run_stream_events() or run() with event_stream_handler to keep tool calls executing.
System prompt ≠ instructions: System prompts are part of message history and round-trip. Instructions are server-side and don't appear in messages sent to clients. When reusing message_history, the agent's new system prompt won't automatically be sent unless you add ReinjectSystemPrompt.
conversation_id is manual for forking: Pass conversation_id='new' to start a fresh conversation chain from existing history. It's not automatic.
Models named provider:model_name — PydanticAI auto-resolves the model class from the string prefix. For custom endpoints, use OpenAIChatModel(model_name, provider=OpenAIProvider(base_url=...)).
TestModel can't emulate native tools: Override with agent.override(model=TestModel(), native_tools=[]) in tests if your agent uses WebSearch, etc.
defer_model_check=True for testable module-level agents: When declaring an Agent at module level (outside a function) and using TestModel in tests with agent.override(model=TestModel()), set defer_model_check=True on the constructor. Without it, the agent tries to resolve the model string at import time — which fails without API credentials, even though the real model is overridden before any test runs.
Message history requires pairing: When slicing history, tool calls and their returns must stay paired or the LLM will error.
stream_text() fails with BaseModel output types: When output_type is a BaseModel (structured output), calling result.stream_text() raises UserError('stream_text() can only be used with text responses'). Use result.stream_output() instead to get partial validated objects as they stream in. If you need text-level streaming with structured output, use run_stream_events() and inspect PartDeltaEvent with TextPartDelta deltas. The two methods serve different output modes — text output → stream_text(), structured output → stream_output().
graph.run() returns OutputT, NOT the state object: Despite passing state=MyState() to graph.run(), the return value is the graph's output_type (e.g. list[int]), not the state. The state object IS mutated in-place during execution (since it's a mutable dataclass), so keep a separate reference:
state = MyState(items_processed=0)
result = await graph.run(state=state, inputs=[1, 2, 3])
# result -> [2, 4, 6] (OutputT = list[int])
# state.items_processed -> 3 (state mutated in-place)This trap is most common with parallel .map() patterns where the reader assumes result.items_processed will work. It won't. The items_processed count lives on the state object you passed in, not on the return value.
When an application invokes an agent to populate editable proposed actions, read typed application proposals. Return typed data to application-owned state; keep command authority outside the model. Route interaction behavior to product-design-and-ux, architecture to software-architecture, placement to harness-engineering, evaluation to agent-evals-and-observability, and production authority/recovery to agent-production-operations.
For non-chat proposals, validate candidate IDs against application-supplied scope. Keep approval identity and commands outside model output. The application must re-check current permission, revision, policy, and exact approved action at execution; approval-time role checks are insufficient. Reconcile uncertain command status using its persisted ID before retrying.
© magnus919, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 16 other files (references) in pydanticai of magnus919/agent-skills.
Open the folder on GitHubat commit 22b4723
Pydanticai next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pydanticai this skillmagnus919/agent-skills | 115 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Failproof AI SDK IntegrationFailproofAI/failproofai | 5.3k | — | ~6k | Automated safety check: Pass | Custom licence | |
| LangGraph Decision Modelslangchain-ai/langchain-skills | 1.3k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Tool Designagentailor/fullstack-langgraph-nextjs-agent | 132 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Pydantic AIdavila7/claude-code-templates | 33k | 3 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Pydantic AIdiegosouzapw/awesome-omni-skills | 159 | — | ~3.2k | Automated safety check: Pass | MIT |
FailproofAI/failproofai
Helps instrument a custom Python or TypeScript agent to record events for Failproof AI, verify what gets written, and run an evaluator worker that scores the runs.
langchain-ai/langchain-skills
Routes LangGraph agents with typed decision models that return probabilities, and finds LLM calls that only exist to produce a routing decision.
agentailor/fullstack-langgraph-nextjs-agent
Design and verify tools that AI agents can actually use — for any framework or language (MCP servers, LangChain/LangGraph, function-calling, raw JSON schema; TypeScript, Python, or otherwise).
davila7/claude-code-templates
Build production-ready AI agents with PydanticAI — type-safe tool use, structured outputs, dependency injection, and multi-model support.
diegosouzapw/awesome-omni-skills
PydanticAI — Typed AI Agents in Python workflow skill. An agent skill from diegosouzapw/awesome-omni-skills.
docling-project/docling
Patterns and tested examples for building agents with Pydantic AI: tools, capabilities, structured output, dependency injection, hooks, YAML specs, streaming and testing.
magnus919/agent-skills
Organize durable agent research outputs as summaries, analysis, and evidence dossiers.
magnus919/agent-skills
Build portable, first-person colored ASCII city engines and small GIS-derived city packs.
magnus919/agent-skills
Manage color workflows with ICC profiles, working spaces, gamut mapping, and color science.
magnus919/agent-skills
A skill your agent uses for PhD-level expertise in data science, statistics, and machine learning: rigorous statistical analysis, experimental design, causal inference, advanced modeling, research…
magnus919/agent-skills
Use Docker Compose to define, run, debug, and harden multi-container applications.
magnus919/agent-skills
Design, review, simulate, and verify FPGA logic using explicit RTL contracts, clock and reset models, CDC analysis, timing constraints, and reproducible implementation evidence.
Categories
Build type-safe AI agents and graph-based workflows with PydanticAI and PydanticGraph. Pydanticai is an agent skill from magnus919/agent-skills. Build type-safe AI agents and graph-based workflows with PydanticAI and PydanticGraph.
Pydanticai fits situations like: you are building agents; tool-using LLM workflows; graph-based state machines in Python; unrelated requests.
Run `npx skills add magnus919/agent-skills --skill pydanticai -a claude-code`. Or copy the skill folder (pydanticai in magnus919/agent-skills) into .claude/skills/pydanticai in your project. Claude Code loads it when a task matches its description.
Run `npx skills add magnus919/agent-skills --skill pydanticai -a codex`. Or copy the skill folder (pydanticai in magnus919/agent-skills) into .agents/skills/pydanticai in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add magnus919/agent-skills --skill pydanticai -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pydanticai, .gemini/skills/pydanticai, .github/skills/pydanticai and .opencode/skills/pydanticai in your project.
Going by SKILL.md and its folder, Pydanticai needs Python for the scripts in its folder and the command-line tools its instructions call (pip). Our summary lists: Python 3. Compatibility (from SKILL.md): Python 3.10+; requires pydantic-ai or pydantic-ai-slim package.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Pydanticai is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 21k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Pydanticai: Failproof AI SDK Integration (FailproofAI/failproofai, 5.3k stars), LangGraph Decision Models (langchain-ai/langchain-skills, 1.3k stars), Tool Design (agentailor/fullstack-langgraph-nextjs-agent, 132 stars) and Pydantic AI (davila7/claude-code-templates, 33k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
magnus919 (a GitHub user) maintains it in magnus919/agent-skills, which has 115 GitHub stars. The repository holds 131 skills in this directory. The repository was last updated on October 10, 2026.
Source: magnus919/agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.