Metadata-Version: 2.3
Name: tapehead
Version: 0.0.1
Summary: Agent harness built on an append-only tape
Author: rainzee wang
Author-email: rainzee wang <rainzee.w@gmail.com>
Requires-Dist: msgspec>=0.21.1
Requires-Python: >=3.13
Project-URL: Repository, https://github.com/rainzee/tapehead
Description-Content-Type: text/markdown

# tapehead

基于磁带 (Tape) 的 agent 框架. 名字取自录音机的磁头: 录制时写带, 回放时读带.

## 核心概念

以下概念已经确定, 后续设计都以它们为前提. 仍在讨论中的问题见 [#1](https://github.com/rainzee/tapehead/issues/1).

### Tape

**Tape (磁带) 是 tapehead 的核心概念.** agent 发生过的一切都录在磁带上, 磁带是唯一的事实来源.

其他概念都围绕磁带展开, 而不是反过来:

- **会话**: 只是约定俗成的说法, 一盘磁带就是一个持久化的会话
- **持久化**: 存放磁带, 不存放磁带之外的任何东西
- **上下文**: 模型看到的消息从磁带回放得出, 不单独存储

### 只追加

磁带只能在末尾追加, 录上去的内容不修改, 不删除, 不重排.

- **序号**: 每一帧的序号就是它在磁带上的位置, 从 0 开始连续, 没有空洞
- **单写者**: 同一时刻一盘磁带只有一个写入方
- **修复靠追加**: 中断留下的未闭合状态, 通过追加补写来闭合, 不改动已录的帧
- **增量不上带**: 流式增量 (如 token 级输出) 只出现在实时流中, 不录上磁带
