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-corepackages/agents-core提供 AgentRunner、工具、Guardrail、Tracing 等与模型无关的核心抽象,依赖 zod ^4.0.0 用于 schema 校验。
@openai/agents-openaipackages/agents-openai负责对接 OpenAI Chat / Responses / Realtime 等模型协议,包括 image_generation 等 provider data 类型定义。
@openai/agents-realtimepackages/agents-realtime封装 RealtimeSessionTwilioRealtimeTransportLayer 等实时语音通道,处理音频流、转写与 handoff。
@openai/agents-extensionspackages/agents-extensions提供第三方沙箱(Blaxel / Cloudflare / Daytona / E2B / Modal / Runloop / Vercel)、AI SDK、Codex 等可选扩展。
@openai/agentspackages/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 时保留 inputAudioFormatoutputAudioFormatmodalitiesspeed 等与传输层强相关的字段,避免 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-usefile_searchcodexweb_searchcode_interpreterimage_generationshell、容器内 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 暴露核心抽象(AgentToolHandoffGuardrail),@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):包括 webSearchToolfileSearchToolcodeInterpreterToolcomputer-use 等。资料来源:README.md:21-28。

Tool 类型在源码中定义为 FunctionToolHostedMCPTool 等联合类型,其核心结构包含 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)指出在 TwilioRealtimeTransportLayerRealtimeAgent 配合时,交接可能引发音频流异常(类似"静电噪声"),这表明实时交接的传输层稳定性仍是活跃关注点。

4. 护栏(Guardrails)

护栏提供输入和输出的可配置安全检查。SDK 在 guardrail.ts 中定义基础类型,并在 realtimeSession.ts 中引入 defineRealtimeOutputGuardrailRealtimeOutputGuardrail 专用实现。资料来源: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-1packages/agents-core/package.jsontypesVersions 中已经声明了 sandboxsandbox/localsandbox/internal 三个子路径导出 资料来源:packages/agents-core/package.json:1-30@openai/agents 同样将 sandboxsandbox/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 创建会话并运行 SandboxAgentsandbox-agent-capabilities.ts 配置文件系统、Shell、镜像、补丁、compaction 以及 lazy skill 等能力 资料来源:examples/sandbox/README.md:1-30SandboxAgent 还能与宿主函数工具组合(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-30memory-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

来源: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...

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 RealtimeAgent 与普通 Agent 的差异

继续阅读本节完整说明和来源证据。

章节 传输层(Transport Layer)选择

继续阅读本节完整说明和来源证据。

章节 整体架构

继续阅读本节完整说明和来源证据。

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模型设置在会话级别统一
outputTypeRealtime 不支持结构化输出
toolUseBehavior由会话统一管理
resetToolChoice由会话统一管理
outputGuardrails / inputGuardrailsRealtime 会话统一管理

唯一可在代理级别配置、并随 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:新式配置,使用 outputModalitiesaudio.output.voice
  • RealtimeSessionConfigDeprecated:旧式配置,使用 modalities 与顶层 voice(已弃用,不可与新字段混用)packages/agents-realtime/src/clientMessages.ts:23-58。

model 是所有会话配置共有的必填字段,instructionstoolChoicetools 在新旧配置中均存在;可选的 reasoning.effort 支持 minimal | low | medium | high | xhigh 五档 packages/agents-realtime/src/clientMessages.ts:9-22。

音频与轮次检测

音频输入支持 noiseReductiontranscriptionturnDetection 三个子模块。turnDetection 同时提供 snake_caseRealtimeTurnDetectionConfigAsIs)和 camelCaseRealtimeTurnDetectionConfigCamelCase)两种形态——SDK 会在发送给 OpenAI 实时 API 时统一转为 snake_case packages/agents-realtime/src/clientMessages.ts:60-110。

音频输出可独立配置 voicespeed,这是替代已弃用顶层 voice 字段的现代写法 packages/agents-realtime/src/clientMessages.ts:112-126。

依赖与运行时

@openai/agents-realtimepeerDependencies 显式要求 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.jsdist/index.mjs 与对应的 *.d.ts,并通过 subpath exports 暴露 ./model./utils./extensions./sandbox 等模块 packages/agents-core/package.json:17-50。

基础示例 examples/basic 中包含了 lifecycle-example.tsagent-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 的会话持久化仍需用户自行实现。

故障排查与最佳实践

  1. Realtime 选型:在浏览器中使用 openaiRealtimeWebRtc 获得最低延迟;在 Node 服务端使用 openaiRealtimeWebsocket;接入电话系统时使用 openaiRealtimeSip + Twilio examples/realtime-twilio-sip/README.md。
  2. 避免 handoff 损坏:在第一个代理发声后不要再改变 voice,并尽量减少 Realtime 链路中的代理切换 packages/agents-realtime/src/realtimeAgent.ts:30-100。
  3. 追踪集成:升级到 v0.11.6+,使用新增的 span 生命周期派发器,并留意生成跨度的 model 元数据是否正确填充 Release v0.11.6
  4. Zod 版本:确保安装的 zod 满足 ^4.0.0,否则工具 schema 验证可能因 peer 依赖不匹配而失败 packages/agents-realtime/package.json:36-46。

See Also

资料来源:packages/agents-realtime/src/realtimeSession.ts、packages/agents-realtime/src/transportLayer.ts、examples/realtime-demo/README.md、examples/realtime-twilio-sip/README.md

失败模式与踩坑日记

保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。

high 来源证据:Run a tool input guardrail before any human in the loop approval

可能增加新用户试用和生产接入成本。

high 来源证据:Add server-side max_session_duration_seconds to Ephemeral Tokens (Realtime API)

可能影响授权、密钥配置或安全边界。

medium 仓库名和安装名不一致

用户照着仓库名搜索包或照着包名找仓库时容易走错入口。

medium 能力判断依赖假设

假设不成立时,用户拿不到承诺的能力。

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 发现、验证与编译记录