管理 Azure DevOps 项目、仓库与分支,支持创建拉取请求和查看工作项,适合个人开发者日常使用。Use when 需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于无明确技术栈的模糊需求。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。
编程
Azure智能体框架工具-免费版
试用基于Azure AI Foundry构建持久化智能体,支持函数工具、托管工具与会话线程。Use when 需要AI模型调用、智能对话、Agent编排、LLM应用时使用。不适用于需要100%确定性的关键决策。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。
它能做什么
基于Azure AI Foundry构建持久化智能体,支持函数工具、托管工具与会话线程。Use when 需要AI模型调用、智能对话、Agent编排、LLM应用时使用。不适用于需要100%确定性的关键决策。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。
技能文档
核心功能: 本技能提供中文交互、化工作流场景等能力。
Azure智能体框架工具(免费版)
概述
本工具是文档型技能,指导开发者使用 Microsoft Agent Framework Python SDK 在 Azure AI Foundry 上构建持久化智能体。免费版面向个人开发者,提供核心的智能体创建、函数工具集成、托管工具使用、流式响应与会话线程管理能力。
架构概览
用户查询 → AzureAIAgentsProvider → Azure AI Agent Service(持久化)
↓
Agent.run() / Agent.run_stream()
↓
工具: 函数 | 托管(代码/搜索/Web) | 工具
↓
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 助手
个人开发者快速创建一个能对话的 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智能体框架工具-免费版不适合处理:
- 需要100%确定性的关键决策
- 医疗诊断
- 法律判决
触发条件
需要AI模型调用、智能对话、Agent编排、LLM应用时使用。不适用于非本工具能力范围的需求。
快速开始
- 阅读## 核心能力章节了解skill功能
- 按## 依赖说明配置环境
- 执行所需能力对应的命令
- 参考## 错误处理章节处理异常
- 查看## FAQ解答常见疑问
依赖详情
pip install agent-framework --pre
pip install agent-framework-azure-ai --pre
2. 配置环境变量
export AZURE_AI_PROJECT_ENDPOINT="https://.services.ai.azure.com/api/projects/"
export AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini"
export BING_CONNECTION_ID="your-bing-connection-id" # Web 搜索可选
3. 认证方式
from azure.identity.aio import AzureCliCredential, DefaultAzureCredential
# 方式一:Azure CLI 认证(推荐本地开发)
credential = AzureCliCredential()
# 方式二:默认认证链(适用多种环境)
credential = DefaultAzureCredential()
示例
托管工具使用
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())
流式响应
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()
结构化输出
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 搜索 |
HostedProtocolTool | from agent_framework import HostedProtocolTool | 服务端托管 工具 |
ProtocolStreamableHTTPTool | from agent_framework import ProtocolStreamableHTTPTool | 客户端管理 protocol server |
优选实践
- 使用异步上下文管理器:始终用
async with provider:确保资源正确释放。 - 函数直接传入:将 Python 函数直接传入
tools=参数(自动转换为 AIFunction)。 - 参数注解:用
Annotated[type, Field(description=...)]为函数参数添加描述。 - 多轮对话用线程:
get_new_thread()保持上下文。 - 结构化输出用 Pydantic:用
response_format约束输出格式。 - 本地开发用 AzureCliCredential:生产环境用 DefaultAzureCredential 或托管标识。
常见问题
Q1: 认证失败怎么办?
# 确认已登录 Azure CLI
az login
# 确认订阅正确
az account show
Q2: 智能体创建失败?
- 检查
AZURE_AI_PROJECT_ENDPOINT是否正确 - 确认模型部署名称
AZURE_AI_MODEL_DEPLOYMENT_NAME存在 - 确认账户有 Azure AI Foundry 的访问权限
Q3: 函数工具未被调用?
- 确认函数有清晰的 docstring(描述函数用途)
- 用
Annotated为参数添加Field(description=...) - 在 instructions 中明确指示何时使用工具
已知限制
免费版提供核心智能体构建能力,适合个人开发与原型验证。如需企业级编排、批量智能体管理、监控告警、多租户隔离等高阶能力,请升级至专业版。
Q5: 如何调试智能体?
- 使用流式响应
run_stream()观察实时输出 - 检查
result对象的完整字段 - 在函数工具中添加日志输出
依赖说明
运行环境
- Agent 平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- 操作系统: Windows / macOS / Linux
- Python: >= 3.10
第三方依赖
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| 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提供 |
API Key 配置
- 配置
AZURE_AI_PROJECT_ENDPOINT:Azure AI Foundry 项目端点 - 配置
AZURE_AI_MODEL_DEPLOYMENT_NAME:模型部署名称 - 配置
BING_CONNECTION_ID:Web 搜索连接 ID(可选) - 认证:通过 Azure CLI(
az login)或 DefaultAzureCredential
可用性分类
- 分类: MD+execute(纯Markdown指令,部分功能需exec命令行执行)
- 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent完成操作
- API Key通过环境变量配置: export API_KEY=your_key
错误处理
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
安全注意事项
| 风险类型 | 防范措施 |
|---|---|
| API密钥泄露 | 通过环境变量配置,禁止硬编码到代码或配置文件中 |
| 命令执行风险 | 仅执行白名单命令,避免拼接用户输入到命令行参数中 |
| 网络通信安全 | 使用HTTPS协议,验证SSL证书有效性 |
| 敏感数据暴露 | 输出结果中不包含密钥、令牌等敏感信息 |
使用前请确认已阅读依赖说明章节,确保运行环境满足安全要求。
效率量化分析
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 5-10分钟/个 | <5秒/个 | 60-120x |
| 批量文件处理(100个) | 8-16小时 | <5分钟 | 96-192x |
| API调用与响应解析 | 2-3分钟/次 | <1秒/次 | 120-180x |
| 多接口数据聚合 | 15-30分钟 | <10秒 | 90-180x |
| 命令执行与结果收集 | 3-5分钟/次 | <2秒/次 | 90-150x |
| 重复任务批量执行 | 因任务而异 | 线性缩减 | 5-50x |
| 错误排查与修复 | 10-30分钟 | <30秒 | 20-60x |
差异化对比
| 对比维度 | 本技能 | 传统手动方式 | 通用脚本工具 |
|---|---|---|---|
| 自动化程度 | 全流程自动 | 完全手动 | 部分自动 |
| 错误处理 | 内置错误恢复 | 依赖人工经验 | 基本try-catch |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | 核心功能 | 通用场景 | 通用场景 |
相关技能
JavaScript AI 应用 SDK 入门工具,支持模型调用、文件上传与基础代理配置。Use when 需要AI模型调用、智能对话、Agent编排、LLM应用时使用。不适用于需要100%确定性的关键决策。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。
使用Azure AI进行批量语音转文字,支持基础转写与时间戳,适合个人用户处理音频。Use when 需要提升效率、自动化流程、批量处理、工作流优化时使用。不适用于需要人工创意判断的任务。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。
基于 Azure CLI 的基础云资源查询工具(免费版)。提供多订阅导航与资源清单查询两大基础能力. 支持虚拟机列表、运行状态检查、订阅切换等只读操作。默认只读模式,不执行任何变更操作. 适用于日常资源盘点和健康巡检场景。如需 RBAC 角色审计、成本分析、合规检查、跨订阅批量操作等 高级功能,请升级至 azure-cloud-architect 付费版.
Azure Infra Free 是 Azure Infra 技能的免费精简版,通过本地 Azure CLI(az 命令) 提供 Azure 资源的只读查询能力。支持基础的资源清单查询与简单的健康检查, 不包含写操作、安全审计、成本分析等高级功能. 核心能力: - 资源清单查询:资源组、虚拟机、存储账户、虚拟网络等基础资源的列举 - 简单健康检查:查看虚拟机电源状态、查询失败的活动日志 - 只读优先:所有操作默认只读,不执行任何写操作或破坏性变更 适用场景: - 快速盘点订阅内的虚拟机与存储资源 - 查看虚拟机...
使用Azure VoiceLive构建基础实时语音AI应用,支持文本/音频输出与基本会话管理。Use when 需要视频处理、音频编辑、媒体转换、配音生成时使用。不适用于版权受保护的媒体内容处理。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。