Skip to content

feat: add skills system with built-in templates and per-agent custom skills#28

Merged
harshuljain13 merged 3 commits into
mainfrom
feat/skills-add
Jun 7, 2026
Merged

feat: add skills system with built-in templates and per-agent custom skills#28
harshuljain13 merged 3 commits into
mainfrom
feat/skills-add

Conversation

@Abhishek-Khanna24

Copy link
Copy Markdown
Collaborator

Summary

  • Adds a Skills layer on top of the existing tools system — reusable, pre-packaged capabilities configurable entirely from YAML
  • Ships three built-in templates: calculator (safe AST-based math, no eval), web_search (stub + Brave-ready), http_request (GET/POST via stdlib urllib)
  • BaseSkill(BaseTool) integrates transparently with both ADK and LangGraph engine adapters — no adapter changes needed
  • enabled: false flag lets users disable individual skills without removing the config entry
  • skills_demo_agent demonstrates all built-ins plus an example_custom_skill.py copy-paste template for user-defined skills

How to use

skills:
  - id: math
    template: calculator            # built-in, zero Python required

  - id: search
    template: web_search
    enabled: false                  # disable without deleting
    config:
      provider: brave
      api_key_env: BRAVE_API_KEY

  - id: my_skill
    import: src.all_agents.my_agent.skills.my_skill.MySkill   # custom

Test plan

  • 44 unit tests covering all skill templates and ToolManager integration (tests/unit/agent_framework/test_skills/)
  • Full unit test suite passing — 222 passed, 13 skipped, 0 failures
  • Start server and open AgentShip Studio → select skills_demo_agent
  • Ask "what is 42 * 17?" — CalculatorSkill returns 714
  • Ask "fetch https://httpbin.org/get" — HttpRequestSkill returns response JSON
  • Ask "search for python tips" — WebSearchSkill returns stub message with setup instructions

🤖 Generated with Claude Code

Abhishek-Khanna24 and others added 2 commits May 23, 2026 00:08
…skills

Introduces a Skills layer on top of the existing tools system:
- BaseSkill(BaseTool) base class with config dict support
- Built-in templates: calculator (safe AST eval), web_search (stub/Brave), http_request (stdlib urllib)
- SKILL_REGISTRY for template lookup by name
- skills: YAML section in AgentConfig; ToolManager._create_skill_tools() wires them into ADK and LangGraph engines
- enabled: false flag to disable individual skills without removing config
- skills_demo_agent showcasing all built-ins + an example_custom_skill.py copy-paste template
- 44 unit tests covering all skill templates and ToolManager integration

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Each agent directory can now contain an agents.md file whose contents are
automatically appended to the instruction_template at config load time.
Each file is strictly scoped to its own agent directory — no cross-agent
inheritance or merging. Set load_agents_md: false in the YAML to opt out.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat: add agents.md support for per-agent instruction extension
@harshuljain13
harshuljain13 merged commit 4491d6c into main Jun 7, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants