把目标编译成可检查的持久多智能体工作流
31.9/100
综合分
4
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add TNJ2026/promptaflow该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · skill
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 53 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包promptaflow-ui-tests(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/10 13:37:20
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 28 处,展示前 28 条)
- 读取本地文件integration-core/lib/gateway.js:69
const key = await realpath(workspace.canonicalPath); - 读取本地文件integration-core/lib/gateway.js:99
const key = await realpath(workspace.canonicalPath); - 读取本地文件integration-core/lib/gateway.js:212
return await this.runtimeFor(await realpath(workspace.canonicalPath), startIfMissing); - 执行外部命令来自配置/变量integration-core/lib/gateway.js:273
const child = spawn(this.command, [...this.commandPrefix, ...args], { - 执行外部命令来自配置/变量integration-core/lib/gateway.js:293
const child = spawn(this.command, [ - 执行外部命令来自配置/变量integration-core/lib/gateway.js:309
const child = spawn(this.command, [ - 读取本地文件integration-core/src/gateway.ts:80
const key = await realpath(workspace.canonicalPath) - 读取本地文件integration-core/src/gateway.ts:110
const key = await realpath(workspace.canonicalPath) - 读取本地文件integration-core/src/gateway.ts:247
return await this.runtimeFor(await realpath(workspace.canonicalPath), startIfMissing) - 执行外部命令来自配置/变量integration-core/src/gateway.ts:307
const child = spawn(this.command, [...this.commandPrefix, ...args], { - 执行外部命令来自配置/变量integration-core/src/gateway.ts:328
const child = spawn(this.command, [ - 执行外部命令来自配置/变量integration-core/src/gateway.ts:341
const child = spawn(this.command, [ - 读取本地文件integrations/deepseek-harness/lib/gateway.js:69
const key = await realpath(workspace.canonicalPath); - 读取本地文件integrations/deepseek-harness/lib/gateway.js:99
const key = await realpath(workspace.canonicalPath); - 读取本地文件integrations/deepseek-harness/lib/gateway.js:237
return await this.runtimeFor(await realpath(workspace.canonicalPath), startIfMissing); - 执行外部命令来自配置/变量integrations/deepseek-harness/lib/gateway.js:298
const child = spawn(this.command, [...this.commandPrefix, ...args], { - 执行外部命令来自配置/变量integrations/deepseek-harness/lib/gateway.js:318
const child = spawn(this.command, [ - 执行外部命令来自配置/变量integrations/deepseek-harness/lib/gateway.js:334
const child = spawn(this.command, [ - 读取本地文件integrations/deepseek-harness/lib/index.js:452
const key = await realpath(workspace.canonicalPath); - 读取本地文件integrations/deepseek-harness/lib/index.js:475
const key = await realpath(workspace.canonicalPath); - 读取本地文件integrations/deepseek-harness/lib/index.js:579
return await this.runtimeFor(await realpath(workspace.canonicalPath), startIfMissing); - 执行外部命令来自配置/变量integrations/deepseek-harness/lib/index.js:643
const child = spawn(this.command, [...this.commandPrefix, ...args], { - 执行外部命令来自配置/变量integrations/deepseek-harness/lib/index.js:674
const child = spawn(this.command, [ - 执行外部命令来自配置/变量integrations/deepseek-harness/lib/index.js:702
const child = spawn(this.command, [ - 写入本地文件integrations/deepseek-harness/lib/index.js:2557
await mkdir(dirname(target), { recursive: true }); - 写入本地文件integrations/deepseek-harness/lib/index.js:2558
await writeFile(target, Buffer.from(held.content, "base64")); - 写入本地文件integrations/deepseek-harness/src/index.ts:1179
await mkdir(dirname(target), { recursive: true }) - 写入本地文件integrations/deepseek-harness/src/index.ts:1183
await writeFile(target, Buffer.from(held.content, 'base64'))
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 编排多智能体执行
- 本地优先持久化运行
本地优先、持久化的工作流运行时,面向智能体应用——把静态工作流 DSL 编译成 LangGraph,通过 Codex、WorkBuddy、DeepSeek Harness 或任意 MCP 客户端编排可信的多智能体执行。
README
由 DeepSeek 最新模型翻译生成PromptaFlow
PromptaFlow 把一个目标变成持久、可检查的 Agent 工作流。描述你想完成的工作,让 Agent 生成静态 Workflow DSL,检查并发布,然后通过已安装的 Agent CLI 或当前对话执行它。
功能
- 根据自然语言要求生成、修改和复用工作流。
- 先校验静态 Workflow DSL,再由可信编译器编译成 LangGraph,不直接执行 Agent 生成的程序。
- 在已注册的 Agent CLI 上运行步骤,支持分支、条件、重试、审批和其他人工中断。
- 持久保存工作流版本、运行进度、控制台输出和生成的 Artifact,随时可以检查。
- 通过浏览器工作台、HTTP API、MCP 工具和五张 MCP App 卡片使用同一套工作流。
- 按 Workspace 隔离执行状态,同时在本机共享已发布的工作流库和可复用源码模板。
架构与实现
固定在 127.0.0.1:8848 的本地 Hub 是统一入口。它选择 Workspace,并把 MCP、API 和 UI 流量路由到该 Workspace 的 Control Runtime;Control Runtime 持有图状态、权限和作为唯一操作依据的 allowed_commands[]。
展开完整文档(README 剩余 1 节)
PromptaFlow
PromptaFlow 把一个目标变成持久、可检查的 Agent 工作流。描述你想完成的工作,让 Agent 生成静态 Workflow DSL,检查并发布,然后通过已安装的 Agent CLI 或当前对话执行它。
功能
- 根据自然语言要求生成、修改和复用工作流。
- 先校验静态 Workflow DSL,再由可信编译器编译成 LangGraph,不直接执行 Agent 生成的程序。
- 在已注册的 Agent CLI 上运行步骤,支持分支、条件、重试、审批和其他人工中断。
- 持久保存工作流版本、运行进度、控制台输出和生成的 Artifact,随时可以检查。
- 通过浏览器工作台、HTTP API、MCP 工具和五张 MCP App 卡片使用同一套工作流。
- 按 Workspace 隔离执行状态,同时在本机共享已发布的工作流库和可复用源码模板。
架构与实现
固定在 127.0.0.1:8848 的本地 Hub 是统一入口。它选择 Workspace,并把 MCP、API 和 UI 流量路由到该 Workspace 的 Control Runtime;Control Runtime 持有图状态、权限和作为唯一操作依据的 allowed_commands[]。每个 Runtime 通过带鉴权的 Execution Worker 运行 Agent CLI 等可信 Handler。工作流定义编译为 LangGraph,持久状态保存在 ~/.promptaflow/projects/。
Agent App / 浏览器 / API │ ▼ Hub :8848(MCP Gateway) │ ▼ Workspace Control Runtime ──► Execution Workers ──► Agent CLI / Handler │ └── LangGraph 状态、运行记录与 Artifact
安装
PromptaFlow 需要 Python 3.10 或更高版本,以及 uv。
通过 PyPI 安装
推荐把最新稳定版 CLI 安装到独立环境:
uv tool install promptaflow
paf --version
paf serve --project-root /你的项目绝对路径
安装预发布版本时,需要显式允许预发布版本:
uv tool install --prerelease allow promptaflow
也可以使用 pip 安装到当前 Python 环境:
python -m pip install promptaflow
安装预发布版本:
python -m pip install --pre promptaflow
PyPI 包提供 Runtime 以及 paf/promptaflow 命令,但不会安装 Agent App 集成或 MCP App 卡片;需要这些功能时,请继续按照下方对应宿主的文档安装。
使用提示词安装
把下面这句话发给受支持的 Agent App。Agent 会读取仓库里持续维护的文档,并为当前 App 选择正确的安装方式:
请为当前 App 安装这个仓库中的 PromptaFlow:https://github.com/TNJ2026/promptaflow
如果仓库已经 clone 到本地,请先在 Agent App 中打开该 checkout,再使用:
请从当前本地仓库为这个 App 安装或配置 PromptaFlow。不要重新 clone 或下载 Release;请阅读当前 checkout 中对应宿主的文档,保留本地修改,并在需要我亲自重启 App 或 Profile 之前停止并提醒我。
如果该 checkout 不是当前工作区,请把“当前本地仓库”替换为它的绝对路径。
各 App 的详细文档:
- Codex app
- WorkBuddy
- DeepSeek Harness
从源码运行
git clone https://github.com/TNJ2026/promptaflow.git
cd promptaflow
uv sync --extra dev
uv run paf serve
统一的 serve 命令会复用或启动 Hub、注册当前 Workspace,并等待受管 Runtime 就绪。
打开 http://127.0.0.1:8848/ui 可以查看正在运行的 Workspace。
Windows 可直接从 PowerShell、CMD 或资源管理器使用原生启动器,而且无需修改 PowerShell 执行策略:
start-promptaflow.cmd
restart-promptaflow.cmd
stop-promptaflow.cmd
需要启动其他 Workspace 时传入路径:
start-promptaflow.cmd "D:\Develop\your-project"
MCP App 卡片
PromptaFlow 提供五张紧凑的 MCP App 视图。在支持 MCP Apps 的 App 中,调用对应工具时,卡片会显示在对话旁边。下面的提示词可以直接用自然语言说出,Agent 会把它们映射到工具。
Workspace
- 提示词:打开 PromptaFlow。
- 功能:在同一张卡中打开目标、工作流、历史记录和 Agents,并显示当前或最近的目标。
Workflows
- 提示词:显示我的 PromptaFlow 工作流。
- 功能:列出已发布的工作流;选择后查看流程图和定义,并可新建目标、修改或删除。
Workflow generation
- 提示词:创建一个工作流:拆解并总结文章,然后生成一份简洁的演示文稿。
- 功能:启动 Agent 编写流程,显示原始要求、生成进度和最终工作流。
Goal execution
- 提示词:使用文章转演示文稿工作流处理这篇文章。
- 功能:启动目标并跟踪每个步骤、需要的人工输入、执行状态和最终结果。
Goals
- 提示词:显示我最近的 PromptaFlow 目标。
- 功能:列出最近的目标运行及其当前状态,并可进入单次运行详情。
工具映射、卡片行为和缓存刷新方式见卡片文档。
运行目标
1. 打开 目标。
2. 选择已发布的工作流,或者描述一个工作流并让 Agent 创建。
3. 输入目标并启动。
4. 在 Workspace 中跟踪步骤,或在 历史记录 中检查已完成的运行。
通过 MCP 使用时,主要工具是 list_workflows、generate_workflow、start_run、 inspect_run 和 cancel_run。客户端必须使用 Runtime 当前返回的 allowed_commands[],不得自行构造写操作 URL。
委托给当前对话执行
Agent 步骤通常交给工作流指定的 CLI。当系统没有安装 CLI,或希望当前 App 直接完成工作时,可以用 execution_mode="current_app" 启动。PromptaFlow 不改变工作流结构,而是把每个 Agent 步骤排队交给发起运行的对话,并把实际执行图随运行保存。该模式异步执行,支持并行分支,也支持从 checkpoint 安全恢复。
有哪几种触发方式
只能显式指定。没有 CLI 开关,界面上也没有切换项,更不会因为缺少 CLI 而自动降级——运行以哪种模式启动,就一直是哪种模式。
| 方式 | 做法 |
| 对 Agent App 直接说 | 在对话里讲清楚即可,内置 skill 会选好工作流并带上该模式 |
| MCP 工具 | start_run(workflow_id=..., goal=..., execution_mode="current_app") |
| HTTP API | POST /api/v1/langgraph-runs,请求体带 "execution_mode": "current_app" |
Agent 步骤指定了你未安装的 CLI 的工作流,默认会被目录过滤掉。为这个模式挑工作流时请用
ready_only=false 列出——缺 CLI 正是这个模式要抹平的事情。inspect_workflow_definition
也接受 execution_mode,可以在启动前先看它在这个模式下编译成什么样。
提示词
以该模式启动一次运行:
用 PromptaFlow 执行:。Agent 步骤都由你在当前对话里完成,不要调用 CLI。
用工作流 workflow: 执行目标:,委托给当前对话执行。
还不确定有没有合适的工作流时,先挑:
列出可以完全在当前对话里跑完的 PromptaFlow 工作流,包括那些我没装 CLI 的。
跟进一次已经委托出来的运行:
继续你正在替我执行的 PromptaFlow 运行——领取下一个步骤,做完并汇报产出。
对话通过委托工具驱动整个运行:list_delegations 查看排队的工作,claim_delegation 领取一个步骤,长时间执行期间用 checkpoint_delegation 和 renew_delegation, complete_delegation 交回结果。领取后未完成的步骤由 reconcile_delegation 回收。
CLI 快速参考
安装 promptaflow 会在 PATH 上放两个指向同一命令的名字:promptaflow——装的是什么就能敲什么;以及 paf,下面所有示例用的都是它。
paf serve
paf serve --project-root /absolute/path/to/project
paf hub register /absolute/path/to/project --no-agent-project-access
paf --version
paf runtimes --json
paf mcp
paf mcp --project-root /absolute/path/to/project --agent-project-access
paf run list
paf run inspect
paf workflow validate --catalog
paf workflow publish --catalog --expected-version
开发
uv sync --extra dev
.venv/bin/python -m unittest discover -s tests
node --test tests/ui/client_modules.test.mjs
构建 Python 包和插件包:
uv build
RELEASE_VERSION=X.Y.Z # 替换为本次发布版本,例如 X.Y.Z-alpha。
python scripts/build-marketplace-release.py \
--version "$RELEASE_VERSION" \
--output "dist/promptaflow-marketplace-${RELEASE_VERSION}.zip" \
--plugin-output "dist/promptaflow-plugin-${RELEASE_VERSION}.zip"
推送 vX.Y.Z 或 vX.Y.Z-alpha 这样的完整 SemVer 标签后,会执行跨平台 Release workflow,并上传 GitHub 分发产物。PyPI 发布只在手动运行 workflow 时按需启用;普通标签发布仍仅发布到 GitHub。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
TNJ2026/promptaflow
把目标编译成可检查的持久多智能体工作流
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份人设,统一管理多个 coding agent。
★ 1,141已汉化DSH
74.1
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7
这是你的仓库?认领条目