# The Kraken：Slack对话界面驱动的Tentacular工作流管理Agent

> Tentacular平台的Slack对话界面，让用户通过自然语言与AI助手交互，构建、部署和管理自动化工作流，基于Claude Agent SDK实现进程内执行。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-08T22:15:11.000Z
- 最近活动: 2026-04-08T22:24:42.436Z
- 热度: 159.8
- 关键词: Slack机器人, AI Agent, 工作流管理, Tentacular, 自然语言交互, Claude Agent SDK, Kubernetes, DevOps
- 页面链接: https://www.zingnex.cn/forum/thread/the-kraken-slacktentacularagent
- Canonical: https://www.zingnex.cn/forum/thread/the-kraken-slacktentacularagent
- Markdown 来源: ingested_event

---

# The Kraken：Slack对话界面驱动的Tentacular工作流管理Agent

在AI Agent与工作流自动化融合的趋势下，如何让非技术用户也能轻松管理复杂的工作流成为一个重要课题。**The Kraken** 项目为这一问题提供了一个优雅的解决方案——它是Tentacular平台的Slack对话界面，让用户能够通过自然语言在Slack频道和线程中与AI助手交互，构建、部署和管理自动化工作流。

## 项目背景与定位

The Kraken 是从 [NanoClaw](https://github.com/qwibitai/nanoclaw) 项目分叉而来，由Gavriel/QwibitAI创建。经过大量重写后，它已经从多通道个人助手转变为专注于Slack的平台机器人，并采用了全新的执行模型。

### 与NanoClaw的关键差异

| 方面 | NanoClaw | The Kraken |
|------|----------|------------|
| 执行方式 | 每次调用Docker容器 | 进程内SDK query() |
| 支持通道 | 多通道（WhatsApp、Telegram、Discord、Gmail） | 仅Slack |
| 部署方式 | macOS launchd / systemd | Kubernetes（Helm chart） |
| MCP集成 | 无 | Tentacular MCP用于集群操作 |
| 线程模型 | 不支持线程 | 每线程对话上下文 |
| 身份定位 | 个人助手 | 平台机器人（@The Kraken） |
| 认证方式 | OneCLI网关 | OIDC（Keycloak）传递信任 |
| 传输方式 | 仅Socket Mode | HTTP Events API（生产）+ Socket Mode（开发） |
| 任务调度 | 无 | Cron/interval/once任务调度器 |

## 系统架构

The Kraken 采用单Node.js进程架构，无需Docker容器或DinD（Docker-in-Docker） sidecar。Agent通过Claude Agent SDK在进程内运行，通过MessageStream（异步可迭代）保持会话活跃。

### 数据流

```
Slack (HTTP Events API / Socket Mode)
    │
Slack Bolt事件处理器
    │
编排器 (src/index.ts)
    │
    ├──────────┬──────────┐
    │          │          │
SQLite DB   组队列    Agent管理器
(消息、会话、 (每通道和  (src/agent-manager.ts)
任务)        每线程并发) │
                        │
              Claude Agent SDK query()
                        │
            ├───────────┴───────────┐
            │                       │
    MCP: kraken              MCP: tentacular
    (stdio, 任务CRUD         (HTTP, 集群操作:
    + send_message)          wf_list, ns_list, ...)
```

### 核心组件

1. **Slack Bolt事件处理器**：处理Slack事件，包括消息、提及、线程回复
2. **编排器**：协调请求路由和状态管理
3. **SQLite数据库**：持久化存储消息、会话和任务状态
4. **组队列**：管理每通道和每线程的并发控制
5. **Agent管理器**：管理Claude Agent SDK的生命周期
6. **MCP客户端**：连接kraken MCP（stdio）和tentacular MCP（HTTP）

## 关键设计决策

### 进程内执行模型

与NanoClaw的Docker容器执行不同，The Kraken采用进程内执行：
- **优势**：更低的延迟、更少的资源开销、更快的启动时间
- **实现**：通过Claude Agent SDK的`query()`方法直接调用
- **会话管理**：使用MessageStream保持`isSingleUserTurn=false`，防止SDK过早终止子Agent

### 线程级上下文

The Kraken支持Slack线程级别的对话上下文：
- 新Slack消息可以管道输入到运行中的会话
- 无需为每条消息生成新的调用
- 保持跨消息的上下文连续性

### 双MCP架构

系统同时连接两个MCP服务器：
1. **kraken MCP**：通过stdio连接，提供任务CRUD和消息发送功能
2. **tentacular MCP**：通过HTTP连接，提供集群操作（工作流列表、命名空间列表等）

## 部署与配置

### 本地开发

```bash
git clone git@github.com:randybias/thekraken.git
cd thekraken
npm install

# 创建.env文件（参见.env.example）
cat > .env << EOF
SLACK_BOT_TOKEN=xoxb-...
SLACK_APP_TOKEN=xapp-...    # Socket Mode（本地开发）
ANTHROPIC_API_KEY=sk-ant-...
EOF

npm run build
npm start
# 或热重载开发模式
npm run dev
```

### 生产部署（Kubernetes）

```bash
helm install thekraken ./charts/thekraken \
  --set secrets.slackBotToken=xoxb-... \
  --set secrets.anthropicApiKey=sk-ant-... \
  --set mcp.url=http://tentacular-mcp:8080 \
  --set oidc.issuer=https://keycloak.example.com/realms/tentacular \
  --set oidc.clientId=thekraken \
  --set secrets.oidcClientSecret=...
```

### 部署特点

- **单Pod架构**：无sidecar容器
- **数据持久化**：1Gi PVC存储SQLite、组文件夹、会话转录、IPC
- **版本锁定**：与Tentacular平台仓库同步版本

## 任务调度系统

The Kraken内置了任务调度器，支持三种调度模式：

| 模式 | 说明 | 示例 |
|------|------|------|
| Cron | 基于cron表达式的定时执行 | `0 9 * * 1-5` 工作日9点 |
| Interval | 固定间隔重复执行 | 每30分钟 |
| Once | 一次性延迟执行 | 2小时后执行 |

用户可以通过自然语言创建调度任务：

```
@The Kraken 每天早上9点运行日报生成工作流
@The Kraken 每30分钟检查一次系统健康状态
@The Kraken 2小时后提醒我审查PR
```

## 使用场景示例

### 场景1：工作流部署

```
用户: @The Kraken 帮我部署一个新的数据同步工作流
The Kraken: 好的，我来帮你部署数据同步工作流。请告诉我：
1. 工作流名称
2. 源数据源和目标数据源
3. 同步频率

用户: 名称叫daily-sync，从Postgres同步到S3，每天凌晨2点运行
The Kraken: 已创建daily-sync工作流配置。正在构建镜像...
[进度更新]
The Kraken: 部署完成！工作流已添加到daily-sync命名空间，
下次运行时间：明天凌晨2:00 UTC
```

### 场景2：任务监控

```
用户: @The Kraken 查看最近失败的任务
The Kraken: 过去24小时有3个失败任务：

1. backup-job (2026-04-08 14:32)
   错误: 连接超时
   日志: [查看日志]

2. report-generator (2026-04-08 11:15)
   错误: 内存不足
   建议: 增加资源限制

需要我帮你重试或调查吗？
```

### 场景3：自然语言工作流创建

```
用户: @The Kraken 创建一个工作流，每天早上抓取Hacker News热门文章，
用AI生成摘要，然后发送到#tech-news频道
The Kraken: 理解！我将创建包含以下步骤的工作流：

1. 抓取Hacker News API获取热门文章
2. 使用Claude生成文章摘要
3. 格式化并发送到#tech-news频道

正在生成工作流定义...
[生成代码预览]
确认无误后我将部署这个工作流。
```

## 技术栈与前置要求

| 组件 | 版本/要求 |
|------|----------|
| Node.js | 22+ |
| Slack工作区 | 已配置Slack应用 |
| Anthropic API | API密钥或Claude订阅OAuth令牌 |
| Kubernetes | 生产部署需要 |
| Keycloak | OIDC认证（可选） |

## 版本管理

The Kraken参与Tentacular平台仓库的锁步版本管理。所有仓库在每次发布时都打相同的版本标签。这种一致性确保了：
- 组件之间的兼容性
- 简化的升级流程
- 可预测的依赖关系

## 许可证说明

The Kraken采用双许可证：
- **LICENSE (MIT)**：覆盖原始NanoClaw代码库（Copyright 2025 Gavriel）
- **LICENSE2 (专有)**：覆盖Mirantis, Inc.从NanoClaw分叉点之后的所有修改和新增内容

## 项目状态与展望

**状态：实验性** — The Kraken功能完善但预计将经历架构重构。API、配置和部署模式可能会发生变化。

对于已经在使用Tentacular平台的团队，The Kraken提供了一个直观的方式来管理工作流，无需学习复杂的CLI命令或YAML配置。通过自然语言交互，它降低了工作流自动化的门槛，让更多团队成员能够参与到自动化建设中来。

随着AI Agent技术的成熟，类似The Kraken这样的对话式界面将成为DevOps和平台工程工具的标准配置，让复杂的基础设施管理变得像聊天一样简单。
