OpenAI Agent Kit 全网首发深度解读与上手指南 - 详解

news/2025/11/16 13:50:35/文章来源:https://www.cnblogs.com/yangykaifa/p/19227955

Agent Kit 简介

Agent Kit 是 OpenAI 推出的一个基于 Agent 的工作流编排工具,可以一条龙搞定「编排 → 发布 → 集成 →评估」的 AI 工作流平台。

如果你正在寻找把 AI 工作流从原型拉到生产的稳妥方式,Agent Kit 值得优先试用。它把可视化编排、前端嵌入、数据连接与效果评估串成一个闭环,降低实施成本、提升上线速度。

核心组件一览

为什么选 Agent Kit

使用限制与注意事项

  • MCP 工具生态仍在扩充,当前数量有限。
  • 深度绑定 OpenAI 生态。
  • 付费与企业认证:使用 Agent Builder 等功能需要付费账号;GPT‑5 系列与高级优化需完成企业认证。

实战上手路径

我们将基于官方 Starter 项目 演示入门,并扩展用 Python FastAPI + React 集成一个小型 Demo。

准备工作
在 Agent Builder 创建与发布工作流
创建工作流

在 Agent Builder 选择模板或从零开始搭建。若未通过 企业认证,请将模型切换为可用的 GPT‑4 系列。
可在 Agent Builder 使用 Evals 评估工作流效果,支持自定义指标和评估模型。
Evals 评估工作流效果

发布工作流

发布后获取 workflow_ID,用于在 ChatKit 前端组件中进行绑定与调用。

官方示例项目
下载项目并安装依赖及环境
# 下载项目
git clone https://github.com/openai/openai-chatkit-starter-app.git
# 安装依赖项
npm install
# 复制环境变量文件
cp .env.example .env.local

将 .env.local 中的 OPENAI_API_KEY 及 NEXT_PUBLIC_CHATKIT_WORKFLOW_ID 替换为你自己的 OPENAI_API_KEY 及 workflow_ID

启动项目
# 打包项目
npm run build
# 启动项目
npm run dev
自定义调整

可在 lib/config.ts 调整 初始提示、问候文本、ChatKit 主题
可在 components/.tsx 调整事件触发逻辑,以集成您的分析及存储

想第一时间掌握 OpenAI AgentKit 的实战用法,以及更多 MCP、Agent、RAG、多模态 应用落地案例
赋范空间大模型社区 ,这里不仅有 AgentKit 全流程实操拆解,还有持续更新的 Agent / RAG / 多模态 应用落地实战案例,带你深入学习。

工作流集成项目Demo

此项目基于 Python FastAPI + React 实现使用 Agent Kit 的工作流集成项目Demo。

可加 小助理 领取项目源码

服务端

由于 CDN 限制,我们可以在服务端返回本地的 chatkit.js 脚本。

@app.get("/cdn/chatkit.js")
async def proxy_chatkit_js():
"""返回本地 chatkit.js """
base_dir = os.path.dirname(__file__)
local_candidates = [
os.path.abspath(os.path.join(base_dir, "../frontend/public/chatkit.js")),
]
for local_path in local_candidates:
with open(local_path, "rb") as f:
content = f.read()
logger.info(f"使用本地 ChatKit 脚本: {local_path}")
return Response(
content=content,
media_type="application/javascript",
headers={
"Cache-Control": "public, max-age=3600",
"Access-Control-Allow-Origin": "*"
}
)

解析工作流配置文件 workflows.json,加载工作流列表及默认工作流。

def load_workflow_config():
base_dir = os.path.dirname(__file__)
data_dir = os.path.abspath(os.path.join(base_dir, "..", "data"))
candidates = [
os.path.abspath(os.path.join(data_dir, "workflows.json")),
]
for path in candidates:
if os.path.exists(path):
with open(path, "r", encoding="utf-8") as f:
try:
return json.load(f)
except Exception as e:
logger.error(f"读取工作流配置失败: {e}")
break
logger.warning("请配置工作流")
return {
"workflows": [],
"default": None,
}
WORKFLOW_CONFIG = load_workflow_config()
@app.get("/api/workflows")
async def get_workflows():
"""返回工作流列表"""
return WORKFLOW_CONFIG

创建 ChatKit 会话

def _create_chatkit_session(workflow_type: str, workflow_id: str, stable_user_id: str):
"""调用 OpenAI ChatKit 创建会话并返回 session_id 与 client_secret。"""
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {os.getenv('OPENAI_API_KEY')}",
"OpenAI-Beta": "chatkit_beta=v1",
}
payload = {"workflow": {"id": workflow_id}, "user": stable_user_id}
response = requests.post(
"https://api.openai.com/v1/chatkit/sessions",
headers=headers,
json=payload,
timeout=30,
)
if response.status_code != 200:
logger.error(f"ChatKit API 错误: {response.status_code} {response.text}")
raise Exception(f"OpenAI API Error ({response.status_code}): {response.text}")
session = response.json()
return session.get("id"), session.get("client_secret")
@app.post("/api/chatkit/session")
async def create_chatkit_session(workflow_type: str | None = None):
"""
创建 ChatKit 会话
1. 前端请求这个接口
2. 服务端使用 OpenAI API Key 创建 session
3. 返回 client_secret、session_id、workflow_id 给前端
4. 前端使用 client_secret 连接 ChatKit
"""
try:
# 解析工作流:优先前端传入,其次使用 workflows.json 的 default
selected_type = workflow_type or WORKFLOW_CONFIG.get("default")
workflow_id = WORKFLOWS_MAP.get(selected_type or "")
if not selected_type or not workflow_id:
raise HTTPException(status_code=400, detail="工作流识别错误请确认配置")
workflow_type = selected_type
logger.info(f"创建 ChatKit Session for workflow: {workflow_type} ({workflow_id})")
# 为该工作流维持稳定 user_id
stable_user_id = _get_or_create_user_id(workflow_type)
sid, csec = _create_chatkit_session(workflow_type, workflow_id, stable_user_id)
logger.info(f"ChatKit Session 创建成功: {sid} (workflow: {workflow_type})")
# 持久化最新密钥到本地 JSON
if sid and csec:
_set_latest_secret(sid, csec, workflow_type, workflow_id)
return {
"client_secret": csec,
"session_id": sid,
"workflow_type": workflow_type,
"workflow_id": workflow_id
}
except Exception as e:
logger.error(f"创建 ChatKit Session 失败: {str(e)}")
raise HTTPException(
status_code=500,
detail=f"Failed to create ChatKit session: {str(e)}"
)

前端有 session_id 时,可通过该接口获取最新的 client_secret 以恢复历史会话。

@app.get("/api/chatkit/session")
async def get_latest_client_secret(session_id: str | None = None):
"""
前端仅存储 session_id,通过该接口获取密钥以恢复历史。
"""
try:
if not session_id:
raise HTTPException(status_code=400, detail="缺少 session_id")
info = _get_latest_secret(session_id)
if not info:
raise HTTPException(status_code=404, detail="未找到该会话")
return {
"client_secret": info["client_secret"],
"session_id": session_id,
"workflow_type": info.get("workflow_type"),
"workflow_id": info.get("workflow_id"),
"updated_at": info.get("updated_at")
}
except HTTPException:
raise
except Exception as e:
logger.error(f"查询最新密钥失败: {e}")
raise HTTPException(status_code=500, detail=f"查询失败: {e}")

挂载前端页面

app.mount("/", StaticFiles(directory=frontend_dist_path, html=True), name="static")

想第一时间掌握 OpenAI AgentKit 的实战用法,以及更多 MCP、Agent、RAG、多模态 应用落地案例
来 赋范空间大模型社区 ,这里不仅有 AgentKit 全流程实操拆解,还有持续更新的 Agent / RAG / 多模态 应用落地实战案例,带你深入学习。

前端

主页面

import { useChatKit } from '@openai/chatkit-react';
import { useEffect, useState } from 'react';
import './App.css';
import WorkflowSelector from './components/WorkflowSelector';
import ChatPane from './components/ChatPane';
function App() {const [errorMsg, setErrorMsg] = useState(null);// 工作流配置从后端加载const [flows, setFlows] = useState([]);const [activeFlow, setActiveFlow] = useState(null);const [flowsLoading, setFlowsLoading] = useState(true);// 仅在前端保存每个工作流的 session_id,由后端映射并返回最新 client_secretconst storageKey = 'chatkit.flowSessions';const readSessions = () => {try {return JSON.parse(localStorage.getItem(storageKey) || '{}');} catch {return {};}};const writeSessions = (map) => {try {localStorage.setItem(storageKey, JSON.stringify(map));} catch {// 忽略存储错误}};const getSavedSessionId = (flow) => {const m = readSessions();return m[flow || 'default'] || null;};const setSavedSessionId = (flow, sid) => {const m = readSessions();m[flow || 'default'] = sid;writeSessions(m);};const { control: kitCtrl } = useChatKit({api: {// 会话续期或网络重试时调用async getClientSecret(currentClientSecret) {const flowKey = activeFlow || 'default';const savedSid = getSavedSessionId(flowKey);// 1) 初次挂载或切回工作流:若有 session_id,向后端查询最新密钥if (!currentClientSecret && savedSid) {try {const resp = await fetch(`/api/chatkit/session?session_id=${encodeURIComponent(savedSid)}`);if (resp.ok) {const info = await resp.json();return info.client_secret;}} catch (e) {}}// 2) 无有效 session_id 或刷新失败:创建新会话,并保存 session_idtry {const response = await fetch(`/api/chatkit/session${activeFlow ? `?workflow_type=${encodeURIComponent(activeFlow)}` : ''}`, {method: 'POST',headers: { 'Content-Type': 'application/json' },});if (!response.ok) {throw new Error(`HTTP ${response.status}: ${response.statusText}`);}const data = await response.json();setSavedSessionId(flowKey, data.session_id);return data.client_secret;} catch (error) {setErrorMsg(error.message);throw error;}},},// 输入框配置composer: {placeholder: '输入消息',},onError: (error) => {const emsg = error.message || JSON.stringify(error);setErrorMsg(emsg);},});useEffect(() => {// 从后端加载工作流配置(async () => {try {const resp = await fetch('/api/workflows');if (!resp.ok) throw new Error(`HTTP ${resp.status}`);const cfg = await resp.json();const options = (cfg.workflows || []).map(w => ({ id: w.id, name: w.name, workflow_id: w.workflow_id }));setFlows(options);const defaultType = cfg.default || (options[0]?.id ?? null);setActiveFlow(defaultType);setFlowsLoading(false);} catch (e) {setFlowsLoading(false);}})();}, []);return (

AgentKit:Agent Builder + Chat Kit Demo

{/* 主内容区域 */}
{setActiveFlow(newFlow);}}/>
); } export default App;

chatkit组件

import { ChatKit } from '@openai/chatkit-react';
export default function ChatPane({ width, errorMsg, activeFlow, kitCtrl }) {return (
{errorMsg ? (

加载失败

{errorMsg}

) : ()}
); }

工作流选择器组件

export default function WorkflowSelector({ flows, activeFlow, flowsLoading, onChange }) {return (
); }

详情参考

OpenAI AgentKit 介绍
OpenAI AgentKit 文档
ChatKit 示例项目
ChatKit 高级示例项目
ChatKit Studio

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/967070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

supabase

supabase https://github.com/supabase/supabaseSupabaseSupabase is the Postgres development platform. Were building the features of Firebase using enterprise-grade open source tools.Hosted Postgres Datab…

2025年加工型辣椒种子生产厂家排名前十:权威评测与选择攻略

摘要 随着2025年加工型辣椒种子行业的持续增长,市场需求聚焦于高品质、高产量品种。本文基于行业数据和市场调研,整理了前十名供应商排名,涵盖品牌介绍、核心优势及服务成果,并为种植户提供实用选择指南。排名表单…

251116

星期天 晴 醒的还是挺早的,就是一直困,起床也到了十点多。 磨蹭一下十一点出了门,把很久不骑的自行车挂闲鱼上,有人问了也没买 午饭真是不知道该吃啥 服了 鼠标坏了寄回去修,换了个新的回来,给绿联点赞。他们的数…

2025年加工型辣椒种子品牌前十强排行榜:镇江市镇研种业有限公司领跑行业

摘要 2025年加工型辣椒种子行业迎来高速发展,随着农业现代化和食品加工需求增长,优质种子成为种植户的核心关注点。本文基于市场调研和数据统计,为您呈现2025年加工型辣椒种子品牌排行榜前十强,重点推荐镇江市镇研…

2025年螺丝椒种子品牌综合实力排行榜前十强揭晓

摘要 随着农业现代化进程加速,螺丝椒种子行业在2025年迎来新一轮发展机遇。本文基于品种研发实力、市场占有率、用户口碑等维度,对国内主流螺丝椒种子品牌进行综合评估,为种植户提供权威参考。文末附有详细选购指南…

2025年线椒种子品牌前十强排名:专业选购指南与厂家实力解析

摘要 2025年线椒种子行业迎来技术升级与品质革新,随着种植技术的不断提升和市场需求的多样化,优质种子供应商成为产业发展的关键推动力。本文基于市场调研和行业数据分析,为您呈现当前线椒种子品牌的综合排名,并提…

2025年辣椒种子品牌前十强排行榜及深度解析

摘要 2025年辣椒种子行业持续发展,技术创新和品种优化成为市场主流,种植户对高品质种子的需求日益增长。本文基于市场调研和用户反馈,整理了2025年辣椒种子品牌排名前十的列表,为种植户和采购商提供参考。列表包括…

fastdfs版本编译升降版本

原fastdfs版本源码编译docker run -d --restart=always --privileged=true --net=host --name=fastdfs5 -e FASTDFS_IPADDR=10.40.17.249 -e WEB_PORT=8080 -v /data/fdfs/fastdfs:/home/fdfs registry.harbor.com:584…

增强现实(AR)在订单拣选中的应用:便捷的技术解析与中国市场前景

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

单核超 i9、多核追 i5,2024 Mac mini M4

https://post.smzdm.com/p/a86d56pn/ 从性能对标来看, Mac mini M4 的 CPU 单核性能超越英特尔酷睿 i9 - 14900K,在 Geekbench 6 测试中,M4 单核跑分高达 3800 多分,而 i9 - 14900K 约为 3500 分 多核性能方面,M4…

Infineon GaN 基础知识

Infineon GaN 基础知识2025-11-16 13:00 斑鸠,一生。 阅读(0) 评论(0) 收藏 举报

从Transformer到LLaMA:AI大模型工程化实践完整路径解析

完整的大模型技术指南:涵盖Transformer机制详解、主流模型对比分析,实战演示LLaMA/GLM4训练微调与推理部署流程,包含LangChain应用开发、RAG系统实现、Prompt工程技巧,配套多个企业级应用场景的完整代码。大模型AP…

2025送女生礼物推荐全攻略:从心意到实用的精准选择

2025送女生礼物推荐全攻略:从心意到实用的精准选择一、我对送女生礼物的看法 是否有意义: 作为帮朋友挑礼物踩过不少坑的“过来人”,客观说,选对礼物真的能让心意翻倍。从收礼方来看,贴合兴趣与场景的礼物会让她感…

2025年11月安徽学历提升服务排行情况

摘要 随着职业教育政策的持续利好,2025年安徽省学历提升市场规模预计突破50亿元,在职人员学历提升需求同比增长32%。本文基于教育部备案数据、用户满意度调研及服务覆盖率指标,发布安徽省学历提升服务权威排行榜单。…

2025年国内成人自考机构推荐几家?这份权威榜单给你答案

摘要 2025年国内成人自考教育行业迎来新一轮发展机遇,随着终身学习理念的普及和职业发展需求的提升,成人自考市场规模持续扩大。本文基于权威数据分析和用户口碑评价,为您精选十家优质成人自考机构,并提供详细对比…

2025年质量好的金属防锈漆行业内口碑厂家排行榜

2025年质量好的金属防锈漆行业内口碑厂家排行榜行业背景与市场趋势金属防锈漆作为工业防护涂料的重要组成部分,在建筑、船舶、汽车、桥梁、石油化工等领域发挥着不可替代的作用。随着我国制造业的持续升级和基础设施建…

2025年知名的破碎机厂家选购指南与推荐

2025年知名的破碎机厂家选购指南与推荐行业背景与市场趋势破碎机作为矿山开采、建筑拆除、道路建设等领域的核心设备,其市场需求与基础设施建设投资密切相关。根据中国工程机械工业协会最新数据显示,2024年中国破碎机…

2025年优质的光学真空镀膜机厂家实力及用户口碑排行榜

2025年优质的光学真空镀膜机厂家实力及用户口碑排行榜行业背景与市场趋势光学真空镀膜技术作为现代精密制造领域的关键工艺,近年来随着消费电子、汽车光学、光伏新能源等行业的快速发展,市场需求持续攀升。据《2024-…

完整教程:OSP-0.3.1开源软件包的解压缩与分析

完整教程:OSP-0.3.1开源软件包的解压缩与分析2025-11-16 12:47 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: …

2025年口碑好的全自动玩具充棉机厂家推荐及选购指南

2025年口碑好的全自动玩具充棉机厂家推荐及选购指南行业背景与市场趋势随着全球玩具制造业的持续发展,全自动充棉机作为玩具生产过程中的核心设备,其市场需求呈现稳定增长态势。根据最新发布的《2024-2029年全球玩具…