Skip to main content

Scaffolding framework over the Microsoft Agent Framework for Python.

Project description

wickedailabs-agentframework

Scaffolding framework over the Microsoft Agent Framework for Python.

wickedailabs-agentframework owns all infrastructure — dependency injection, settings, provider wiring, tool discovery, runners (simple / HITL / workflow / orchestration), session storage, middleware, OpenTelemetry tracing and metrics. Your agent projects contain only domain logic: @agent classes, @agent_tool methods, and @service implementations.

Install

This package is distributed via GitHub Releases (not PyPI). Pick the approach that fits your project:

From a release wheel:

pip install https://github.com/WickedAILabs/wickedailabs-pyagentframework/releases/download/v0.2.0a1/wickedailabs_agentframework-0.2.0a1-py3-none-any.whl

From a git tag (subdirectory-install of this package):

pip install "git+https://github.com/WickedAILabs/wickedailabs-pyagentframework.git@v0.2.0a1#subdirectory=src/wickedailabs_agentframework"

In pyproject.toml:

[project]
dependencies = [
  "wickedailabs-agentframework @ https://github.com/WickedAILabs/wickedailabs-pyagentframework/releases/download/v0.2.0a1/wickedailabs_agentframework-0.2.0a1-py3-none-any.whl",
]

Optional extras apply the same way — e.g. "wickedailabs-agentframework[foundry] @ <url>". Available extras: foundry, azure-ai, copilot-studio, ollama, yaml, all.

Minimal usage

import asyncio
import my_agent_project
from wickedailabs_agentframework import (
    AgentAI, AgentClient, AgentContext,
    add_agent_framework, build_settings,
    agent, agent_instructions, uses_tools,
)
from wickedailabs_agentframework.internal.runners import (
    SimpleRunner, HitlRunner, WorkflowRunner, OrchestrationRunner,
)


@agent
@agent_instructions("You are a helpful weather advisor.")
@uses_tools("get_current_weather")
class WeatherAdvisorAgent:
    async def run(self, message: str, ctx: AgentContext) -> str:
        return await AgentAI.ask(self, message)


async def main() -> None:
    settings = build_settings()
    container = add_agent_framework(
        settings,
        runners=[SimpleRunner(), HitlRunner(), WorkflowRunner(), OrchestrationRunner()],
        caller_package=my_agent_project,
    )
    client = container.resolve(AgentClient)
    result = await client.run("WeatherAdvisor", "What's the forecast in Sydney?")
    print(result.response if result.success else f"[{result.error_code}] {result.error}")


asyncio.run(main())

Configuration lives in appsettings.json (or .toml / .yaml), with environment-variable overrides via the AgentFramework__Provider__Type=... convention.

Links

Per-agent tool options

Agents can opt into provider-hosted or external tools via config:

"BudgetAdvisor": {
  "Runner": "simple",
  "Instructions": "You reconcile budget variances.",
  "InstructionsFile": "prompts/budget.txt",           // alternative to Instructions
  "McpServers": [
    { "Name": "reports", "Url": "http://localhost:8000/mcp" }
  ],
  "CodeInterpreter": true,
  "FileSearch": { "VectorStoreIds": ["vs_policies"] }
}

At call time, attach local files via FileAttachment.from_path / from_bytes / from_uri. Capability enforcement at startup rejects combinations the provider can't support (HITL on Anthropic, MCP on Copilot Studio, etc.). MCP URLs and from_uri both require http/https.

License

GPL-3.0-or-later — see the LICENSE file in the repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wickedailabs_agentframework-0.2.0a1.tar.gz (72.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wickedailabs_agentframework-0.2.0a1-py3-none-any.whl (97.6 kB view details)

Uploaded Python 3

File details

Details for the file wickedailabs_agentframework-0.2.0a1.tar.gz.

File metadata

File hashes

Hashes for wickedailabs_agentframework-0.2.0a1.tar.gz
Algorithm Hash digest
SHA256 f3a26493dbb1a1219f3ebf8672bb591fc9bee58066667d4d424c7dcb5d869331
MD5 d4493c533e3afb14b03156ecb56fc76c
BLAKE2b-256 32e563edde581217b4f6e218bc985b354f0f0888413a52f7ade5f57e59a5c82e

See more details on using hashes here.

Provenance

The following attestation bundles were made for wickedailabs_agentframework-0.2.0a1.tar.gz:

Publisher: publish.yml on WickedAILabs/wickedailabs-pyagentframework

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wickedailabs_agentframework-0.2.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for wickedailabs_agentframework-0.2.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 f05af08daad27cacfb015f9502e84bdc99e2ff9436a9e464e3afe8d43e98747a
MD5 c249c9977c0d3c79e1ce38ca3a361cf5
BLAKE2b-256 c110f5280fb2ff6c07db3e90209f39fbd4040cde3527b6f2713c3c6d6903835f

See more details on using hashes here.

Provenance

The following attestation bundles were made for wickedailabs_agentframework-0.2.0a1-py3-none-any.whl:

Publisher: publish.yml on WickedAILabs/wickedailabs-pyagentframework

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page