Agent Skillsthe-open-agent/openagent › taskflow-inbox-triage

taskflow-inbox-triage

GitHub

提供TaskFlow实现邮箱分类的示例模式,根据意图将消息路由至Slack等待、即时通知或每日汇总。

skills/taskflow-inbox-triage/SKILL.md the-open-agent/openagent

触发场景

需要基于意图对邮件进行自动化分类和路由 构建包含等待外部回复状态的异步工作流

安装

npx skills add the-open-agent/openagent --skill taskflow-inbox-triage -g -y
更多选项

不安装直接使用

npx skills use the-open-agent/openagent@taskflow-inbox-triage

指定 Agent (Claude Code)

npx skills add the-open-agent/openagent --skill taskflow-inbox-triage -a claude-code -g -y

安装 repo 全部 skill

npx skills add the-open-agent/openagent --all -g -y

预览 repo 内 skill

npx skills add the-open-agent/openagent --list

SKILL.md

Frontmatter
{
    "name": "taskflow-inbox-triage",
    "metadata": {
        "openclaw": {
            "emoji": "📥"
        }
    },
    "description": "Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some waiting on outside answers, and others rolling into a later summary."
}

TaskFlow inbox triage

This is a concrete example of how to think about TaskFlow without turning the core runtime into a DSL.

Goal

Triage inbox items with one owner flow:

  • business → post to Slack and wait for reply
  • personal → notify the owner now
  • everything else → keep for end-of-day summary

Pattern

  1. Create one flow for the inbox batch.
  2. Run one detached task to classify new items.
  3. Persist the routing state in stateJson.
  4. Move to waiting only when an outside reply is required.
  5. Resume the flow when classification or human input completes.
  6. Finish when the batch has been routed.

Suggested stateJson shape

{
  "businessThreads": [],
  "personalItems": [],
  "eodSummary": []
}

Suggested waitJson when blocked on Slack:

{
  "kind": "reply",
  "channel": "slack",
  "threadKey": "slack:thread-1"
}

Minimal runtime calls

const taskFlow = api.runtime.tasks.flow.fromToolContext(ctx);

const created = taskFlow.createManaged({
  controllerId: "my-plugin/inbox-triage",
  goal: "triage inbox",
  currentStep: "classify",
  stateJson: {
    businessThreads: [],
    personalItems: [],
    eodSummary: [],
  },
});

const child = taskFlow.runTask({
  flowId: created.flowId,
  runtime: "acp",
  childSessionKey: "agent:main:subagent:classifier",
  task: "Classify inbox messages",
  status: "running",
  startedAt: Date.now(),
  lastEventAt: Date.now(),
});

if (!child.created) {
  throw new Error(child.reason);
}

const waiting = taskFlow.setWaiting({
  flowId: created.flowId,
  expectedRevision: created.revision,
  currentStep: "await_business_reply",
  stateJson: {
    businessThreads: ["slack:thread-1"],
    personalItems: [],
    eodSummary: [],
  },
  waitJson: {
    kind: "reply",
    channel: "slack",
    threadKey: "slack:thread-1",
  },
});

if (!waiting.applied) {
  throw new Error(waiting.code);
}

const resumed = taskFlow.resume({
  flowId: waiting.flow.flowId,
  expectedRevision: waiting.flow.revision,
  status: "running",
  currentStep: "route_items",
  stateJson: waiting.flow.stateJson,
});

if (!resumed.applied) {
  throw new Error(resumed.code);
}

taskFlow.finish({
  flowId: resumed.flow.flowId,
  expectedRevision: resumed.flow.revision,
  stateJson: resumed.flow.stateJson,
});

Related example

  • skills/taskflow/examples/inbox-triage.lobster

版本历史

  • 618631e 当前 2026-08-20 18:18

同 Skill 集合

skills/1password/SKILL.md
skills/apple-notes/SKILL.md
skills/apple-reminders/SKILL.md
skills/bear-notes/SKILL.md
skills/blogwatcher/SKILL.md
skills/blucli/SKILL.md
skills/bluebubbles/SKILL.md
skills/clawhub/SKILL.md
skills/discord/SKILL.md
skills/eightctl/SKILL.md
skills/gemini/SKILL.md
skills/gh-issues/SKILL.md
skills/gifgrep/SKILL.md
skills/github/SKILL.md
skills/gog/SKILL.md
skills/goplaces/SKILL.md
skills/healthcheck/SKILL.md
skills/himalaya/SKILL.md
skills/imsg/SKILL.md
skills/mcporter/SKILL.md
skills/model-usage/SKILL.md
skills/nano-pdf/SKILL.md
skills/node-connect/SKILL.md
skills/notion/SKILL.md
skills/obsidian/SKILL.md
skills/openai-whisper-api/SKILL.md
skills/openai-whisper/SKILL.md
skills/openhue/SKILL.md
skills/oracle/SKILL.md
skills/ordercli/SKILL.md
skills/peekaboo/SKILL.md
skills/powerpoint/SKILL.md
skills/session-logs/SKILL.md
skills/sherpa-onnx-tts/SKILL.md
skills/slack/SKILL.md
skills/songsee/SKILL.md
skills/sonoscli/SKILL.md
skills/spotify-player/SKILL.md
skills/summarize/SKILL.md
skills/taskflow/SKILL.md
skills/things-mac/SKILL.md
skills/tmux/SKILL.md
skills/trello/SKILL.md
skills/video-frames/SKILL.md
skills/voice-call/SKILL.md
skills/wacli/SKILL.md
skills/weather/SKILL.md
skills/xurl/SKILL.md
skills/camsnap/SKILL.md

元信息

文件数
0
版本
5ede160
Hash
88ece750
收录时间
2026-08-20 18:18

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-16 20:00
浙ICP备14020137号-1