Skill System — Skills
源码版本v2026.7.20
Responsibility
A Skill is a higher-order capability unit than a Tool: a reusable, frontmatter-annotated flow (similar to the agentskills.io spec), categorized by domain under skills/<category>/. Unlike tools' "static functions", skills can be created, rewritten, and refined by the learning loop — how the agent "gets smarter the more you use it". Skills are exposed to the main loop via skills_tool.
Key Files
skills/ directory— grouped by domain (apple, computer-use, research, software-development, yuanbao...)skills_tool— exposes skills as a tool to the main loopskill_manager_tool— skill management (list/view/enable)skills_hub— skill-hub sync (agentskills.io compatible)skills_sync— local ↔ remote skill syncskill_bundles— skill bundle packaging, injected into the promptskill_preprocessing— skill content preprocessingskill nodes & edges:125-193—build_skill_nodes/build_edges, organizing skills into a learning graph
Data Flow
- At startup,
skill_preprocessing(agent/skill_preprocessing.py) scansskills/<category>/and reads frontmatter. skill_bundles(agent/skill_bundles.py) packages relevant skills and injects them into this turn's prompt viabuild_turn_context:268.- The provider decides to invoke a skill → tool_call
skills→tools/skills_tool.pyloads and executes that skill's flow. - The execution result is backfilled to the main loop.
- The learning loop reviews this turn in the background and may:
- create a new skill (
learning_mutations) - register the new skill into the learning graph
agent/learning_graph.py:125 - sync it to the skill hub via
tools/skills_sync.py
- create a new skill (
Summary
Skill = an evolvable higher-order flow, described by frontmatter, defined by a file, rewritable by the learning loop. Its relation to tools: tools are the atoms called within a skill flow; skills are knowledge about "how to combine tools to accomplish a class of tasks". See the learning loop for how skills evolve.