能力标签
ACP组件库
⚙️
Agent工作流

ACP组件库

基于 TypeScript · 无代码搭建完整 AI 自动化流程
英文名:acp-components
⭐ 6 Stars 💻 TypeScript 📄 未公布协议 🏷 AI 7.5分
7.5AI 综合评分
acptypescriptgui
✦ AI Skill Hub 推荐

经 AI Skill Hub 精选评估,ACP组件库 获评「推荐使用」。这款Agent工作流在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 7.5 分,适合有一定技术背景的用户使用。

📚 深度解析

ACP组件库 是一套完整的 AI Agent 自动化工作流方案。随着 AI 能力的不断提升,基于 Agent 的自动化工作流正在成为提升个人和团队效率的核心方式。区别于传统的 RPA 自动化(模拟鼠标键盘操作),AI Agent 工作流通过理解任务意图、动态规划执行路径,能够处理更复杂的非结构化任务。

ACP组件库 工作流的设计遵循"最小配置,最大复用"原则:核心逻辑已经封装好,用户只需配置自己的 API Key 和业务参数即可快速上手。工作流内置错误处理和重试机制,在网络波动或 API 限速等情况下仍能稳定运行,适合作为生产环境的自动化基础设施。

在实际部署时,建议先在测试环境中运行 3-5 次,验证各个环节的输出结果符合预期,再部署到生产环境。AI Skill Hub 评分 7.5 分,是同类 Agent 工作流中的精选推荐。

📋 工具概览

提供ACP工作流的UI组件库,实现完整的工作流管理

ACP组件库 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。

GitHub Stars
⭐ 6
开发语言
TypeScript
支持平台
Windows / macOS / Linux
维护状态
轻量级项目,按需更新
开源协议
未公布
AI 综合评分
7.5 分
工具类型
Agent工作流
Forks

📖 中文文档

以下内容由 AI Skill Hub 根据项目信息自动整理,如需查看完整原始文档请访问底部「原始来源」。

提供ACP工作流的UI组件库,实现完整的工作流管理

ACP组件库 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。

📌 核心特色
  • 可视化 Agent 工作流编排,无需编写复杂代码
  • 支持多步骤自动化任务链,实现全流程无人值守
  • 与外部 API、数据库和第三方服务无缝集成
  • 内置错误处理与自动重试机制,保障稳定运行
  • 提供可复用的自动化模板,快速在同类场景部署
🎯 主要使用场景
  • 自动化日常重复性工作,将精力集中于创造性任务
  • 构建数据采集 → 处理 → 输出的完整自动化管线
  • 实现跨平台、跨系统的数据流转和业务协同
以下安装命令基于项目开发语言和类型自动生成,实际以官方 README 为准。
安装命令
# 方式一:npm 全局安装
npm install -g acp-components

# 方式二:npx 直接运行(无需安装)
npx acp-components --help

# 方式三:项目依赖安装
npm install acp-components

# 方式四:从源码运行
git clone https://github.com/zvzuola/acp-components
cd acp-components
npm install
npm start
📋 安装步骤说明
  1. 访问 GitHub 仓库获取工作流文件
  2. 在对应平台(Dify / Flowise / Make 等)中找到「导入工作流」功能
  3. 上传工作流文件
  4. 按照提示配置必要的环境变量和 API Key
  5. 运行测试确认流程正常后投入使用
以下用法示例由 AI Skill Hub 整理,涵盖最常见的使用场景。
常用命令 / 代码示例
# 命令行使用
acp-components --help

# 基本用法
acp-components [options] <input>

# Node.js 代码中使用
const acp_components = require('acp-components');

const result = await acp_components.run(options);
console.log(result);
以下配置示例基于典型使用场景生成,具体参数请参照官方文档调整。
配置示例
# acp-components 配置说明
# 查看配置选项
acp-components --config-example > config.yml

# 常见配置项
# output_dir: ./output
# log_level: info
# workers: 4

# 环境变量(覆盖配置文件)
export ACP_COMPONENTS_CONFIG="/path/to/config.yml"
📑 README 深度解析 真实文档 完整度 67/100 查看 GitHub 原文 →
以下内容由系统直接从 GitHub README 解析整理,保留代码块、表格与列表结构。

Features

  • Multi-Agent — Connect to multiple ACP agents simultaneously, each with independent transport, capabilities, and session management
  • Multi-Workspace — Organize sessions by working directory (cwd); switch between workspaces seamlessly
  • Framework-Agnostic Core — Zustand vanilla stores with zero React dependency; works with Vue, Svelte, Solid, or vanilla JS
  • Multi-Transport — Stdio, HTTP, WebSocket, and custom transports per agent; ships with a Tauri IPC transport example
  • Rich UI Components — Session list (grouped by agent), chat view (with round grouping), diff view, terminal view, permission dialog, plan view, thought view, command palette, workspace switcher, login dialog, and more — 15+ components
  • Streaming UX — Real-time content and thought streaming with animated indicators, live tool call status, and token usage tracking
  • Session Management — Full CRUD: create, load, switch, and close sessions scoped by workspace and agent
  • Tool Call Visualization — Track agent tool invocations with status, input/output, file locations, and diffs
  • Authentication — Built-in auth flow with LoginDialog component, env_var and terminal-based auth methods, and programmatic authenticate/authenticateWithEnv actions
  • Permission Handling — Promise-based permission flow with built-in modal dialog for approving or rejecting tool call requests
  • Terminal Integration — Embedded terminal output display with lifecycle management via onTerminal handler and useTerminals hook
  • Theming — Dark and light themes via CSS custom properties (--acp-* design tokens); extensible via data-acp-theme attribute
  • Internationalization — Built-in i18n support (en-US, zh-CN) via i18next, with custom locale extension
  • Desktop Ready — Includes Tauri and stdio transport examples for native desktop applications

Prerequisites

  • Node.js >= 18
  • pnpm
  • An ACP-compatible agent (e.g., opencode with acp subcommand)

Install dependencies

pnpm install

Installation

pnpm add @acp-components/core @acp-components/react

Peer dependencies: react (^18 || ^19), react-dom (^18 || ^19)

Setup

```bash

Build all packages

pnpm build

Build individual packages

pnpm build:core pnpm build:react

Quick Start

import ReactDOM from 'react-dom/client';
import {
  I18nProvider,
  AcpProvider,
  Workbench,
  ProjectOpener,
  SessionList,
  ChatView,
  PermissionDialog,
  LoginDialog,
} from '@acp-components/react';
import { useAcpStore } from '@acp-components/react';

function App() {
  const activeSessionId = useAcpStore((s) => {
    if (!s.activeWorkspaceCwd) return null;
    return s.workspaces.get(s.activeWorkspaceCwd)?.activeSessionId ?? null;
  });

  return (
    <I18nProvider>
      <AcpProvider
        agents={[
          {
            id: 'main',
            name: 'Main Agent',
            transport: { type: 'websocket', url: 'ws://127.0.0.1:3100' },
          },
        ]}
        theme="dark"
        defaultCwd="/path/to/project"
      >
        <Workbench
          sidebar={
            <>
              <ProjectOpener />
              <SessionList />
            </>
          }
          main={<ChatView sessionId={activeSessionId} />}
        />
        <PermissionDialog sessionId={activeSessionId} />
        <LoginDialog />
      </AcpProvider>
    </I18nProvider>
  );
}

ReactDOM.createRoot(document.getElementById('root')!).render(<App />);

Multi-Agent Example

Connect to multiple agents in different modes simultaneously:

<AcpProvider
  agents={[
    {
      id: 'craft',
      name: 'Craft Agent',
      transport: { type: 'websocket', url: 'ws://127.0.0.1:3100' },
      clientCapabilities: { fs: { readTextFile: true, writeTextFile: true } },
    },
    {
      id: 'ask',
      name: 'Ask Agent',
      transport: { type: 'stdio', command: 'opencode', args: ['acp', '--mode', 'ask'] },
    },
  ]}
  theme="dark"
>
  <App />
</AcpProvider>

Framework-Agnostic Usage

The @acp-components/core package has zero React dependency. You can use it with any framework:

import { acpStore, sessionStore, createAcpProvider, sendPrompt } from '@acp-components/core';

// 1. Create multi-agent provider
const provider = createAcpProvider({
  agents: [
    { id: 'main', name: 'Main', transport: { type: 'stdio', command: 'opencode', args: ['acp'] } },
  ],
});

// 2. Wait for ready
provider.subscribe(() => {
  if (provider.ready) {
    console.log('All agents connected!');
  }
});

// 3. Read from vanilla stores
acpStore.getState().workspaces;       // workspace state tree
acpStore.getState().agents;           // agent connection statuses
acpStore.subscribe((state) => { });   // watch for changes

// 4. Use actions (need to provide client and agentId)
const client = provider.getClient('main');
await sendPrompt(client!, sessionId, blocks);

// 5. Add/remove agents dynamically
await provider.addAgent({ id: 'analyze', name: 'Analyze', transport: { type: 'websocket', url: 'ws://...' } });
await provider.removeAgent('analyze');

Screenshots

Web Demo

ACP Web Demo

Web Demo

```bash

Transport Options

Each agent in the agents array gets its own transport configuration:

// Stdio — spawn an agent process directly (Electron / Tauri / Node.js desktop)
{
  id: 'desktop-agent',
  name: 'Desktop',
  transport: { type: 'stdio', command: 'opencode', args: ['acp'] },
}

// HTTP — connect via HTTP POST
{
  id: 'http-agent',
  name: 'HTTP',
  transport: { type: 'http', url: 'http://localhost:8080/acp', headers: { 'Authorization': 'Bearer token' } },
}

// WebSocket — connect to a bridge server (browser environments)
{
  id: 'ws-agent',
  name: 'WebSocket',
  transport: { type: 'websocket', url: 'ws://127.0.0.1:3100' },
}

// Custom — provide your own AcpTransport implementation
{
  id: 'custom-agent',
  name: 'Custom',
  transport: { type: 'custom', transport: myCustomTransport },
}

Bridge Server Configuration

VariableDefaultDescription
ACP_PORT3100WebSocket server port
ACP_HOST127.0.0.1WebSocket server host
ACP_AGENTopencodeAgent command to spawn
ACP_AGENT_ARGSacpArguments passed to the agent

acp-components

A universal frontend component library for building AI Agent interfaces based on the Agent Client Protocol (ACP). Designed with a data-layer / UI-layer separation architecture:

  • @acp-components/core — Framework-agnostic TypeScript module: transport communication, state management, business logic
  • @acp-components/react — React component library: UI rendering and user interaction

You can use the data layer alone to build UI component libraries with Vue, Svelte, or any other frontend framework.

Packages

PackageDescription
[@acp-components/core](packages/core)Framework-agnostic: multi-agent transport layer, AcpClient, vanilla Zustand stores (workspace + agent + session), and imperative actions
[@acp-components/react](packages/react)React bindings: context provider, hooks (useSyncExternalStore), and 15+ UI components

Components

ComponentDescription
AcpProviderTop-level provider: connects to multiple agents in parallel, manages agent lifecycle, wires session updates to stores, renders a loading spinner until all agents are ready. Props: agents, theme, defaultCwd, onFileRead, onFileWrite, onTerminal
WorkbenchThree-panel layout (sidebar, main, panel) using CSS Grid
ProjectOpenerEditable workspace directory display with dropdown to switch between active workspaces
SessionListSidebar session list grouped by agent within the active workspace, with create / select / delete actions per agent
ChatViewMain chat area: groups messages into user/agent rounds, renders plan, usage bar, and config panel. Props: sessionId, onNavigateFile
MessageBubbleRenders message parts (content blocks, thought blocks, tool calls) with Markdown via react-markdown
MarkdownReusable Markdown renderer with syntax-highlighted code blocks and GFM support
ChatComposerText input with slash-command palette integration and send / cancel controls
StreamingIndicatorAnimated typing indicator shown during agent streaming
ToolCallCardDisplays tool call name, status, input/output, file locations
ThoughtViewCollapsible view for agent reasoning / thinking content
PlanViewDisplays the agent's plan entries during streaming
DiffViewSide-by-side diff viewer for file changes
PermissionDialogModal for approving / rejecting tool permission requests
LoginDialogModal for agent authentication: supports env_var and terminal-based auth methods, env var form input, 5-minute timeout
TerminalViewEmbedded terminal output display
ConnectionStatusPer-agent connection state indicator with agent name and version
UsageBarToken usage progress bar showing context window consumption
SessionConfigPanelDropdown for session configuration options
CommandPaletteSlash-command palette for available agent commands

Terminal Integration

Control how agents create and manage terminals:

<AcpProvider
  agents={[...]}
  onTerminal={{
    create: async (params) => {
      // params: { sessionId, command, args?, cwd? }
      const proc = spawn(params.command, params.args ?? [], { cwd: params.cwd ?? undefined });
      return {
        terminalId: generateId(),
        getOutput: async () => ({ output: allOutput }),
        waitForExit: async () => new Promise((resolve) => proc.on('exit', resolve)),
        kill: async () => proc.kill(),
        release: async () => {},
        onOutputChange: (fn) => proc.stdout.on('data', fn),
        onExit: (fn) => proc.on('exit', fn),
      };
    },
  }}
>

Terminal states are accessible via the useTerminals(sessionId) hook and rendered with the TerminalView component.

File System Integration

Control how agents read and write files:

<AcpProvider
  agents={[...]}
  onFileRead={async (req) => {
    const content = await nativeFs.readTextFile(req.path);
    return { content };
  }}
  onFileWrite={async (req) => {
    await nativeFs.writeTextFile(req.path, req.content);
    return {};
  }}
>
🎯 aiskill88 AI 点评 A 级 2026-05-30

高质量的ACP工作流UI组件库,值得使用

📚 实用指南(长尾问题)
适合谁
  • 需要 acp-components 解决具体问题的开发者与运营人员
最佳实践
  • 先在测试环境跑通最小用例,再接入生产数据
常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
部署方案
  • 云端托管:可放在 Vercel / Railway / Fly.io 等 PaaS 平台
相关搜索
acp-components 中文教程acp-components 安装报错怎么办acp-components 与同类工具对比acp-components 最佳实践acp-components 适合谁用

⚡ 核心功能

👥 适合谁
  • 需要 acp-components 解决具体问题的开发者与运营人员
⭐ 最佳实践
  • 先在测试环境跑通最小用例,再接入生产数据
⚠️ 常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)

👥 适合人群

自动化工程师和运维人员项目经理和业务分析师希望减少重复性工作的专业人士数字化转型团队

🎯 使用场景

  • 自动化日常重复性工作,将精力集中于创造性任务
  • 构建数据采集 → 处理 → 输出的完整自动化管线
  • 实现跨平台、跨系统的数据流转和业务协同

⚖️ 优点与不足

✅ 优点
  • +大幅减少重复性人工操作
  • +可视化流程,清晰直观
  • +可扩展性强,支持复杂场景
⚠️ 不足
  • 未明确开源协议,商用场景需谨慎评估
  • 初始配置和调试需投入一定时间
  • 强依赖外部服务的稳定性
  • 复杂场景需具备一定技术基础
⚠️ 使用须知

该工具未明确声明开源协议,商业使用前请联系原作者确认授权范围,避免侵权风险。

AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。

建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。

🔗 相关工具推荐

📰 相关 AI 新闻
🍿 AI 圈相关吃瓜
🗺️ 相关解决方案
🧩 你可能还需要
基于当前 Skill 的能力图谱,自动补全的工具组合

❓ 常见问题 FAQ

acp-components 是一款TypeScript开发的AI辅助工具。开源AI工作流:UI component library for the Agent Client Protocol (ACP), providing a complete s。⭐6 · TypeScript 主要应用场景包括:构建ACP工作流的UI界面。
💡 AI Skill Hub 点评

AI Skill Hub 点评:ACP组件库 的核心功能完整,质量良好。对于自动化工程师和运维人员来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。

⬇️ 获取与下载
⚠️ 该工具未声明开源协议,不提供直接下载。请访问原项目了解使用条款。
📚 深入学习 ACP组件库
查看分步骤安装教程和完整使用指南,快速上手这款工具
🌐 原始信息
原始名称 acp-components
原始描述 开源AI工作流:UI component library for the Agent Client Protocol (ACP), providing a complete s。⭐6 · TypeScript
Topics acptypescriptgui
GitHub https://github.com/zvzuola/acp-components
语言 TypeScript
🔗 原始来源
🐙 GitHub 仓库  https://github.com/zvzuola/acp-components

收录时间:2026-05-30 · 更新时间:2026-05-31 · License:未公布 · AI Skill Hub 不对第三方内容的准确性作法律背书。