Skip to content

Commit f76dbe1

Browse files
refactor(utils): simplify state management with key builder function
Introduce _build_state_key helper to generate consistent state keys and reduce repetitive nested dictionary operations in state updates
1 parent a0c0ca0 commit f76dbe1

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

veadk/skills/utils.py

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727
logger = 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+
3034
def 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

Comments
 (0)