Observed since 20 Oct, 21:59 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agent-framework-ep
Microsoft Agent Framework extensions for mainstream open-source LLMs
Microsoft Agent Framework extensions for mainstream open-source LLMs, including structured output support for GLM, Kimi, Qwen, and DeepSeek, along with reasoning_content support. Plus a local containerized code interpreter environment. 'ep' stands for enterprise-level applications.
OpenAI-like Client Extensions (openai_like)
agent-framework>=1.0.0rc6 and agent-framework-openai>=1.0.0rc6Code Executor (code_executor)
Dynamic Skills Provider (skills_provider)
pip install agent-framework-ep
Or with uv:
uv add agent-framework-ep
from pydantic import BaseModel
from agent_framework import Agent
from agent_framework_ep import OpenAILikeChatClient
class Response(BaseModel):
answer: str
confidence: float
# Create client with structured output support
client = OpenAILikeChatClient(
model="deepseek-chat",
api_key="your-api-key"
)
# Use with Agent framework
agent = Agent(client=client)
response = await agent.run(
"What is the capital of France?",
response_format=Response
)
print(response) # Parsed Response object
import asyncio
import os
from agent_framework_ep import DockerCommandLineCodeExecutor
from agent_framework_ep import OpenAILikeChatClient, CodeExecutionTool
chat_client = OpenAILikeChatClient(
model_id="kimi/kimi-k2.5",
)
code_executor = DockerCommandLineCodeExecutor(
image="python-code-sandbox",
work_dir="some_of_your_working_directory",
delete_tmp_files=True,
environment={
"TAVILY_API_KEY": os.environ.get("TAVILY_API_KEY"),
}
)
code_tool = CodeExecutionTool(code_executor).execute_code
agent = chat_client.as_agent(
name="SkillsAssistant",
instructions="You're a helpful assistant.",
tools=[code_tool],
)
from agent_framework_ep import UpdatableSkillsProvider
from agent_framework import Skill
async def fetch_dynamic_skills():
# Fetch skills from external source
return [
Skill(name="web-search", description="Search the web", content="..."),
]
provider = UpdatableSkillsProvider(
skill_paths="./skills",
skills_updater=fetch_dynamic_skills
)
# Clone the repository
git clone https://github.com/qianpeng/agent-framework-ep.git
cd agent-framework-ep
# Install dependencies
uv sync
# Run tests
uv run pytest
# Run tests with Docker (requires Docker)
uv run pytest -m docker
# Lint and format
uv run ruff check --fix .
uv run ruff format .
# Type check
uv run mypy src/agent_framework_ep
MIT License - see LICENSE for details.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
agent-framework-openaiEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | agent-framework-openai>=1.0.0rc6 | runtime |
agent-frameworkEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | agent-framework>=1.0.0rc6 | runtime |
dirtyjsonEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | dirtyjson>=0.0.0 | runtime |
dockerEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | docker>=7.0 | runtime |
json-repairEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | json-repair>=0.0.0 | runtime |
httpxEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | httpx>=0.27; extra == "dev" | runtime |
mypyEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | mypy>=1.8; extra == "dev" | runtime |
openaiEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | openai>=1.0; extra == "dev" | runtime |
pytest-asyncioEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | pytest-asyncio>=0.23; extra == "dev" | runtime |
pytest-covEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | pytest-cov>=4.0; extra == "dev" | runtime |
pytest-recordingEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | pytest-recording>=0.13; extra == "dev" | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | pytest>=8.0; extra == "dev" | runtime |
ruffEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | ruff>=0.3; extra == "dev" | runtime |
vcrpyEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | vcrpy>=6.0; extra == "dev" | runtime |
bdist_wheel · 27.76 KB · Python py3
sdist · 73.07 KB · Python source
Observed since 20 Oct, 21:59 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:cdcb343242668a8adca29aa5bd4a23892ba359148ae2a63d233648b510861d97