2525import mimetypes
2626from typing import Any
2727from typing import TYPE_CHECKING
28- import warnings
2928
3029from google .genai import types
3130from typing_extensions import override
3231
3332from ..agents .readonly_context import ReadonlyContext
3433from ..code_executors .base_code_executor import BaseCodeExecutor
3534from ..code_executors .code_execution_utils import CodeExecutionInput
36- from ..features import experimental
37- from ..features import FeatureName
3835from ..skills import models
3936from ..skills import prompt
4037from ..skills import SkillRegistry
5855 " conversation history for you to analyze."
5956)
6057
61- _DEFAULT_SKILL_SYSTEM_INSTRUCTION = (
58+ DEFAULT_SKILL_SYSTEM_INSTRUCTION = (
6259 "You can use specialized 'skills' to help you with complex tasks. "
6360 "You MUST use the skill tools to interact with these skills.\n \n "
6461 "Skills are folders of instructions and resources that extend your "
8885)
8986
9087
91- @experimental (FeatureName .SKILL_TOOLSET )
9288class ListSkillsTool (BaseTool ):
9389 """Tool to list all available skills."""
9490
@@ -118,7 +114,6 @@ async def run_async(
118114 return prompt .format_skills_as_xml (skills )
119115
120116
121- @experimental (FeatureName .SKILL_TOOLSET )
122117class SearchSkillsTool (BaseTool ):
123118 """Tool to search for relevant skills in the registry."""
124119
@@ -181,7 +176,6 @@ async def run_async(
181176 }
182177
183178
184- @experimental (FeatureName .SKILL_TOOLSET )
185179class LoadSkillTool (BaseTool ):
186180 """Tool to load a skill's instructions."""
187181
@@ -250,7 +244,6 @@ async def run_async(
250244 }
251245
252246
253- @experimental (FeatureName .SKILL_TOOLSET )
254247class LoadSkillResourceTool (BaseTool ):
255248 """Tool to load resources (references, assets, or scripts) from a skill."""
256249
@@ -710,7 +703,6 @@ def _build_wrapper_code(
710703 return "\n " .join (code_lines )
711704
712705
713- @experimental (FeatureName .SKILL_TOOLSET )
714706class RunSkillScriptTool (BaseTool ):
715707 """Tool to execute scripts from a skill's scripts/ directory."""
716708
@@ -874,7 +866,6 @@ async def run_async(
874866 )
875867
876868
877- @experimental (FeatureName .SKILL_TOOLSET )
878869class SkillToolset (BaseToolset ):
879870 """A toolset for managing and interacting with agent skills."""
880871
@@ -1063,7 +1054,7 @@ async def process_llm_request(
10631054 self , * , tool_context : ToolContext , llm_request : LlmRequest
10641055 ) -> None :
10651056 """Processes the outgoing LLM request to include available skills."""
1066- instructions = [_DEFAULT_SKILL_SYSTEM_INSTRUCTION ]
1057+ instructions = [DEFAULT_SKILL_SYSTEM_INSTRUCTION ]
10671058
10681059 has_list_skills = any (isinstance (t , ListSkillsTool ) for t in self ._tools )
10691060
@@ -1090,16 +1081,3 @@ async def close(self) -> None:
10901081 cached .cancel ()
10911082 self ._fetched_skill_cache .clear ()
10921083 await super ().close ()
1093-
1094-
1095- def __getattr__ (name : str ) -> Any :
1096- if name == "DEFAULT_SKILL_SYSTEM_INSTRUCTION" :
1097- warnings .warn (
1098- "DEFAULT_SKILL_SYSTEM_INSTRUCTION is experimental. Its content "
1099- "is internal implementation and will change in minor/patch releases "
1100- "to tune agent performance." ,
1101- UserWarning ,
1102- stacklevel = 2 ,
1103- )
1104- return _DEFAULT_SKILL_SYSTEM_INSTRUCTION
1105- raise AttributeError (f"module { __name__ } has no attribute { name } " )
0 commit comments