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
- GitHub repo — full spec
(
spec.md), sampleprojects/weather_advisor/, and contribution guide. - Releases — download wheels + sdists.
- CHANGELOG
- Issues
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wickedailabs_agentframework-0.1.0a1.tar.gz.
File metadata
- Download URL: wickedailabs_agentframework-0.1.0a1.tar.gz
- Upload date:
- Size: 63.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd8d60595076b86c681a5e84110e2811971bdf1b2d63997dca81e3d8249ad96f
|
|
| MD5 |
3282a3f0ef13d93a8f62b5d11bfd397c
|
|
| BLAKE2b-256 |
05ecbf48cddbcb8f3ddbf6c89526f0c0000345499c6845046440683d1dedcbfa
|
Provenance
The following attestation bundles were made for wickedailabs_agentframework-0.1.0a1.tar.gz:
Publisher:
publish.yml on WickedAILabs/wickedailabs-pyagentframework
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wickedailabs_agentframework-0.1.0a1.tar.gz -
Subject digest:
fd8d60595076b86c681a5e84110e2811971bdf1b2d63997dca81e3d8249ad96f - Sigstore transparency entry: 1340046984
- Sigstore integration time:
-
Permalink:
WickedAILabs/wickedailabs-pyagentframework@fc898cd9f27f17ab8822611e3609f61480491157 -
Branch / Tag:
refs/tags/v0.1.0a1 - Owner: https://github.com/WickedAILabs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fc898cd9f27f17ab8822611e3609f61480491157 -
Trigger Event:
push
-
Statement type:
File details
Details for the file wickedailabs_agentframework-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: wickedailabs_agentframework-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 85.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0253a3f76de2c66ff81111ad547412fed59a487b606e7fc9d5fefeca5c829ed
|
|
| MD5 |
3ec14ea8452bf43a4aa9b6d2491ef75f
|
|
| BLAKE2b-256 |
b8b1a03449f746c2cfb3e960e6f4d150e492e6ae3cace1bde75ef955af738908
|
Provenance
The following attestation bundles were made for wickedailabs_agentframework-0.1.0a1-py3-none-any.whl:
Publisher:
publish.yml on WickedAILabs/wickedailabs-pyagentframework
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wickedailabs_agentframework-0.1.0a1-py3-none-any.whl -
Subject digest:
a0253a3f76de2c66ff81111ad547412fed59a487b606e7fc9d5fefeca5c829ed - Sigstore transparency entry: 1340046988
- Sigstore integration time:
-
Permalink:
WickedAILabs/wickedailabs-pyagentframework@fc898cd9f27f17ab8822611e3609f61480491157 -
Branch / Tag:
refs/tags/v0.1.0a1 - Owner: https://github.com/WickedAILabs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fc898cd9f27f17ab8822611e3609f61480491157 -
Trigger Event:
push
-
Statement type: