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.1.0a1/wickedailabs_agentframework-0.1.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.1.0a1#subdirectory=src/wickedailabs_agentframework"

In pyproject.toml:

[project]
dependencies = [
  "wickedailabs-agentframework @ https://github.com/WickedAILabs/wickedailabs-pyagentframework/releases/download/v0.1.0a1/wickedailabs_agentframework-0.1.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.1.0a1.tar.gz (63.6 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.1.0a1-py3-none-any.whl (85.4 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for wickedailabs_agentframework-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 fd8d60595076b86c681a5e84110e2811971bdf1b2d63997dca81e3d8249ad96f
MD5 3282a3f0ef13d93a8f62b5d11bfd397c
BLAKE2b-256 05ecbf48cddbcb8f3ddbf6c89526f0c0000345499c6845046440683d1dedcbfa

See more details on using hashes here.

Provenance

The following attestation bundles were made for wickedailabs_agentframework-0.1.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.1.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for wickedailabs_agentframework-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 a0253a3f76de2c66ff81111ad547412fed59a487b606e7fc9d5fefeca5c829ed
MD5 3ec14ea8452bf43a4aa9b6d2491ef75f
BLAKE2b-256 b8b1a03449f746c2cfb3e960e6f4d150e492e6ae3cace1bde75ef955af738908

See more details on using hashes here.

Provenance

The following attestation bundles were made for wickedailabs_agentframework-0.1.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