
Custom Agent with Skills
https://github.com/coleam00/custom-agent-with-skills- Category
- AI Agents
- Rank
- No. 1149Tools index
Previous survey · No. 1154 ·
- Pricing
- Open Source
- Type
- AGENT
- Builder
- coleam00
- GitHub
- 107 stars
- Date
About
Pydantic AI agent that implements the idea of Claude Skills (progressive disclosure) with no reliance on Claude itself.
What it does
It keeps a compact list of available capabilities in the model prompt, then fetches detailed instructions and supporting resources only when a request needs them. Skills are ordinary directories with YAML metadata, written guidance, optional references, and scripts. A streaming terminal interface exposes responses and tool activity.
Why it's ranked here
The design is small enough to understand quickly yet covers discovery, instruction loading, resource loading, provider configuration, validation, evaluations, and interactive use. Type-checked metadata and path containment checks add substance. The strongest claim is the reusable skill convention, although the included agent remains closely coupled to Pydantic AI.
What's good
Skill authors work with Markdown, YAML metadata, references, and optional scripts instead of changing the agent core. The loader rejects missing or invalid metadata. Resource reads and directory listings block traversal outside each skill. The repository also supplies five varied examples, automated tests, evaluation datasets, validation scripts, streaming output, and optional tracing.
Tradeoffs
The portable part is the skill directory convention, not the complete runtime, which directly depends on Pydantic AI. The agent decides when resources are relevant, so correct disclosure still depends on model behavior and prompt compliance. General HTTP tools accept model-supplied URLs without a host allowlist. Setup requires Python, UV, and provider credentials, even when using the local provider option.
How to use it well
Use it as a reference implementation or starter for Python teams testing modular agent instructions across several model providers. Add narrowly described skills, keep large documentation in optional resources, and exercise routing with the supplied evaluation pattern. It fits terminal experiments and embedded Python agents. It does not supply a hosted service, browser interface, or deployment platform.
Technical notes+
src/skill_loader.py scans child directories for SKILL.md, parses YAML frontmatter with yaml.safe_load, and validates metadata through SkillMetadata. src/agent.py injects discovered metadata into MAIN_SYSTEM_PROMPT and registers skill_tools plus HTTP GET and POST tools. src/skill_tools.py strips frontmatter when loading instructions and uses resolved paths with Path.is_relative_to for containment. src/http_tools.py pools an async HTTP client, retries GET requests on HTTP 429, truncates long text responses, but does not apply equivalent retry logic to POST. src/providers.py configures OpenRouter, OpenAI, or Ollama. pyproject.toml packages src with Hatchling and declares Python 3.11 or newer.
Observed
- Primary language
- Python
- Packaging
- Hatchling wheel package named custom-skill-agent, with dependencies declared in pyproject.toml
- Install surface
- Repository clone followed by UV dependency synchronization
- Interfaces
- Rich-based conversational CLI and importable Python package
- Provider support
- OpenRouter, OpenAI, and Ollama through configured model providers
- Quality structure
- Unit and integration tests, YAML evaluation datasets, custom evaluators, and validation scripts are included
- Included skill library
- Five skills cover weather, academic research, recipes, world time, and code review
Read from README.md, pyproject.toml, src/cli.py, src/__init__.py, src/agent.py, src/prompts.py, src/settings.py, src/providers.py, src/http_tools.py, src/skill_tools.py, src/dependencies.py, src/skill_loader.py, src/skill_toolset.py, scripts/__init__.py, scripts/test_agent.py.
What it can do
Create custom AI agents with progressive skill disclosure
Agent configuration and skill definitions → Configured AI agent with hierarchical capabilities
Process user requests through skill-based routing
Natural language user queries → Contextually appropriate responses using relevant skills
Dynamically reveal available skills based on context
Current conversation state and user intent → Contextually relevant skill options and capabilities
Execute specialized tasks through modular skill components
Task parameters and skill selection → Task-specific results and data processing
Validate and structure agent interactions using Pydantic models
Raw user inputs and agent responses → Type-validated, structured data exchanges
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.