Skip to content

symfonic.core.tools.skill_tools

skill_tools

Skill tools — mediate between agent state and SkillStore.

All tool functions follow the Phase 2 access pattern

store = state["deps"].get(StoreType)

No direct infrastructure imports allowed.

create_skill async

create_skill(
    state: dict[str, Any],
    name: str,
    description: str,
    content: str,
) -> None

Create a new skill.

Source code in src/symfonic/core/tools/skill_tools.py
async def create_skill(
    state: dict[str, Any],
    name: str,
    description: str,
    content: str,
) -> None:
    """Create a new skill."""
    store = _get_skill_store(state)
    skill = Skill(name=name, description=description, content=content)
    await store.create(skill)

list_skills async

list_skills(state: dict[str, Any]) -> list[Skill]

Return all skills.

Source code in src/symfonic/core/tools/skill_tools.py
async def list_skills(state: dict[str, Any]) -> list[Skill]:
    """Return all skills."""
    store = _get_skill_store(state)
    return await store.list()

read_skill async

read_skill(
    state: dict[str, Any], name: str
) -> Skill | None

Read a skill by name. Returns None if not found.

Source code in src/symfonic/core/tools/skill_tools.py
async def read_skill(state: dict[str, Any], name: str) -> Skill | None:
    """Read a skill by name. Returns None if not found."""
    store = _get_skill_store(state)
    return await store.read(name)