2727logger = get_logger (__name__ )
2828
2929
30+ def _build_state_key (* parts : str ) -> str :
31+ return ":" .join ([part for part in parts if part ])
32+
33+
3034def update_check_list (
3135 tool_context : ToolContext , skill_name : str , check_item : str , state : bool
3236):
@@ -38,15 +42,8 @@ def update_check_list(
3842 update_check_list(skill_name="skill-creator", check_item="analyze_content", state=True)
3943 """
4044 agent_name = tool_context .agent_name
41- current_state = tool_context .state .to_dict ()
42- if agent_name not in current_state :
43- current_state [agent_name ] = {}
44- if skill_name not in current_state [agent_name ]:
45- current_state [agent_name ][skill_name ] = {}
46- if "check_list" not in current_state [agent_name ][skill_name ]:
47- current_state [agent_name ][skill_name ]["check_list" ] = {}
48- current_state [agent_name ][skill_name ]["check_list" ][check_item ] = state
49- tool_context .state .update (current_state )
45+ state_key = _build_state_key (agent_name , skill_name , "check_list" , check_item )
46+ tool_context .state .update ({state_key : state })
5047 logger .info (
5148 f"Updated agent[{ agent_name } ] skill[{ skill_name } ] check_list[{ check_item } ] state: { state } "
5249 )
@@ -75,12 +72,11 @@ def init_skill_check_list(
7572 if skill_name in skills_with_checklist :
7673 skill = skills_with_checklist [skill_name ]
7774 check_list_items = skill .get_checklist_items ()
78- check_list_state = {item : False for item in check_list_items }
79- current_state = tool_context .state .to_dict ()
80- if agent_name not in current_state :
81- current_state [agent_name ] = {}
82- current_state [agent_name ][skill_name ] = {"check_list" : check_list_state }
83- tool_context .state .update (current_state )
75+ check_list_state = {
76+ _build_state_key (agent_name , skill_name , "check_list" , item ): False
77+ for item in check_list_items
78+ }
79+ tool_context .state .update (check_list_state )
8480 logger .info (
8581 f"Initialized agent[{ agent_name } ] skill[{ skill_name } ] check_list: { check_list_state } "
8682 )
0 commit comments