Skip to content

[Feat]: Native Async Support for Skill Execution #18

@rosspeili

Description

@rosspeili

Feature Description

Many high-value agentic skills—such as web scraping, long-running database queries, or external API calls—are heavily I/O bound. The current Skillware framework and its provided examples (gemini_wallet_check.py, etc.) assume blocking, synchronous execution for all tool calls.

We need to add first-class asynchronous support to the framework so skills can be executed concurrently without blocking the main event loop.

Rationale

To enable scalable, high-performance agent orchestration. If a user deploys an agent ecosystem in production using FastAPI or WebSockets, synchronous skill execution will block the entire thread, causing massive bottlenecks when multiple agents are running simultaneously.

Implementation Idea

  1. Extend the BaseSkill definition or the SkillLoader engine to optionally detect and gracefully invoke an async def run(...) method in the skill payload.
  2. Update the Claude and Gemini adapter documentation to show how to seamlessly handle promises/coroutines when the LLM triggers an asynchronous skill.
  3. Add a reference implementation (e.g., examples/async_gemini_agent.py) utilizing asyncio.gather() to showcase non-blocking tool execution to the community.

Metadata

Metadata

Assignees

No one assigned

    Labels

    core frameworkChanges to loader, env, or base classes.enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions