就在今夜,OpenAI 发布了 5 个新的 Agent 功能,都已经上线 API 平台。
- Web Search,将自家在用的联网搜索功能开发给 API 了,自带引用。
- File Search,支持上传文件,生成向量和文档检索了,也自带引用。
- Computer Use Agent,基于 4o 模型的多模态能力与电脑进行交互。
- Response AI,新的 OpenAI 请求原型,以上 3 个功能都需要使用新的原型 API 请求。
- Agents SDK,基于前期发布的 Swarm 新 SDK,支持 Agent Loop、Handoffs、Function tools 和 Tracking。
详细功能,相信大家都已经在国内三大顶刊看过了。在这里,我只想深入聊一下这些新工具可能得应用范式。我认为基于这些工具你可以实现时下大火的 Deep Research 和类似多智能体工具 Manus。
可能路径
以 Agents SDK 为基础,
- 结合类似 DeepSeek R1 这样的推理模型,构造一个根据问题规划推理 Plan Agent
- 使用 Web Search 构造的联网的 Web Agent
- 使用 File Search 构造 RAG Agent
- 使用 Computer Use Agent 构造一个支持操作电脑的 Computer Agent
- 构造一个判定反思 Refection Agent
启动一个 Agent Loop,然后 Plan Agent 首先接受用户请求,规划需要检索的信息,然后分别调用 RAG Agent 和 Web Agent。信息获取后,调用反思 Reflection Agent 判定所需信息是否足够,是否需要再次规划信息新的信息,直到信息检索完成。最后可以使用 Computer Agent 打开 Word 文档,将报告编写进去最后输出一个文档。
File Search,官方 RAG 实现
通过以下示例,我们可以看到 Open AI 是如何实现 RAG 的。
- 首先上传文件
支持绝大部分文件格式,诸如 txt、doc、ppt、pdf、md 以及绝大部分的编程文件格式。上传完成后,它会回传一个文件 ID。
ini
client = OpenAI()
with open(file_path, "rb") as file_content:
result = client.files.create(
file=file_content,
purpose="assistants"
)
return result.id
- 创建向量库
也同样会回传一个向量库 ID
ini
vector_store = client.vector_stores.create(
name="knowledge_base"
)
print(vector_store.id)
- 将文件加入到向量库中
ini
client.vector_stores.files.create(
vector_store_id=vector_store.id,
file_id=file_id
)
由于入库需要时间,在检索之前需要检查状态是否 completed。
ini
result = client.vector_stores.files.list(
vector_store_id=vector_store.id
)
print(result)
也可以上传多个文件进入向量库中,是的你可以在一整个文档集合中搜索。
- File Search
ini
response = client.responses.create(
model="gpt-4o-mini",
input="What is deep research by OpenAI?",
tools=[{
"type": "file_search",
"vector_store_ids": ["<vector_store_id>"]
}]
)
响应结果自带引用,引用以 index 说明,并给出一引用的文件 ID 和名称,如下所示。
json
{
"output": [
{
"type": "file_search_call",
"id": "fs_67c09ccea8c48191ade9367e3ba71515",
"status": "completed",
"queries": ["What is deep research?"],
"search_results": null
},
{
"id": "msg_67c09cd3091c819185af2be5d13d87de",
"type": "message",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Deep research is a sophisticated capability that allows for extensive inquiry and synthesis of information across various doma...",
"annotations": [
{
"type": "file_citation",
"index": 992,
"file_id": "file-2dtbBZdjtDKS8eqWxqbgDi",
"filename": "deep_research_blog.pdf"
},
...
]
}
]
}
]
}
除此之外,还支持修改 Chunk 大小、包含召回数据、限制召回文档数量、元数据过滤和结果重排 Rerank 等,更多的可以参考Open AI 官方 Retrieve 文档[1]。
可以看到基于 OpenAI 官方 SDK 就可以实现 RAG,除了贵之外,一点毛病没有。
Web Search
联网搜索,也是在新的 API 原型中实现的,为了更好的支持用户搜索结果,还可以填入用户大概位置、限制检索上下文数量等想,相应自带引用。
lua
completion = client.chat.completions.create(
model="gpt-4o-search-preview",
web_search_options={
"user_location": {
"type": "approximate",
"approximate": {
"country": "GB",
"city": "London",
"region": "London",
}
},
"search_context_size": "low",
},
messages=[
{
"role": "user",
"content": "What was a positive news story from today?",
}
],
)
响应
json
[
{
"index": 0,
"message": {
"role": "assistant",
"content": "the model response is here...",
"refusal": null,
"annotations": [
{
"type": "url_citation",
"url_citation": {
"end_index": 985,
"start_index": 764,
"title": "Page title...",
"url": "https://..."
}
}
]
},
"finish_reason": "stop"
}
]
总结
Agents SDK 功能就不再详细复述了,大家可以自行访问 OpenAI 官方仓库。
总的来说,大部分功能都有一些开源实现,或者商业平台支持,比如联网搜索可以使用 Tavily,File Search 就是各种 RAG。但这两个工具 Open AI 直接集成到官方 SDK 中了,意味着各大 LLM 平台都会跟进,可能进一步压缩开发者的空间了。
而以联网搜索起家的 Perpexity 危矣,谁都可以根据 Web Search 做一个新的 Perpexity。(我实在不喜欢这家,前段时间还基于 DeepSeek R1 出个什么去除中国监管的新 R1,也不开放数据集,还不知道加了点啥东西,这玩意不就是要么中国监管要么美国监管,讲什么去除偏见,脱裤子放屁,典型的端碗吃肉放下骂娘,早点倒闭)!
基于这一整套 API 套件,开发 Manus、DeepResearch 都不再麻烦了,毕竟我们需要做的就是规划编排~
我们建立了LLM 应用交流群,关注我后台回复进群即可。
参考资料
[1] Open AI 官方Retrieve文档: platform.openai.com/docs/guides...