Post

Self‑Learning Skills: Let the Agent Teach Itself New Tech

🤔 Curiosity: What if a skill could create itself?

When I ship AI features, the slowest step isn’t model quality—it’s knowledge ingestion. Every new API or framework forces us to re‑learn, re‑document, and re‑encode workflows. So I asked a sharper question:

What if a Skill could autonomously learn a new technology from the web and install itself into my workflow?

This post is built from three real sources:

  • Self‑Learning Skill (philschmid/self-learning-skill)
  • Gemini API SKILL (Gist with Gemini 3 examples)
  • My own “Antigravity.Google” skill pattern (inspired by Hyperbrowser, for auto‑teaching Gemini about new tech)

📚 Retrieve: How the Self‑Learning Skill works

1) The idea: /learn <topic>

The Self‑Learning Skill is a minimal harness that turns a single command into a structured pipeline:

  • Discover authoritative sources via web search
  • Extract documentation by browsing
  • Synthesize a new SKILL.md + references
  • Save the generated skill into your workspace

From the repo:

“Autonomous skill generator that enables AI agents to learn new technologies from the web.”

Installation is simple and unopinionated—copy the SKILL.md into your skills directory.

Repo: https://github.com/philschmid/self-learning-skill

2) Gemini API SKILL as a concrete target

The Gemini SKILL gist provides a complete base skill with:

  • Installation for Python / JS / Go
  • Quick start for Gemini 3 Flash / Pro
  • Examples of system instructions and function calling

SKILL: https://gist.github.com/philschmid/b0cd874480d05ba1a7e02816687e07ae

This is the perfect specimen for “self‑learning” to regenerate on demand.

3) Web search + browsing are mandatory

The key promise is not “just summarize.” It’s self‑learning:

  • Search finds canonical docs (official API pages, SDKs, specs)
  • Browsing extracts the details (install, examples, pitfalls)
  • The system synthesizes into reusable structure

I use this pattern to teach Gemini about new technologies using a custom skill I call Antigravity.Google.


💡 Innovation: A fully autonomous Skill creation loop

Here is the production‑grade loop I recommend.

graph TB
  A[learn topic] --> B[Web Search]
  B --> C[Browser Fetch]
  C --> D[Normalize + Summarize]
  D --> E[Generate SKILL MD + references]
  E --> F[Install Skill]
  F --> G[Run acceptance test]
  G --> A

Example: /learn gemini api with gemini 3 models

We can define a Skill template and auto‑populate it using the Gemini docs + SDK examples.

Auto‑generated sections should include:

  • Quick reference links
  • Installation for multiple languages
  • Minimal usage examples
  • Function calling schema
  • Streaming snippet
  • Model table (3‑flash, 3‑pro, 2.5‑flash, etc.)

Example generated snippet (Python)

1
2
3
4
5
6
7
8
9
10
11
12
from google import genai
from google.genai.types import GenerateContentConfig, Tool

client = genai.Client()
response = client.models.generate_content(
    model="gemini-3-flash-preview",
    contents="Summarize the latest gameplay patch notes",
    config=GenerateContentConfig(
        system_instruction="You are a build‑ready game assistant."
    )
)
print(response.text)

Function calling pattern (minimal)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
set_light_values = {
  "name": "set_light_values",
  "description": "Sets brightness and color temperature.",
  "parameters": {
    "type": "object",
    "properties": {
      "brightness": {"type": "integer"},
      "color_temp": {"type": "string", "enum": ["daylight", "cool", "warm"]}
    },
    "required": ["brightness", "color_temp"]
  }
}

response = client.models.generate_content(
  model="gemini-3-flash-preview",
  contents="Set warm light at 50%",
  config=GenerateContentConfig(tools=[Tool(function_declarations=[set_light_values])])
)

🧪 Mini‑pipeline: installing a new self‑learning skill

Goal: Add a self‑learning skill via npx, then teach it Gemini 3.

1
2
3
4
5
# 1) Install skill (example)
npx skills add philschmid/self-learning-skill

# 2) Trigger self‑learning
/learn gemini api with gemini 3 models

This gives you a freshly synthesized Gemini API SKILL without manual research.


Tradeoffs & production lessons

ChallengeWhy it happensMitigation
Inaccurate sourcesSearch can rank blogs above docsEnforce allow‑list domains
Drift over timeAPIs change quicklySchedule /learn refreshes
Over‑summarizationSkills become too shallowKeep examples + links
Non‑determinismDifferent runs yield different structureUse a strict template

Lesson: The harness matters more than the model. A “self‑learning” system needs guardrails.


Key Takeaways

InsightImplicationNext Steps
Search + browsing is enough to bootstrap skillsNo human doc‑writing neededAutomate your tech onboarding
Skills can be regeneratedDocs stay freshSet a refresh cadence
Gemini 3 is a strong targetGreat for function calling + long contextBuild native Gemini skills

New Questions

  • How do we validate learned skills automatically?
  • Can we score skill quality with unit tests + doc coverage?
  • What happens when skills teach other skills?

References

  • Self‑Learning Skill repo: https://github.com/philschmid/self-learning-skill
  • Gemini API SKILL (Gist): https://gist.github.com/philschmid/b0cd874480d05ba1a7e02816687e07ae
  • Gemini API docs: https://ai.google.dev/gemini-api/docs
  • Function calling guide: https://ai.google.dev/gemini-api/docs/function-calling
  • Structured output: https://ai.google.dev/gemini-api/docs/structured-output
This post is licensed under CC BY 4.0 by the author.