惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Recent Announcements
Recent Announcements
D
Docker
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
The GitHub Blog
The GitHub Blog
U
Unit 42
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
腾讯CDC
B
Blog
博客园_首页
罗磊的独立博客
D
DataBreaches.Net
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
MongoDB | Blog
MongoDB | Blog
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence

Workflow SDK Documentation

Patterns for Defining Tools Human-in-the-Loop Building Durable AI Agents Queueing User Messages Resumable Streams Sleep, Suspense, and Scheduling Streaming Updates from Tools API Reference Workflow Globals Changelog Resilient run start Cookbook Building a World Deploying Astro Express Fastify Hono Getting Started NestJS Next.js Nitro Nuxt Python SvelteKit Vite corrupted-event-log fetch-in-workflow hook-conflict Errors
observabilityRevivers
2026-06-12 · via Workflow SDK Documentation

Standard reviver functions for deserializing workflow data types in observability tools.

A set of reviver functions that handle the workflow serialization format's workflow-specific types — streams, step/workflow function references, class instances, AbortController/AbortSignal, and DOMException — reviving them as display-friendly marker objects or strings. Built-in JavaScript types (Date, Map, Set, RegExp, etc.) are handled by the devalue format itself and need no revivers.

Pass it as the revivers argument to hydrateResourceIO() or hydrateData().

import { hydrateResourceIO, observabilityRevivers } from "workflow/observability"; 
import type { Step } from "@workflow/world";
declare const step: Step; // @setup

const hydrated = hydrateResourceIO(step, observabilityRevivers); 
import type { Revivers } from "workflow/observability";

declare const observabilityRevivers: Revivers;

Where Revivers is:

type Revivers = Record<string, (value: any) => any>;

Each key is a serialized type tag, and each function revives a serialized value of that type. You can spread observabilityRevivers into a custom reviver map to override how specific types are displayed:

import { hydrateData, observabilityRevivers } from "workflow/observability";
declare const value: unknown; // @setup

const customRevivers = {
  ...observabilityRevivers,
  // Render stream references as plain strings instead of marker objects
  ReadableStream: () => "<stream>",
};

const hydrated = hydrateData(value, customRevivers);