你知道吗?OpenAI 官方 Agents SDK 已经支持连接任何 MCP Server,但 90% 的开发者还在把它当成高级聊天机器人用。
这个框架在 GitHub 上有 26,779 Stars,HN Algolia 上关于 MCP 支持的讨论获得了 807 分(2026 年最高分之一)。它不仅仅是一个多 Agent 框架——它内置了大量生产级功能,但大多数教程从未提及。
今天我们深入挖掘 5 个隐藏用法,让你在 2026 年构建 AI 应用时遥遥领先。
隐藏用法 #1:3行代码连接任何 MCP Server
大多数人的用法: 手动编写 JSON Schema 定义工具函数,写大量冗长的 function_call 处理器。
隐藏技巧: SDK 原生支持 MCP 协议。只需 3 行代码就能连接任何 Model Context Protocol Server,不需要手写任何工具定义。
from agents.mcp import MCPToolset
# 连接 MCP Server(如文件系统 MCP、Slack MCP 等)
tools = MCPToolset(
command="npx",
args=["@modelcontextprotocol/server-filesystem", "/path/to/dir"]
)
agent = Agent(
name="文件助手",
instructions="你可以读取和写入工作区中的文件。",
tools=tools
)
效果: 你的 Agent 立即获得 MCP Server 暴露的所有工具权限——文件操作、API 调用、数据库查询——无需手写任何工具定义。
数据来源: OpenAI Agents SDK GitHub 26,779 Stars,HN Algolia "OpenAI adds MCP support to Agents SDK" 807分(故事 #43485566)
隐藏用法 #2:Sandbox Agent — 在容器中运行真实代码
大多数人的用法: 让 Agent 生成代码,然后手动在外部执行。
隐藏技巧: SandboxAgent 在完全隔离的容器中运行——支持文件系统访问、git 操作,以及跨对话轮次的持久化工作区。
from agents import Runner
from agents.sandbox import Manifest, SandboxAgent, SandboxRunConfig
from agents.sandbox.entries import GitRepo
from agents.sandbox.sandboxes import UnixLocalSandboxClient
agent = SandboxAgent(
name="代码审查助手",
instructions="审查代码仓库并提出改进建议。",
default_manifest=Manifest(
entries={"repo": GitRepo(repo="openai/openai-agents-python", ref="main")}
)
)
result = Runner.run_sync(
agent,
"总结这个仓库的架构。",
run_config=RunConfig(sandbox=SandboxRunConfig(client=UnixLocalSandboxClient()))
)
print(result.final_output)
效果: Agent 自动克隆仓库、检查文件、运行命令、施加补丁——全部在隔离的 Linux 容器内完成,跨对话轮次保持完整工作区状态。
数据来源: OpenAI Agents SDK GitHub 26,779 Stars,官方文档 openai.github.io/openai-agents-python/sandbox_agents/
隐藏用法 #3:Guardrails 在入口处拦截无效输入
大多数人的用法: 完全跳过输入验证,或者事后用正则表达式打补丁。
隐藏技巧: Guardrail 作为独立验证步骤,在 Agent 处理任何输入之前运行——带有结构化的通过/失败结果和自动恢复机制。
from agents import Agent, Guardrail, GuardrailFunctionOutput
from pydantic import BaseModel
class UserIntent(BaseModel):
is_code_request: bool
requested_language: str | None
def check_intent(output: GuardrailFunctionOutput) -> bool:
"""仅允许代码相关请求通过。"""
return output.output.is_code_request
guardrail = Guardrail(
name="code_request_filter",
n=1,
output_type=UserIntent,
on_fail=check_intent
)
agent = Agent(
name="开发助手",
instructions="帮助用户编写和调试代码。",
input_guardrails=[guardrail]
)
效果: 任何非代码输入在到达 LLM 之前就被拦截——在入口处减少幻觉和跑题响应。
数据来源: OpenAI Agents SDK GitHub 26,779 Stars,官方文档 openai.github.io/openai-agents-python/guardrails/
隐藏用法 #4:Tracing 让你真正看到 Agent 在想什么
大多数人的用法: 添加 print 语句然后祈祷——对工具调用序列、Token 使用量或中间推理过程完全没有可见性。
隐藏技巧: SDK 内置 Tracing 功能,记录每一步:Agent 推理、工具调用、LLM 响应和延迟——全部可在可视化仪表板中查看。
from agents import Runner, Agent
from agents.tracing import trace
# 用 trace() 包裹任何 Agent 运行,自动完成仪表化
with trace(agent_name="my-assistant", tags=["production", "v1"]):
agent = Agent(name="我的助手", instructions="你是一个有用的助手。")
result = Runner.run_sync(agent, "用 Python 写一个 Hello World。")
print(result.final_output)
# 在以下地址查看 traces:https://platform.openai.com/traces
效果: 每次 Agent 运行都会生成结构化 trace,包含每次 LLM 调用、工具调用和 Guardrail 检查的跨度信息——使调试多轮对话像阅读时间线一样简单。
数据来源: OpenAI Agents SDK GitHub 26,779 Stars,官方文档 openai.github.io/openai-agents-python/tracing/
隐藏用法 #5:Realtime Agent — 语音对话背后有完整 Agent 能力
大多数人的用法: 将 OpenAI Realtime API 单独使用,手动与 Agent 逻辑缝合在一起。
隐藏技巧: Agents SDK 原生支持 RealtimeAgent——语音对话背后有完整的 Agent 能力支撑:工具调用、Guardrails 和多 Agent 交接。
from agents.realtime import RealtimeAgent, RealtimeConfig
from agents import Runner
agent = RealtimeAgent(
name="语音助手",
instructions="你是一个有工具访问权限的语音助手。",
voice="alloy" # 使用 OpenAI 的语音模型
)
# 带有完整工具访问权限的语音 Agent——无需手动缝合
config = RealtimeConfig(model="gpt-realtime-2", tools=[...], guardrails=[...])
Runner.run(agent, config=config)
效果: 语音对话可以真正使用工具——搜索网页、运行代码、查询数据库——同时在多轮对话中保持完整的上下文。OpenAI 自己的 Advanced Voice 框架内部也在使用这个 SDK(HN 266分)。
数据来源: OpenAI Agents SDK GitHub 26,779 Stars,HN Algolia "Open source framework OpenAI uses for Advanced Voice" 266分(故事 #41743327)
总结:5 个技巧
- MCP Server 集成 — 3 行代码连接任何 MCP Server,无需手写 Schema
- Sandbox Agent — 在隔离容器中运行 Agent,支持 git/文件系统访问
- Guardrails — 在入口处拦截无效输入,防止有害输出到达用户
- Tracing — 对 Agent 推理、工具调用和延迟获得完整可见性
- Realtime Voice Agent — 语音对话背后有完整 Agent 能力支撑
3 个内链:
你最喜欢的隐藏用法是什么?在评论区分享!
Top comments (0)