Doramagic 项目包 · 项目说明书
openai-agents-js 项目
一个轻量而强大的框架,用于构建多智能体工作流和语音代理
Overview and System Architecture
openai-agents-js 是一个面向生产环境的 JavaScript / TypeScript 智能体(Agent)框架,源自 OpenAI 开源的 Agents SDK 系列(与 Python 版本互为镜像)。它的核心目标是让开发者能够以最小代价构建具备工具调用、多智能体协作(handoffs)、会话持久化(sessions)、追踪(tracing)以及实时语音交...
继续阅读本节完整说明和来源证据。
Overview and System Architecture(总览与系统架构)
1. 项目定位与目标
openai-agents-js 是一个面向生产环境的 JavaScript / TypeScript 智能体(Agent)框架,源自 OpenAI 开源的 Agents SDK 系列(与 Python 版本互为镜像)。它的核心目标是让开发者能够以最小代价构建具备工具调用、多智能体协作(handoffs)、会话持久化(sessions)、追踪(tracing)以及实时语音交互能力的 LLM 驱动应用。资料来源:README.md
项目使用 monorepo 方式组织,根目录通过 pnpm-workspace.yaml 统一管理 packages/*、examples/* 和 docs 三个子工作区,所有跨包依赖以 workspace:* 形式链接,便于版本同步与协同发布。资料来源:pnpm-workspace.yaml
2. 包的层次结构与职责划分
整个 SDK 围绕"核心运行时 + 模型适配 + 实时通道 + 扩展适配"四层架构展开,按职责拆分到不同 npm 包中:
| 包名 | 路径 | 主要职责 |
|---|---|---|
@openai/agents-core | packages/agents-core | 提供 Agent、Runner、工具、Guardrail、Tracing 等与模型无关的核心抽象,依赖 zod ^4.0.0 用于 schema 校验。 |
@openai/agents-openai | packages/agents-openai | 负责对接 OpenAI Chat / Responses / Realtime 等模型协议,包括 image_generation 等 provider data 类型定义。 |
@openai/agents-realtime | packages/agents-realtime | 封装 RealtimeSession、TwilioRealtimeTransportLayer 等实时语音通道,处理音频流、转写与 handoff。 |
@openai/agents-extensions | packages/agents-extensions | 提供第三方沙箱(Blaxel / Cloudflare / Daytona / E2B / Modal / Runloop / Vercel)、AI SDK、Codex 等可选扩展。 |
@openai/agents | packages/agents | 一站式 facade,重新导出 sandbox、realtime、utils 等子路径,对应文档站点的"主包"。 |
资料来源:packages/agents-core/package.json、packages/agents-openai/package.json、packages/agents-realtime/package.json、packages/agents-extensions/package.json、packages/agents/package.json
这种分层使得上层业务代码可以仅依赖 @openai/agents 获得完整能力,而想要替换模型或禁用某些功能的用户可按需裁剪依赖。
3. 系统架构与数据流
下图展示了从用户输入到模型响应、再到工具与追踪的端到端架构:
flowchart TD User[用户 / CLI / 实时通道] --> Runner[Runner / RealtimeSession] Runner --> Agent[Agent 配置] Agent --> Tools[Function Tools / Hosted Tools] Agent --> Handoffs[Handoffs 多智能体] Runner --> OpenAI[agents-openai 模型适配] OpenAI --> Model[(OpenAI Chat / Responses / Realtime)] Runner --> Trace[Tracing Span] Runner --> Session[Session / Memory Store] Tools --> Sandbox[agents-extensions 沙箱] Sandbox --> Snap[(本地 / 远程快照)]
资料来源:packages/agents-realtime/src/realtimeSession.ts、examples/sandbox/README.md、examples/tools/README.md
RealtimeSession 内部维护 #lastSessionConfig,用于在 handoff 时保留 inputAudioFormat、outputAudioFormat、modalities、speed 等与传输层强相关的字段,避免 Twilio 等第三方通道在切换 Agent 时被重置为默认值。资料来源:packages/agents-realtime/src/realtimeSession.ts:32-46
4. 示例工程与典型用法
仓库内 examples/ 目录覆盖了主流业务形态:
- Research Bot:多智能体流水线,Planner → Search → Writer 协作产出研究报告。资料来源:examples/research-bot/README.md
- Customer Service:航空客服场景,演示 Triage → FAQ / SeatBooking 的 handoff 模式。资料来源:examples/customer-service/README.md
- Financial Research Agent:在 Writer 之后追加 Verifier 子智能体,实现报告自检。资料来源:examples/financial-research-agent/README.md
- Sandbox:展示
Manifest、本地/容器沙箱、文件系统、Shell、Lazy Skills、快照复用与外部 memory store。资料来源:examples/sandbox/README.md - Tools:覆盖
computer-use、file_search、codex、web_search、code_interpreter、image_generation、shell、容器内 shell skill 等托管工具。资料来源:examples/tools/README.md
5. 关键关注点与社区反馈
从社区高频议题可以反推架构层面的演进方向:
- Zod 4 升级:
@openai/agents-core、@openai/agents-openai、@openai/agents-realtime已在 devDependencies 与 peerDependencies 中统一约束zod ^4.0.0,依赖其原生 JSON Schema 转换能力简化工具调用。资料来源:packages/agents-core/package.json、Issue #561 - 会话与 Memory:社区希望在 TS SDK 中获得与 Python 端一致的 SQLite Session 能力,触发
Session / Memory子系统持续完善。资料来源:Issue #272 - Handoff 健壮性:实时通道下 handoff 后需保留 transport 专属配置,否则会出现 Twilio 音频被覆盖为默认 codec 的"静噪"问题。资料来源:packages/agents-realtime/src/realtimeSession.ts:32-46、Issue #122
- 工具结果与会话 ID 冲突:当传入
conversationId与工具历史混合时,需在 Runner 层去重消息 ID,否则会触发Duplicate item found with id rs_xxx错误。资料来源:Issue #425 - 最新进展(v0.11.6):新增 tracing span 生命周期派发助手、修复流式与 chat completions 场景下 generation span 缺少模型元数据的问题,强化了端到端可观测性。
6. See Also
资料来源:packages/agents-core/package.json、packages/agents-openai/package.json、packages/agents-realtime/package.json、packages/agents-extensions/package.json、packages/agents/package.json
Core Agent Primitives: Tools, Handoffs, Guardrails, and Human-in-the-Loop
OpenAI Agents SDK 是一个轻量级但功能强大的多智能体工作流框架,其核心围绕四大原语(primitives)构建:Tools(工具)、Handoffs(交接)、Guardrails(护栏)以及 Human-in-the-Loop(人在回路)。这些原语通过 Agent 实例组合,形成可观察、可控制、可审计的代理执行流。资料来源:[README.md:1-30]()
继续阅读本节完整说明和来源证据。
1. 概述
OpenAI Agents SDK 是一个轻量级但功能强大的多智能体工作流框架,其核心围绕四大原语(primitives)构建:Tools(工具)、Handoffs(交接)、Guardrails(护栏)以及 Human-in-the-Loop(人在回路)。这些原语通过 Agent 实例组合,形成可观察、可控制、可审计的代理执行流。资料来源:README.md:1-30
SDK 采用分层包结构:@openai/agents-core 暴露核心抽象(Agent、Tool、Handoff、Guardrail),@openai/agents-realtime 扩展支持实时语音场景。资料来源:packages/agents-core/package.json:1-20、packages/agents-realtime/package.json:1-20。所有运行时配置均要求 Node.js 22 环境,并使用 Zod 4 作为模式验证的同级依赖。资料来源:packages/agents-realtime/package.json:18-21。
2. 工具(Tools)
工具是让代理"采取行动"的可调用能力。SDK 支持多种工具类型:
- 函数工具(Function tools):通过
tool()工厂函数与 Zod schema 定义参数。 - 代理即工具(Agents as tools):将其他
Agent实例作为工具调用。 - MCP 工具:与模型上下文协议服务器集成。
- 托管工具(Hosted tools):包括
webSearchTool、fileSearchTool、codeInterpreterTool、computer-use等。资料来源:README.md:21-28。
Tool 类型在源码中定义为 FunctionTool、HostedMCPTool 等联合类型,其核心结构包含 invokeFunctionTool 调用入口与 ToolErrorFormatter 错误格式化器。资料来源:packages/agents-realtime/src/realtimeSession.ts:1-30
import { tool, Agent, run } from '@openai/agents';
import { z } from 'zod';
const getWeather = tool({
name: 'get_weather',
description: '获取指定城市天气',
parameters: z.object({ city: z.string() }),
execute: async ({ city }) => `城市 ${city} 晴`,
});
3. 交接(Handoffs)
交接机制允许一个 Agent 在对话中将控制权委派给另一个 Agent。源代理在响应中产出结构化交接指令,运行时切换活跃代理并保留上下文。资料来源:packages/agents-core/src/handoff.ts:1-20
realtimeSession.ts 中的 getTransferMessage 辅助函数在实时场景下生成交接消息,确保新代理接管的连续性。资料来源:packages/agents-realtime/src/realtimeSession.ts:6-10
社区报告(Issue #122)指出在 TwilioRealtimeTransportLayer 与 RealtimeAgent 配合时,交接可能引发音频流异常(类似"静电噪声"),这表明实时交接的传输层稳定性仍是活跃关注点。
4. 护栏(Guardrails)
护栏提供输入和输出的可配置安全检查。SDK 在 guardrail.ts 中定义基础类型,并在 realtimeSession.ts 中引入 defineRealtimeOutputGuardrail 与 RealtimeOutputGuardrail 专用实现。资料来源:packages/agents-realtime/src/realtimeSession.ts:16-24
OutputGuardrailTripwireTriggered 是关键异常类型,当输出未通过验证时抛出,调用方可据此终止运行。OutputGuardrailFunctionArgs 携带上下文与代理输出供检查函数使用。资料来源:packages/agents-realtime/src/realtimeSession.ts:8-14
5. 人在回路(Human-in-the-Loop)
该机制在代理执行敏感操作(如工具调用)前暂停,等待人类审批。SDK 内置 RunToolApprovalItem 表示待审批项,可与 invokeFunctionTool 协作完成审批-执行闭环。资料来源:packages/agents-realtime/src/realtimeSession.ts:9-13
实际工程中通常结合 Session 持久化与 Tracing 追踪一起使用。社区 Issue #272 反映了用户对 SQLite 会话支持的强烈需求(Python SDK 已有该能力),而 Issue #425 揭示了在 conversationId + 工具组合场景下出现 Duplicate item found with id rs_xxx 的请求错误,提示开发者在涉及历史会话与工具调用去重时需谨慎处理。
6. 组合模式示例
customer-service 示例展示了分流代理 → FAQ 代理 → 座位预订代理的多级交接与工具调用链路。资料来源:examples/customer-service/README.md:1-7。research-bot 示例则演示了规划 → 搜索 → 写作的串行多代理流水线。资料来源:examples/research-bot/README.md:1-15。
graph LR
A[User Input] --> B[Guardrail Check]
B --> C{Agent Run}
C -->|Tool Call| D[Human Approval]
D -->|Approved| E[Execute Tool]
C -->|Handoff| F[Next Agent]
E --> G[Output Guardrail]
F --> G
G --> H[Final Response]See Also
- Realtime Voice Agents Quickstart
- Sessions and Memory Management
- Tracing and Observability
- MCP Server Integration
来源:https://github.com/openai/openai-agents-js / 项目说明书
Sandbox Agents, Sessions, and Memory
OpenAI Agents SDK 的"沙箱"子系统为 Agent 提供了一套隔离、可恢复、带文件系统与 Shell 能力的工作环境,并在此之上构建出会话(Session)生命周期与工作区记忆(Memory)机制。本页聚焦 Manifest、SandboxAgent、本地 / Docker 后端、快照恢复以及工作区记忆模型。
继续阅读本节完整说明和来源证据。
整体架构与定位
@openai/agents-core/sandbox 暴露了所有沙箱相关 API,@openai/agents 通过 export * from '@openai/agents-core/sandbox' 统一对外转发 资料来源:packages/agents/src/sandbox/index.ts:1-1。packages/agents-core/package.json 的 typesVersions 中已经声明了 sandbox、sandbox/local、sandbox/internal 三个子路径导出 资料来源:packages/agents-core/package.json:1-30;@openai/agents 同样将 sandbox 与 sandbox/local 作为公共子路径发布 资料来源:packages/agents/package.json:1-25。这种分层让核心逻辑与上层 agent 框架解耦,云端扩展(Blaxel、Cloudflare、Daytona、E2B、Modal 等)由 packages/agents-extensions 单独提供 资料来源:examples/sandbox/README.md:1-30。
graph LR App[用户应用与 Examples] --> Agents[@openai/agents<br/>sandbox 子路径] Agents --> Core[@openai/agents-core/sandbox] Ext[@openai/agents-extensions<br/>云端后端] --> Core Core --> Local[UnixLocalBackend] Core --> Docker[DockerBackend] Core --> Memory[外部记忆存储接口] Core --> Snap[远程快照接口] Core --> Agent[SandboxAgent + Manifest]
SandboxAgent 与 Manifest
Manifest 描述了一次沙箱会话的初始配置(依赖、技能、文件系统布局等),SandboxAgent 则是把普通 Agent 与沙箱能力组合起来的封装。examples/sandbox/README.md 给出的小型示例覆盖了最常见用法:basic.ts 演示从 Manifest 创建会话并运行 SandboxAgent;sandbox-agent-capabilities.ts 配置文件系统、Shell、镜像、补丁、compaction 以及 lazy skill 等能力 资料来源:examples/sandbox/README.md:1-30。SandboxAgent 还能与宿主函数工具组合(sandbox-agent-with-tools.ts),或被另一个 agent 暴露为工具(sandbox-agents-as-tools.ts),这与 SDK 中"agents as tools"的设计保持一致 资料来源:examples/sandbox/README.md:1-30。
会话生命周期与快照
沙箱会话通过 Manifest 启动,并可在多轮之间复用。resume.ts 演示了从本地快照恢复执行环境的用法 资料来源:examples/sandbox/README.md:1-30。JavaScript SDK 故意将远程快照和记忆存储设计为通用接口;S3、GCS、R2、Azure 等云端便捷实现被有意留到扩展包或业务代码中,以避免核心包引入额外的 provider 依赖 资料来源:examples/sandbox/README.md:1-30。在 start:coding-task 这类长任务中,agent 可以检查代码仓、应用补丁并通过一条命令验证修复,体现了沙箱 + 快照 + 会话三者的协同 资料来源:examples/sandbox/data/coding-task/repo/README.md:1-5。后端层面,仓库内建了 unixLocal.ts(含交互式 PTY,参见 unix-local-pty.ts)与 docker.ts 两种实现 资料来源:examples/sandbox/README.md:1-30。
工作区记忆与多 Agent 共享
记忆层是社区长期关注的特性,Issue #272 曾请求在 TS SDK 中加入类似 Python 的 SQLite 会话支持 资料来源:community context: Issue #272。当前实现提供了多种记忆形式:memory.ts 演示使用工作区文件配合本地快照恢复;memory-generation.ts 演示当会话被刷新时自动执行 Phase 1 / Phase 2 沙箱记忆生成 资料来源:examples/sandbox/README.md:1-30。memory-multi-agent-multiturn.ts 进一步验证两个 agent 共享同一沙箱工作区时各自记忆布局仍然相互隔离 资料来源:examples/sandbox/README.md:1-30。
常见失败模式与注意要点
- 依赖版本:所有沙箱相关示例都将
zod固定为^4.0.0资料来源:examples/sandbox/package.json:1-15;核心包对zod的依赖为可选资料来源:packages/agents-core/package.json:1-40,升级或降级 Zod 时需同步检查 Manifest 中的 Schema 定义。 - 后端选择:默认由
UnixLocalBackend提供,便于 CI / 本地调试;生产环境可切换为DockerBackend或云端扩展;多 PTY 交互场景需使用unix-local-pty.ts资料来源:examples/sandbox/README.md:1-30。 - 会话标识与工具副作用:当
Agent同时使用conversationId与工具时,可能遇到 "Duplicate item found with id rs_xxx" 错误(Issue #425),这与沙箱本身无关,但和"会话标识 + 工具调用"的副作用叠加相关,需在自定义会话实现中做去重资料来源:community context: Issue #425。
See Also
- Tools Overview —— 沙箱能力与宿主函数工具的组合
- Voice Agents (Realtime) —— 实时语音场景下的会话管理
- Examples Index —— 沙箱相关示例入口(
pnpm -F sandbox start:*)
来源:https://github.com/openai/openai-agents-js / 项目说明书
Realtime Voice Agents, Tracing, and Model Integration
openai-agents-js 是一个用于构建多智能体工作流与实时语音代理(Realtime Voice Agents)的轻量级框架,由 @openai/agents-core 与 @openai/agents-realtime 两个核心包组成,配套示例覆盖研究机器人、客服、财务分析和工具集成等场景 README.md:1-40、packages/agents/READM...
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
Realtime Voice Agents、追踪与模型集成
概述
openai-agents-js 是一个用于构建多智能体工作流与实时语音代理(Realtime Voice Agents)的轻量级框架,由 @openai/agents-core 与 @openai/agents-realtime 两个核心包组成,配套示例覆盖研究机器人、客服、财务分析和工具集成等场景 README.md:1-40、packages/agents/README.md:1-40。
在 v0.11.6 发布中,项目显著加强了追踪(Tracing)与生成跨度(Generation Span)的能力:
feat: add tracing span lifecycle dispatch helpers(由 PR #1372 引入),为追踪跨度生命周期事件提供派发器;fix: set model metadata on generation span in streaming + chat completions(由 PR #1368 引入),确保在流式与聊天补全路径中正确写入模型元数据 Release v0.11.6。
本页聚焦于三大主题:实时语音代理架构、客户端消息与模型配置,以及追踪与生成跨度的集成。
Realtime 语音代理架构
RealtimeAgent 与普通 Agent 的差异
RealtimeAgent 是为 RealtimeSession 设计的专用代理类,继承自 Agent,但显式禁用了多项普通 Agent 的配置项,因为整个会话共享同一个模型实例:
| 不支持的配置 | 原因 |
|---|---|
model | 整个 RealtimeSession 由同一模型处理 |
modelSettings | 模型设置在会话级别统一 |
outputType | Realtime 不支持结构化输出 |
toolUseBehavior | 由会话统一管理 |
resetToolChoice | 由会话统一管理 |
outputGuardrails / inputGuardrails | Realtime 会话统一管理 |
唯一可在代理级别配置、并随 handoff 切换的是 voice,但需注意:在第一个代理发声后,更换 voice 将导致 handoff 失败 packages/agents-realtime/src/realtimeAgent.ts:30-100。
传输层(Transport Layer)选择
@openai/agents-realtime 通过可插拔的传输层适配不同部署场景,源码层面在 transportLayer.ts 中抽象出统一接口,并在以下文件中提供实现:
openaiRealtimeWebRtc.ts:基于 WebRTC 的浏览器侧低延迟音频;openaiRealtimeWebsocket.ts:基于ws的服务端 / Node 场景;openaiRealtimeSip.ts:对接 OpenAI SIP 接口,支持realtime.call.incoming事件(参见examples/realtime-twilio-sip/README.md中的说明)。
传输层负责把 Realtime 会话与底层媒体网关解耦,使同一个 RealtimeSession 既可跑在浏览器中,也可用于电话或 SIP 接入。
整体架构
flowchart TB
subgraph Client[客户端 / 浏览器]
UI[Web UI / Vite 应用]
WS[WebSocket 或 WebRTC]
end
subgraph SDK[@openai/agents-realtime]
RA[RealtimeAgent]
RS[RealtimeSession]
TL[TransportLayer]
MSG[clientMessages 类型]
end
subgraph Server[服务端 / 后端]
SIP[OpenAI SIP / Twilio]
OpenAI[OpenAI Realtime API]
end
UI --> RS
RS --> RA
RS --> TL
TL --> WS
TL --> SIP
TL --> OpenAI
MSG -.协议定义.-> TL资料来源:packages/agents-realtime/src/realtimeSession.ts、packages/agents-realtime/src/transportLayer.ts、examples/realtime-demo/README.md、examples/realtime-twilio-sip/README.md
模型集成与客户端消息协议
会话配置
clientMessages.ts 定义了 Realtime 会话的全部配置形态:
RealtimeSessionConfigDefinition:新式配置,使用outputModalities与audio.output.voice;RealtimeSessionConfigDeprecated:旧式配置,使用modalities与顶层voice(已弃用,不可与新字段混用)packages/agents-realtime/src/clientMessages.ts:23-58。
model 是所有会话配置共有的必填字段,instructions、toolChoice、tools 在新旧配置中均存在;可选的 reasoning.effort 支持 minimal | low | medium | high | xhigh 五档 packages/agents-realtime/src/clientMessages.ts:9-22。
音频与轮次检测
音频输入支持 noiseReduction、transcription 与 turnDetection 三个子模块。turnDetection 同时提供 snake_case(RealtimeTurnDetectionConfigAsIs)和 camelCase(RealtimeTurnDetectionConfigCamelCase)两种形态——SDK 会在发送给 OpenAI 实时 API 时统一转为 snake_case packages/agents-realtime/src/clientMessages.ts:60-110。
音频输出可独立配置 voice 与 speed,这是替代已弃用顶层 voice 字段的现代写法 packages/agents-realtime/src/clientMessages.ts:112-126。
依赖与运行时
@openai/agents-realtime 的 peerDependencies 显式要求 zod: ^4.0.0,这意味着社区曾提出的 Zod 4 升级诉求(Issue #561)在最新版本中已经落地;同时 ws 与 @types/ws 共同支撑了 WebSocket 传输层 packages/agents-realtime/package.json:36-46。
追踪与生成跨度
v0.11.6 引入了追踪跨度生命周期派发器,使上层应用可以订阅 span 的创建、结束等事件;同一版本修复了在流式与 chat completions 路径下生成跨度(generation span)缺失 model 元数据的问题 Release v0.11.6。
对于普通 Agent,Agent 基础类型仍由 @openai/agents-core 提供,输出 dist/index.js、dist/index.mjs 与对应的 *.d.ts,并通过 subpath exports 暴露 ./model、./utils、./extensions 与 ./sandbox 等模块 packages/agents-core/package.json:17-50。
基础示例 examples/basic 中包含了 lifecycle-example.ts 与 agent-lifecycle-example.ts,演示如何订阅代理与运行的完整生命周期事件;stream-ws.ts 则展示了 Responses WebSocket 流式输出与工具调用、previousResponseId 续传 examples/basic/README.md:14-24。这些 lifecycle 钩子是上层接入追踪派发器最自然的位置。
社区已知问题与本页主题的关联
- Issue #122:在
TwilioRealtimeTransportLayer中触发RealtimeAgent间的 handoff 时,会出现语音卡顿、类似静电噪声的损坏音频流,并伴随代理停止响应——这正暴露了 Realtime handoff 路径上 audio/voice 切换尚未完全稳定的风险点。 - Issue #425:在普通 Agent 中使用
tool+conversationId时会触发Duplicate item found with id rs_xxx错误,表明在多轮会话状态复用上仍需要谨慎管理响应 ID 与工具调用结果的去重。 - Issue #710:OpenAI SIP 工具调用期间无法注入提示音,用户会误判为"无活动"——这与
openaiRealtimeSip.ts当前未暴露音频注入能力有关。 - Issue #272:社区希望加入类似 Python SDK 的 SQLite session 支持;目前 TS SDK 的会话持久化仍需用户自行实现。
故障排查与最佳实践
- Realtime 选型:在浏览器中使用
openaiRealtimeWebRtc获得最低延迟;在 Node 服务端使用openaiRealtimeWebsocket;接入电话系统时使用openaiRealtimeSip+ Twilio examples/realtime-twilio-sip/README.md。 - 避免 handoff 损坏:在第一个代理发声后不要再改变
voice,并尽量减少 Realtime 链路中的代理切换 packages/agents-realtime/src/realtimeAgent.ts:30-100。 - 追踪集成:升级到 v0.11.6+,使用新增的 span 生命周期派发器,并留意生成跨度的
model元数据是否正确填充 Release v0.11.6。 - Zod 版本:确保安装的
zod满足^4.0.0,否则工具 schema 验证可能因 peer 依赖不匹配而失败 packages/agents-realtime/package.json:36-46。
See Also
- 官方文档站 — 包含 Realtime、Voice Agents Quickstart 等深度指南。
examples/realtime-demo— Vite 浏览器实时语音演示。examples/realtime-twilio-sip— Twilio + SIP 接入示例。examples/basic— 生命周期与流式响应基础示例。examples/tools— 托管工具(Computer Use、File Search、Codex、Web Search 等)集成示例。
资料来源:packages/agents-realtime/src/realtimeSession.ts、packages/agents-realtime/src/transportLayer.ts、examples/realtime-demo/README.md、examples/realtime-twilio-sip/README.md
失败模式与踩坑日记
保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。
可能增加新用户试用和生产接入成本。
可能影响授权、密钥配置或安全边界。
用户照着仓库名搜索包或照着包名找仓库时容易走错入口。
假设不成立时,用户拿不到承诺的能力。
Pitfall Log / 踩坑日志
项目:openai/openai-agents-js
摘要:发现 10 个潜在踩坑项,其中 2 个为 high/blocking;最高优先级:运行坑 - 来源证据:Run a tool input guardrail before any human in the loop approval。
1. 运行坑 · 来源证据:Run a tool input guardrail before any human in the loop approval
- 严重度:high
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个运行相关的待验证问题:Run a tool input guardrail before any human in the loop approval
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/openai/openai-agents-js/issues/1335 | 来源类型 github_issue 暴露的待验证使用条件。
2. 安全/权限坑 · 来源证据:Add server-side max_session_duration_seconds to Ephemeral Tokens (Realtime API)
- 严重度:high
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:Add server-side max_session_duration_seconds to Ephemeral Tokens (Realtime API)
- 对用户的影响:可能影响授权、密钥配置或安全边界。
- 证据:community_evidence:github | https://github.com/openai/openai-agents-js/issues/1278 | 来源类型 github_issue 暴露的待验证使用条件。
3. 身份坑 · 仓库名和安装名不一致
- 严重度:medium
- 证据强度:runtime_trace
- 发现:仓库名
openai-agents-js与安装入口@openai/agents不完全一致。 - 对用户的影响:用户照着仓库名搜索包或照着包名找仓库时容易走错入口。
- 复现命令:
npm install @openai/agents - 证据:identity.distribution | github_repo:993521808 | https://github.com/openai/openai-agents-js | repo=openai-agents-js; install=@openai/agents
4. 能力坑 · 能力判断依赖假设
- 严重度:medium
- 证据强度:source_linked
- 发现:README/documentation is current enough for a first validation pass.
- 对用户的影响:假设不成立时,用户拿不到承诺的能力。
- 证据:capability.assumptions | github_repo:993521808 | https://github.com/openai/openai-agents-js | README/documentation is current enough for a first validation pass.
5. 维护坑 · 维护活跃度未知
- 严重度:medium
- 证据强度:source_linked
- 发现:未记录 last_activity_observed。
- 对用户的影响:新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。
- 证据:evidence.maintainer_signals | github_repo:993521808 | https://github.com/openai/openai-agents-js | last_activity_observed missing
- 严重度:medium
- 证据强度:source_linked
- 发现:no_demo
- 证据:downstream_validation.risk_items | github_repo:993521808 | https://github.com/openai/openai-agents-js | no_demo; severity=medium
7. 安全/权限坑 · 存在评分风险
- 严重度:medium
- 证据强度:source_linked
- 发现:no_demo
- 对用户的影响:风险会影响是否适合普通用户安装。
- 证据:risks.scoring_risks | github_repo:993521808 | https://github.com/openai/openai-agents-js | no_demo; severity=medium
8. 安全/权限坑 · 来源证据:First-Class Support for External Governance and Approval Workflows
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:First-Class Support for External Governance and Approval Workflows
- 对用户的影响:可能影响授权、密钥配置或安全边界。
- 证据:community_evidence:github | https://github.com/openai/openai-agents-js/issues/1373 | 来源类型 github_issue 暴露的待验证使用条件。
9. 维护坑 · issue/PR 响应质量未知
- 严重度:low
- 证据强度:source_linked
- 发现:issue_or_pr_quality=unknown。
- 对用户的影响:用户无法判断遇到问题后是否有人维护。
- 证据:evidence.maintainer_signals | github_repo:993521808 | https://github.com/openai/openai-agents-js | issue_or_pr_quality=unknown
10. 维护坑 · 发布节奏不明确
- 严重度:low
- 证据强度:source_linked
- 发现:release_recency=unknown。
- 对用户的影响:安装命令和文档可能落后于代码,用户踩坑概率升高。
- 证据:evidence.maintainer_signals | github_repo:993521808 | https://github.com/openai/openai-agents-js | release_recency=unknown
来源:Doramagic 发现、验证与编译记录