GPT-5.5 Agentic UX 实战:让 AI 智能体在执行任务时”开口说话”
OpenAI 在发布 GPT-5.5 的同时,悄悄带来了一个对开发者非常有价值的 UX 建议:pre-tool-call 状态更新。这个模式能让你的 AI 智能体在执行多步骤任务时,不再让用户面对一个”沉默的光标”。
问题:AI 智能体的”沉默焦虑”
你有没有遇到过这种情况:在 ChatGPT 或 Codex 里提交了一个复杂任务,然后界面就一动不动了。模型可能在后台调用了多个工具、执行了多步推理,但用户看到的只是一个闪烁的光标。
这种”沉默焦虑”是 agentic AI 应用中最常见的 UX 问题之一。用户不知道模型是在思考、在卡住、还是在崩溃。
OpenAI 在 GPT-5.5 的官方提示指南中,明确推荐了一种解决方案。
解决方案:Pre-Tool-Call 状态更新
核心思路很简单:在任何多步骤任务的工具调用之前,先发一条简短的用户可见消息,确认请求并说明第一步动作。
保持一到两句话即可。OpenAI 的 Codex 应用已经在使用这个模式,效果显著。
代码示例:基础实现
以 Python + OpenAI API 为例:
from openai import OpenAI
client = OpenAI()
def run_agentic_task(user_query: str):
# 第一步:立即回复用户,告知已开始处理
initial_response = client.chat.completions.create(
model="gpt-5.5",
messages=[
{"role": "system", "content": "你是代码审查助手。收到任务后,先告诉用户你准备做什么,然后再执行。"},
{"role": "user", "content": user_query},
],
# 使用低 verbosity 让初始回复简洁
verbosity="low",
)
# 将初始回复立即展示给用户
print(initial_response.choices[0].message.content)
# 然后执行实际的多步骤工具调用
full_response = client.chat.completions.create(
model="gpt-5.5",
messages=[
{"role": "system", "content": "你是代码审查助手。"},
{"role": "user", "content": user_query},
],
tools=[...], # 你的工具定义
)
return full_response
关键:GPT-5.5 的 verbosity 参数
GPT-5.5 引入了一个新的 API 参数 verbosity,可以控制模型输出的详细程度:
# 低 verbosity:适合状态更新和简短回复
response = client.chat.completions.create(
model="gpt-5.5",
messages=messages,
verbosity="low", # low / medium / high
)
三个值的含义:
low:简洁输出,适合状态确认、简短回复medium:默认平衡,适合一般对话high:详细输出,适合需要深度解释的场景
在 pre-tool-call 场景下,low 是最佳选择——一条简洁的”我正在分析你的代码库,首先检查类型定义”比一大段文字更有用。
在 Stream 模式下的实现
对于需要实时反馈的应用,结合 streaming 和 pre-tool-call 模式效果最好:
import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI()
async def agentic_workflow_with_status(user_query: str):
# 先发送即时状态更新
status_stream = client.chat.completions.create(
model="gpt-5.5",
messages=[
{"role": "system", "content": "简洁回复,1-2句话。告诉用户你接下来要做什么。"},
{"role": "user", "content": user_query},
],
verbosity="low",
stream=True,
)
# 立即流式输出状态更新
async for chunk in status_stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
print() # 换行
# 然后执行真正的工具调用流程
task_stream = client.chat.completions.create(
model="gpt-5.5",
messages=[
{"role": "system", "content": "执行代码审查任务。"},
{"role": "user", "content": user_query},
],
tools=tools,
stream=True,
)
async for chunk in task_stream:
# 处理工具调用和最终结果
...
实际场景:代码审查智能体
以一个实际的代码审查智能体为例,展示完整的 pre-tool-call 模式:
class CodeReviewAgent:
def __init__(self):
self.client = OpenAI()
self.status_template = "🔍 正在审查 {file_count} 个文件,首先检查 {focus_area}..."
async def review(self, files: list[str]):
# 1. 立即发送状态更新
status_msg = self.status_template.format(
file_count=len(files),
focus_area="类型安全和错误处理"
)
yield {"type": "status", "message": status_msg}
# 2. 执行实际的审查工具调用
for file in files:
yield {"type": "status", "message": f"📄 正在审查 {file}..."}
result = self.client.chat.completions.create(
model="gpt-5.5",
messages=[
{"role": "system", "content": self._get_review_prompt()},
{"role": "user", "content": self._read_file(file)},
],
tools=[self.get_lint_tool(), self.get_test_tool()],
verbosity="medium",
)
yield {"type": "review", "file": file, "result": result}
GPT-5.5 迁移注意事项
OpenAI 在官方指南中给出了一个关键建议:
“将 GPT-5.5 视为一个新的模型家族来调优,而不是 gpt-5.2 或 gpt-5.4 的直接替代品。”
这意味着:
- 从新的 baseline 开始:不要直接携带旧 prompt 的所有指令
- 从最小 prompt 开始:保留产品契约所需的最小提示,然后逐步调优
- 逐一调整参数:reasoning effort、verbosity、工具描述和输出格式都需要重新验证
迁移检查清单
# 旧代码(GPT-5.4)
response = client.chat.completions.create(
model="gpt-5.4",
messages=[
{"role": "system", "content": "你是一个详细的代码助手。请用中文回答所有问题。提供完整的代码示例和解释。"},
{"role": "user", "content": query},
],
)
# 迁移后(GPT-5.5)
response = client.chat.completions.create(
model="gpt-5.5",
messages=[
{"role": "system", "content": "代码助手。"}, # 最小化 system prompt
{"role": "user", "content": query},
],
verbosity="medium", # 显式控制输出详细程度
)
OpenAI 甚至提供了一个 Codex 技能来辅助迁移:
openai-docs migrate this project to gpt-5.5
这个命令会自动分析你的代码,并根据 OpenAI 官方升级指南给出修改建议。
为什么这个模式重要
pre-tool-call 状态更新看似简单,但它解决的是 agentic AI 应用中最核心的信任问题:
- 透明度:用户知道系统在工作,而不是卡住了
- 预期管理:用户了解即将发生什么,减少焦虑
- 可中断性:如果方向不对,用户可以尽早干预
在 GPT-5.5 强化了 agentic coding 和 computer use 能力的背景下,这个模式变得更加重要——因为模型会执行更复杂的多步骤任务,用户的等待时间也更长。
总结
GPT-5.5 的 pre-tool-call 状态更新模式是一个小而实用的 UX 改进:
- 在多步骤任务开始前,先发一条简短的状态消息
- 使用
verbosity="low"控制初始回复的简洁度 - 结合 streaming 实现即时反馈
- 迁移到 GPT-5.5 时,从最小 prompt 开始重新调优
对于构建 agentic 应用的开发者来说,这是 GPT-5.5 最值得关注的 UX 改进之一。
参考资料:OpenAI GPT-5.5 提示指南、OpenAI 使用 GPT-5.5 指南、GPT-5.5 新参数和工具