mirror of
https://github.com/agent0ai/agent-zero.git
synced 2026-07-09 17:08:29 +00:00
Store explicitly loaded skill IDs as chat-wide context data while keeping full skill bodies in normal tool-result history. Reattach any loaded skill body that is no longer visible after compaction by reimporting the current skill from its source, without revision hashes or protocol reinjection. Update compaction and summary prompts to preserve loaded skill names only, refresh DOX contracts, and add focused coverage for context-data persistence, legacy agent-data migration, duplicate suppression, and post-compaction reattachment.
3 KiB
3 KiB
skills_tool.py DOX
Purpose
- Own the
skills_tool.pyagent tool. - This module searches, loads, and lists Agent Zero skills for the agent.
- Keep this file-level DOX profile synchronized with
skills_tool.pybecause this directory is intentionally flat.
Ownership
skills_tool.pyowns the runtime implementation.skills_tool.py.dox.mdowns durable notes about responsibilities, contracts, side effects, and verification for that implementation.- Classes:
SkillsTool(Tool)get_log_object(self)async before_execution(self, **kwargs)async execute(self, **kwargs) -> Response_visible_skill_loaded(self, skill_name: str) -> bool
- Top-level functions:
max_loaded_skills() -> int- Notable constants/configuration names:
DATA_NAME_LOADED_SKILLS.
Runtime Contracts
- Tool modules must define
helpers.tool.Toolsubclasses and returnhelpers.tool.Responsefromexecute(...). - Update this file whenever tool arguments, output shape,
break_loopbehavior, intervention handling, prompt instructions, or side effects change. SkillsToolis aTool.SkillsTooldefinesexecute(...).- Loading a skill appends the full skill body as a normal tool-result history message with
skill_instructionsmetadata containing name, path, source, and content visibility. - Loaded skill IDs are stored in chat-wide context data.
- Duplicate loads omit the full body when the same skill name remains visible in model history.
- Observed side-effect areas: filesystem reads, filesystem deletion, settings/state persistence, chat history persistence.
- Imported dependency areas include:
__future__,helpers,helpers.print_style,helpers.tool,pathlib,typing.
Key Concepts
- Important called helpers/classes observed in the source:
str.strip.lower.replace,skill_name.strip,super.get_log_object,self._normalize_skill_name,self.get_log_object,skills_helper.list_skills,join,skills_helper.search_skills,skills_helper.find_skill,skills_helper.load_skill_for_agent,skills_helper.add_loaded_skill_name,skills_helper.skill_instruction_name,skill.path.resolve,Path,resolved.read_text,skill_name.startswith,skill_name.endswith,self._current_action,self.agent.context.log.log,Response,strip,target.is_absolute. - Keep request/response, tool, or helper semantics documented here at the same time as source changes.
Work Guidance
- Keep tool output concise, model-readable, and safe for history persistence.
- Coordinate argument or behavior changes with prompt tool instructions and skill guidance.
- Respect intervention flow for long-running, external, or user-visible operations.
Verification
- Run targeted tool and prompt-contract tests for changed behavior; smoke-test agent execution when no focused test exists.
- Related tests observed by source search:
tests/test_document_query_plugin.pytests/test_tool_action_contracts.py
Child DOX Index
No child DOX files.