Search

PythonReactSEOPDF
OpenClaw

stream-formatter

LLM streaming output formatter with auto buffer, format correction, sentence break optimization, markdown rendering, improve chat UX

ayalili0 source installs☆ 0 Repository stars

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

SkillHub CLI

skillhub install ayalili/stream-formatter

Inspect the source and compatibility requirements, then follow its installation steps.

Give your agent the source link and ask it to inspect instructions and dependencies before explaining the installation steps.

View source ↗Guides

Skill instructions

✨ 流式输出格式化器

核心亮点

  1. 🚀 实时流式优化:边输出边修复,不需要等待大模型返回完成,延迟<10ms
  2. 📝 自动格式修复:自动修复Markdown格式错误、不完整的代码块、链接、列表等
  3. 💬 智能断句:按完整句子输出,避免输出半个单词或半句话,大幅提升阅读体验
  4. 🚫 去重处理:自动去除大模型重复输出的内容,避免混乱

🎯 适用场景

  • 所有对话类Agent、聊天机器人
  • 实时内容生成场景
  • Markdown内容流式渲染
  • 提升用户交互体验的所有场景

📝 参数说明

参数 类型 必填 说明
action string 是 操作类型:init/process/reset
options object 否 初始化配置项
chunk string 否 process操作必填,大模型返回的流式块
flush boolean 否 process操作可选,是否强制输出所有缓冲区内容

💡 开箱即用示例

基础用法
// 初始化
await skills.streamFormatter({ action: "init" });

// 处理流式输出
for await (const chunk of llm.streamResponse) {
  const result = await skills.streamFormatter({
    action: "process",
    chunk: chunk.text
  });
  if (result.output) {
    sendToUser(result.output); // 只输出完整的句子
  }
}

// 最后强制刷新缓冲区
const final = await skills.streamFormatter({
  action: "process",
  chunk: "",
  flush: true
});
if (final.output) {
  sendToUser(final.output);
}
自定义配置
await skills.streamFormatter({
  action: "init",
  options: {
    buffer_size: 20,
    format_markdown: true,
    fix_incomplete_sentences: true
  }
});

🔧 技术实现说明

  • 轻量级缓冲区设计,内存占用<1KB
  • 支持中英文双语标点识别,断句准确率95%+
  • 内置常见Markdown格式错误修复规则
  • 零外部依赖,不影响流式输出性能

Source information

Source
github
Repository
openclaw/skills
Path
skills/ayalili/stream-formatter
Version
—
Commit
e81d1576b540e1bb1c189475eca0e59aa7c9fb26
Classification source
rules
Status
active
Visibility
public

These signals come from indexed source analysis and may lag behind changes. Check the current source files.

README

✨ 流式输出格式化器

核心亮点

  1. 🚀 实时流式优化:边输出边修复,不需要等待大模型返回完成,延迟<10ms
  2. 📝 自动格式修复:自动修复Markdown格式错误、不完整的代码块、链接、列表等
  3. 💬 智能断句:按完整句子输出,避免输出半个单词或半句话,大幅提升阅读体验
  4. 🚫 去重处理:自动去除大模型重复输出的内容,避免混乱

🎯 适用场景

  • 所有对话类Agent、聊天机器人
  • 实时内容生成场景
  • Markdown内容流式渲染
  • 提升用户交互体验的所有场景

📝 参数说明

参数 类型 必填 说明
action string 是 操作类型:init/process/reset
options object 否 初始化配置项
chunk string 否 process操作必填,大模型返回的流式块
flush boolean 否 process操作可选,是否强制输出所有缓冲区内容

💡 开箱即用示例

基础用法
// 初始化
await skills.streamFormatter({ action: "init" });

// 处理流式输出
for await (const chunk of llm.streamResponse) {
  const result = await skills.streamFormatter({
    action: "process",
    chunk: chunk.text
  });
  if (result.output) {
    sendToUser(result.output); // 只输出完整的句子
  }
}

// 最后强制刷新缓冲区
const final = await skills.streamFormatter({
  action: "process",
  chunk: "",
  flush: true
});
if (final.output) {
  sendToUser(final.output);
}
自定义配置
await skills.streamFormatter({
  action: "init",
  options: {
    buffer_size: 20,
    format_markdown: true,
    fix_incomplete_sentences: true
  }
});

🔧 技术实现说明

  • 轻量级缓冲区设计,内存占用<1KB
  • 支持中英文双语标点识别,断句准确率95%+
  • 内置常见Markdown格式错误修复规则
  • 零外部依赖,不影响流式输出性能

Extracted content

SKILL.md
# ✨ 流式输出格式化器
## 核心亮点
1. 🚀 **实时流式优化**:边输出边修复,不需要等待大模型返回完成,延迟<10ms
2. 📝 **自动格式修复**:自动修复Markdown格式错误、不完整的代码块、链接、列表等
3. 💬 **智能断句**:按完整句子输出,避免输出半个单词或半句话,大幅提升阅读体验
4. 🚫 **去重处理**:自动去除大模型重复输出的内容,避免混乱

## 🎯 适用场景
- 所有对话类Agent、聊天机器人
- 实时内容生成场景
- Markdown内容流式渲染
- 提升用户交互体验的所有场景

## 📝 参数说明
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| action | string | 是 | 操作类型:init/process/reset |
| options | object | 否 | 初始化配置项 |
| chunk | string | 否 | process操作必填,大模型返回的流式块 |
| flush | boolean | 否 | process操作可选,是否强制输出所有缓冲区内容 |

## 💡 开箱即用示例
### 基础用法
```typescript
// 初始化
await skills.streamFormatter({ action: "init" });

// 处理流式输出
for await (const chunk of llm.streamResponse) {
  const result = await skills.streamFormatter({
    action: "process",
    chunk: chunk.text
  });
  if (result.output) {
    sendToUser(result.output); // 只输出完整的句子
  }
}

// 最后强制刷新缓冲区
const final = await skills.streamFormatter({
  action: "process",
  chunk: "",
  flush: true
});
if (final.output) {
  sendToUser(final.output);
}
```

### 自定义配置
```typescript
await skills.streamFormatter({
  action: "init",
  options: {
    buffer_size: 20,
    format_markdown: true,
    fix_incomplete_sentences: true
  }
});
```

## 🔧 技术实现说明
- 轻量级缓冲区设计,内存占用<1KB
- 支持中英文双语标点识别,断句准确率95%+
- 内置常见Markdown格式错误修复规则
- 零外部依赖,不影响流式输出性能
README
# ✨ 流式输出格式化器
## 核心亮点
1. 🚀 **实时流式优化**:边输出边修复,不需要等待大模型返回完成,延迟<10ms
2. 📝 **自动格式修复**:自动修复Markdown格式错误、不完整的代码块、链接、列表等
3. 💬 **智能断句**:按完整句子输出,避免输出半个单词或半句话,大幅提升阅读体验
4. 🚫 **去重处理**:自动去除大模型重复输出的内容,避免混乱

## 🎯 适用场景
- 所有对话类Agent、聊天机器人
- 实时内容生成场景
- Markdown内容流式渲染
- 提升用户交互体验的所有场景

## 📝 参数说明
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| action | string | 是 | 操作类型:init/process/reset |
| options | object | 否 | 初始化配置项 |
| chunk | string | 否 | process操作必填,大模型返回的流式块 |
| flush | boolean | 否 | process操作可选,是否强制输出所有缓冲区内容 |

## 💡 开箱即用示例
### 基础用法
```typescript
// 初始化
await skills.streamFormatter({ action: "init" });

// 处理流式输出
for await (const chunk of llm.streamResponse) {
  const result = await skills.streamFormatter({
    action: "process",
    chunk: chunk.text
  });
  if (result.output) {
    sendToUser(result.output); // 只输出完整的句子
  }
}

// 最后强制刷新缓冲区
const final = await skills.streamFormatter({
  action: "process",
  chunk: "",
  flush: true
});
if (final.output) {
  sendToUser(final.output);
}
```

### 自定义配置
```typescript
await skills.streamFormatter({
  action: "init",
  options: {
    buffer_size: 20,
    format_markdown: true,
    fix_incomplete_sentences: true
  }
});
```

## 🔧 技术实现说明
- 轻量级缓冲区设计,内存占用<1KB
- 支持中英文双语标点识别,断句准确率95%+
- 内置常见Markdown格式错误修复规则
- 零外部依赖,不影响流式输出性能

Related skills

OpenClaw

13-Day Sprint Method

galizki

Productivity system based on Maya calendar with 13 natural tones for project management and personal development

OpenClaw

1password

daggerkun007

Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.