# OpenTulpa：自托管持久化AI代理运行时，让工作流随时间变得更智能

> OpenTulpa是一款自托管的持久化AI代理运行时，专为需要持久上下文、真实执行和可重用操作记忆的开发者设计。它通过FastAPI、LangGraph和SQLite实现上下文持久化、技能积累和审批门控，支持Telegram、Slack和内部API等多种接口，让AI代理不再是一次性对话工具，而是能够随时间学习和进化的智能助手。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-01T13:46:03.000Z
- 最近活动: 2026-04-01T13:52:56.358Z
- 热度: 163.9
- 关键词: OpenTulpa, AI代理, 自托管, 持久化, LangGraph, FastAPI, Telegram机器人, 自动化工作流, 技能积累, 审批门控
- 页面链接: https://www.zingnex.cn/forum/thread/opentulpa-ai
- Canonical: https://www.zingnex.cn/forum/thread/opentulpa-ai
- Markdown 来源: ingested_event

---

# OpenTulpa：自托管持久化AI代理运行时，让工作流随时间变得更智能

在当前的AI应用浪潮中，大多数智能代理演示都有一个共同的局限：它们在提示边界处停止。这些代理可以回答请求，可能调用一两个工具，然后丢弃所有可能让下一次运行更高效的操作状态。OpenTulpa的出现正是为了打破这一局限——它是一个自托管的持久化代理运行时，专为需要 durable context（持久上下文）、real execution（真实执行）和 reusable operational memory（可重用操作记忆）的开发者而设计。

## 持久化上下文：超越提示边界的记忆

传统AI助手的一个根本问题是缺乏真正的记忆。每次对话开始时，代理都像一个全新的实体，对之前的交互、用户的偏好、已经完成的任务一无所知。OpenTulpa通过持久化存储解决了这个问题：

### 存储的内容

OpenTulpa不仅仅保存聊天记录，它持久化存储的是工作的可重用部分：

- **偏好与指令（Preferences & Directives）**：用户的工作习惯、常用设置、特定要求
- **文件与工件（Files & Artifacts）**：生成的文档、代码、报告等可重用资产
- **先前决策（Prior Decisions）**：过去做出的选择及其理由，避免重复询问
- **上下文事件（Context Events）**：重要的交互记录和环境变化
- **技能（Skills）**：可重用的能力模块，可以被多次调用
- **例行程序（Routines）**：定期执行的工作流，可以自动或手动触发
- **线程汇总（Thread Rollups）**：对话历史的压缩摘要，保持上下文连续性
- **审批记录（Approvals）**：对外部影响操作的授权记录，确保安全合规
- **链接别名（Link Aliases）**：常用资源的快捷引用

### 实际场景示例

假设你要求OpenTulpa：每天早上监控这个市场，总结变化，并给我发送简报。

OpenTulpa的处理流程是：

1. **获取相关来源和先前上下文**：检查之前关于这个市场的记录、你的偏好设置、简报格式要求
2. **提取和总结重要变化**：分析市场数据，识别关键变动
3. **将简报存储为持久化工件**：生成的简报被保存，可以随时查阅
4. **将工作流保存为例行程序**：这个监控任务被记录下来，可以自动重复执行
5. **在下一次运行时重用先前上下文和偏好**：下次执行时自动应用相同的设置和格式

这种设计使得OpenTulpa不仅仅是一个对话工具，而是一个真正能够学习和进化的智能助手。

## 真实执行：从生成到行动

与许多只生成文本回复的AI助手不同，OpenTulpa被设计为通过工具行动。它支持多种工具类型：

### 网络检索

OpenTulpa可以进行网络搜索，获取网页内容，分析HTML、PDF、DOCX和图像。这使得它能够获取最新信息，分析外部文档，监控网站变化等。

### 文件操作

代理可以读写本地文件，管理目录，处理各种格式的文档。工件被保存在本地，使得整个系统可被检查，而不是消失在提示中。

### 浏览器自动化

通过Playwright集成，OpenTulpa可以控制浏览器，执行需要网页交互的任务，如填写表单、抓取动态内容、执行网页测试等。

### Slack集成

OpenTulpa可以列出频道、阅读历史消息、在获得用户同意后发布消息。这使得它成为团队协作的有力助手，可以自动汇总讨论、起草回复、监控重要频道等。

### 内部API

代理可以调用内部API，与企业系统集成，执行各种业务操作。

### 生成的脚本

OpenTulpa可以编写、保存和执行自定义脚本，将复杂的工作流自动化。

### 计划的例行程序

通过内置的调度器，代理可以执行一次性或定期重复的任务，无需人工干预。

## 技能积累：可复用的能力库

OpenTulpa的一个核心概念是技能（Skills）。当某个工作流重复出现时，OpenTulpa可以将其保存为可重用的技能。这使得运行时成为一个不断增长的有效行为库，而不是每次都重新发现相同的解决方案。

### 技能的创建与使用

当你向OpenTulpa描述一个工作流时，它可以：

1. **分析需求**：理解任务的输入、输出和执行步骤
2. **生成实现**：编写完成任务的代码和配置
3. **保存为技能**：将实现的逻辑封装为可重用的技能模块
4. **后续调用**：在未来类似请求中直接调用该技能，无需重新生成

### 技能的类型

OpenTulpa支持多种类型的技能：

- **API集成技能**：与特定API交互的能力
- **数据处理技能**：特定类型的数据转换和分析
- **通知技能**：通过各种渠道发送通知
- **监控技能**：定期检查某些指标或状态
- **自动化技能**：执行特定的自动化工作流

这种技能积累机制意味着OpenTulpa会随着使用变得越来越有用——每次交互都可能为未来的任务贡献新的能力。

## 审批门控：对外部影响操作的安全控制

OpenTulpa内置了审批代理（Approval Broker）机制，用于管理具有外部副作用的操作。这是确保代理安全运行的重要保障：

### 操作分类

- **读取导向和内部操作**：可以直接执行，无需审批
- **外部影响操作**：需要通过审批门控，获得用户明确授权后才能执行

### 审批机制

审批是持久的、一次性使用的、有时间限制的。这意味着：

- **持久性**：审批记录被保存，可以审计和追溯
- **一次性使用**：每个审批只能用于其授权的具体操作
- **时间限制**：审批有有效期，过期后需要重新申请

这种设计在保持代理自主性的同时，确保了对关键操作的适当控制，防止意外的副作用。

## 技术架构：FastAPI + LangGraph + SQLite

OpenTulpa的技术架构设计简洁而强大：

### 核心组件

```
Telegram / 内部API / 事件
         |
     FastAPI
         |
  捕获上下文 + 检索状态
         |
   LangGraph运行时
         |
  规划 + 工具执行 + 验证
         |
   外部操作的审批门控
         |
  持久化工件/技能/例行程序/汇总
         |
  本地持久化状态 (.opentulpa/, tulpa_stuff/)
```

### FastAPI应用

提供Webhook和内部路由，支持多种接口方式。

### LangGraph运行时

负责回合执行、验证、护栏和声明检查。LangGraph提供了强大的状态管理和工作流编排能力。

### 上下文服务

管理配置文件、文件、事件积压、线程汇总和别名。

### 技能存储

保存和检索可重用的能力模块。

### 调度器/任务服务

处理一次性或定期重复的例行程序。

### 审批代理

管理对外部影响操作的授权。

### 本地持久化存储

使用SQLite和嵌入式向量存储，确保数据完全本地化和隐私安全。

## 多平台接口支持

OpenTulpa支持多种交互方式：

### Telegram（可选）

通过创建Telegram机器人，用户可以通过聊天界面与OpenTulpa交互。支持文本消息、文件、语音消息、审批按钮，以及/setup、/fresh、/status等命令。

### 内部API

提供直接的内部聊天API，支持程序化使用。开发者可以将OpenTulpa集成到自己的应用程序中。

### Slack（可选）

支持列出频道、阅读历史消息、在获得用户同意后发布消息。

### 自建Webhook收件箱

OpenTulpa可以在tulpa_stuff/中设置自己的薄通道适配器，接受入站Webhook，将规范化信号排队，根据保存的规则唤醒，并通过适配器的出站API起草或发送回复。

## 部署与运行

OpenTulpa支持多种部署方式：

### 本地运行

要求：
- Python 3.12+
- uv（Python包管理器）
- OpenAI兼容的API密钥

安装和运行：
```bash
git clone <repo-url>
cd opentulpa
cp .env.example .env
# 编辑.env设置OPENROUTER_API_KEY
./start.sh --app
```

### Docker部署

```bash
docker build -t opentulpa .
docker run --rm -p 8000:8000 --env-file .env opentulpa
```

### Railway部署

Railway使用包含的Dockerfile，自动安装应用依赖、Node.js/npm和Playwright。

## 适用场景

OpenTulpa特别适合以下场景：

- **定期市场和竞争监控**：自动收集和分析市场信息，生成定期报告
- **Slack或收件箱分类与草稿生成**：自动处理消息，起草回复
- **文档审查与决策提取**：阅读文档，提取关键决策并记住它们
- **API集成脚手架与计划自动化**：构建API集成，保存为可重用技能，并计划执行
- **定期项目、状态或执行摘要**：自动生成和分发项目更新
- **自托管的带防护行动的开发者助手**：在保持完全控制的同时获得AI辅助

## 示例请求

以下是一些可以向OpenTulpa提出的请求示例：

- 总结Slack中最重要的未读项目并起草回复。
- 每天早上监控这个市场并给我发送简明摘要。
- 阅读这个PDF，提取决策，并记住它们用于未来的工作。
- 为这个API构建集成，保存为可重用技能，并计划它。
- 检查自昨天以来这个项目的变化并起草状态更新。

## 核心循环

OpenTulpa的执行遵循一个核心循环：

1. **捕获上下文**：理解用户的请求和当前环境
2. **检索持久状态**：获取相关的历史信息、偏好和技能
3. **规划**：确定完成任务所需的步骤
4. **使用工具行动**：执行必要的操作
5. **门控副作用**：对可能影响外部的操作进行审批
6. **持久化输出**：保存工件、技能、例行程序和更新的线程上下文

## 结语

OpenTulpa代表了AI代理发展的一个重要方向——从一次性对话工具向持久化、可学习、可进化的智能系统转变。通过结合FastAPI的灵活性、LangGraph的工作流编排能力和SQLite的轻量级持久化，OpenTulpa为开发者提供了一个既强大又易于部署的自托管AI代理解决方案。

对于那些希望拥有真正个人AI助手的开发者来说，OpenTulpa提供了一个令人信服的选择：完全自托管、数据隐私可控、能力随时间增长、并且始终保持可检查和可编辑。在这个AI能力快速演进的时代，OpenTulpa展示了一种更加可持续和可控的AI应用范式。
