Install
openclaw skills install @thcjp/azure-agent-framework-tool-free文档型技能,指导开发者使用 Microsoft Agent Framework Python SDK 在 Azure AI Foundry,可处置提升工作效率. 适用于需要azure agent framework tool相关能力的开发场景,包含结构化的工作流程和可复用的模板,帮助用户快速完成任务并保持代码质量.
openclaw skills install @thcjp/azure-agent-framework-tool-free本工具是文档型技能,指导开发者使用 Microsoft Agent Framework Python SDK 在 Azure AI Foundry 上构建持久化智能体。免费版面向个人开发者,提供核心的智能体创建、函数工具集成、托管工具使用、流式响应与会话线程管理能力.
用户查询 → AzureAIAgentsProvider → Azure AI Agent Service(持久化)
↓
Agent.run() / Agent.run_stream()
↓
工具: 函数 | 托管(代码/搜索/Web) | MCP工具
↓
AgentThread(会话持久化)
| 能力 | 说明 | 适用场景 |
|---|---|---|
| 创建智能体 | create_agent() 创建持久化智能体 | 构建 AI 助手 |
| 函数工具 | 将 Python 函数作为工具提供给智能体 | 自定义业务逻辑 |
| 托管工具 | 代码解释器、文件搜索、Web 搜索 | 复杂任务处理 |
| 流式响应 | run_stream() 逐 token 输出 | 实时交互体验 |
| 会话线程 | get_new_thread() 多轮对话 | 上下文保持 |
| 结构化输出 | Pydantic 模型约束输出 | 数据抽取与校验 |
技术实现要点:核心能力基于input_params参数与output_format配置实现,支持创建/查询/修改/删除等操作模式,通过config_options进行运行时配置. |
用input_params参数进行配置.
处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作用config_options参数进行配置.
处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志.
config_options参数,支持修改/重置/导入操作用output_format参数进行配置.
处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志.
output_format参数,支持导出/保存/转换操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:Azure、Foundry、构建持久化智能体、支持函数工具、托管工具与会话线、文档型技能、指导开发者使用、Microsoft、Framework、SDK、与会话线程、函数工具与托管工、具集成、流式响应与会话线、程管理等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.个人开发者快速创建一个能对话的 AI 智能体.
import asyncio
from agent_framework.azure import AzureAIAgentsProvider
from azure.identity.aio import AzureCliCredential
# ...
async def main():
async with (
AzureCliCredential() as credential,
AzureAIAgentsProvider(credential=credential) as provider,
):
# 创建智能体
agent = await provider.create_agent(
name="MyAgent",
instructions="你是一个乐于助人的助手。",
)
# ...
# 运行并获取响应
result = await agent.run("你好!")
print(result.text)
# ...
asyncio.run(main())
为智能体提供自定义函数(如天气查询、时间查询).
import asyncio
from typing import Annotated
from pydantic import Field
azure import AzureAIAgentsProvider
from azure.identity.aio import AzureCliCredential
# ...
def get_weather(
location: Annotated[str, Field(description="城市名称")],
) -> str:
"""获取指定城市的天气。"""
return f"{location} 的天气: 22°C, 晴"
# ...
def get_current_time() -> str:
"""获取当前 UTC 时间。"""
from datetime import datetime, timezone
return datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S UTC")
# ...
async def main():
async with (
AzureCliCredential() as credential,
AzureAIAgentsProvider(credential=credential) as provider,
):
name="WeatherAgent",
instructions="你帮助用户查询天气和时间。",
tools=[get_weather, get_current_time], # 直接传入函数
)
# ...
# ...
asyncio.run(main())
使用线程保持多轮对话上下文.
import asyncio
azure import AzureAIAgentsProvider
from azure.identity.aio import AzureCliCredential
# ...
async def main():
async with (
AzureCliCredential() as credential,
AzureAIAgentsProvider(credential=credential) as provider,
):
name="ChatAgent",
)
# ...
# 创建会话线程
thread = agent.get_new_thread()
# ...
# 领先轮对话
result1 = await agent.run("北京的天气怎么样?", thread=thread)
print(f"助手: {result1.text}")
# ...
# 第二轮对话(上下文保持)
result2 = await agent.run("那上海呢?", thread=thread)
print(f"助手: {result2.text}")
# ...
# 保存线程 ID 以便后续恢复
print(f"会话 ID: {thread.conversation_id}")
# ...
asyncio.run(main())
以下场景Azure智能体框架工具-免费版不适合处理:
需要AI模型调用、智能对话、Agent编排、LLM应用时使用。不适用于非本工具能力范围的需求.
pip install agent-framework --pre
pip install agent-framework-azure-ai --pre
export AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini"
export BING_CONNECTION_ID="your-bing-connection-id" # Web 搜索可选
echo "操作完成"```python from azure.identity.aio import AzureCliCredential, DefaultAzureCredential
credential = AzureCliCredential()
credential = DefaultAzureCredential()
## 示例
### 托管工具使用
echo "操作完成"```python
import asyncio
from agent_framework import (
HostedCodeInterpreterTool,
HostedFileSearchTool,
HostedWebSearchTool,
)
azure import AzureAIAgentsProvider
from azure.identity.aio import AzureCliCredential
# ...
async def main():
async with (
AzureCliCredential() as credential,
AzureAIAgentsProvider(credential=credential) as provider,
):
name="MultiToolAgent",
instructions="你可以执行代码、搜索文件和搜索网络。",
tools=[
HostedCodeInterpreterTool(), # 代码解释器
HostedWebSearchTool(name="Bing"), # Web 搜索
],
)
# ...
run("用 Python 计算 20 的阶乘")
# ...
asyncio.run(main())
echo "操作完成"```python async def main(): async with ( AzureCliCredential() as credential, AzureAIAgentsProvider(credential=credential) as provider, ): name="StreamingAgent", )
print("助手: ", end="", flush=True)
async for chunk in agent.run_stream("讲一个短故事"):
if chunk.text:
print(chunk.text, end="", flush=True)
print()
### 结构化输出
echo "操作完成"```python
from pydantic import BaseModel, ConfigDict
# ...
class WeatherResponse(BaseModel):
model_config = ConfigDict(extra="forbid")
# ...
location: str
temperature: float
unit: str
conditions: str
# ...
async def main():
async with (
AzureCliCredential() as credential,
AzureAIAgentsProvider(credential=credential) as provider,
):
name="StructuredAgent",
instructions="以结构化格式提供天气信息。",
response_format=WeatherResponse,
)
# ...
weather = WeatherResponse.model_validate_json(result.text)
print(f"{weather.location}: {weather.temperature}°{weather.unit}, {weather.conditions}")
| 工具 | 导入语句 | 用途 |
|---|---|---|
HostedCodeInterpreterTool | from agent_framework import HostedCodeInterpreterTool | 执行 Python 代码 |
HostedFileSearchTool | from agent_framework import HostedFileSearchTool | 搜索向量存储 |
HostedWebSearchTool | from agent_framework import HostedWebSearchTool | Bing Web 搜索 |
HostedMCPTool | from agent_framework import HostedMCPTool | 服务端托管 MCP工具 |
MCPStreamableHTTPTool | from agent_framework import MCPStreamableHTTPTool | 客户端管理 MCP server |
async with provider: 确保资源正确释放.tools= 参数(自动转换为 AIFunction).Annotated[type, Field(description=...)] 为函数参数添加描述.get_new_thread() 保持上下文.response_format 约束输出格式.# 确认已登录 Azure CLI
az login
# 确认订阅正确
az account show
AZURE_AI_PROJECT_ENDPOINT 是否正确AZURE_AI_MODEL_DEPLOYMENT_NAME 存在Annotated 为参数添加 Field(description=...)免费版提供核心智能体构建能力,适合个人开发与原型验证。如需企业级编排、批量智能体管理、监控告警、多租户隔离等高阶能力,请升级至专业版.
run_stream() 观察实时输出result 对象的完整字段| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| agent-framework | Python 包 | 必需 | pip install agent-framework --pre |
| agent-framework-azure-ai | Python 包 | 必需 | pip install agent-framework-azure-ai --pre |
| azure-identity | Python 包 | 必需 | 随 agent-framework-azure-ai 安装 |
| Azure CLI | 命令行工具 | 推荐 | 官方安装(用于认证) |
| Azure AI Foundry | 云服务 | 必需 | Azure 订阅 |
| LLM API | API | 必需 | 由Agent内置LLM提供 |
AZURE_AI_PROJECT_ENDPOINT:Azure AI Foundry 项目端点AZURE_AI_MODEL_DEPLOYMENT_NAME:模型部署名称BING_CONNECTION_ID:Web 搜索连接 ID(可选)az login)或 DefaultAzureCredential| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "Azure智能体框架工具-免费版处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "azure agent framework"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}