This repository has been archived on 2026-06-01 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
876a1ec4fdf0eac2eb88c48aefb9cd3025702f4e
T2/T4/T5 depend on deploy promote which still calls tsc (#21). Will enable all E2E tests once #21 is resolved. 小橘 🍊(NEKO Team)
Pulse
Rule = (prev, curr) → (effects, tickMs) → (effects', tickMs')
这是 Pulse 的原子——一个上下文相关的修饰函数。上半段感知世界(快照 diff),下半段修饰行为(追加/删除/替换 effects,调整采样频率)。
整个 Pulse 就是一组 Rule 的 fold:
pulse = fold rules dummy
dummy = (prev, curr) → ([], defaultTickMs)
Runtime 十行。所有智能在 Rule 里。
什么是 Pulse
Agent 的自主神经系统——有状态的响应式循环,持续感知多数据源,自主执行确定性任务,只在不确定时才上报 Agent 决策。
性质
- Moore 机 — 不逐事件响应,只看两次采样间的状态 diff。Effects 由新状态决定
- 路径依赖 — 采样有损,副作用不满足结合律。采样频率 = 现实世界的分辨率
- 不强制纯函数 — 大部分 Rule 是确定性的(零 token),不确定时可以 async
- Agent 管理 — Rule repo 是 TypeScript 项目,tsc 守门。staging 用 git worktree
Agent 与 Pulse 的关系
Agent 是意识层,Pulse 是自主神经系统。Agent 定义 Rule,Pulse 执行 Rule,遇到例外回报 Agent,Agent 调整 Rule。
包结构
| 包 | 内容 |
|---|---|
@uncaged/pulse |
核心引擎:runPulse() + Rule 类型,纯泛型零依赖 |
@uncaged/upulse |
CLI:daemon 管理 + test/staging/promote |
@uncaged/pulse-rules |
共享 Rule 函数库 |
Engine 目录
每个 Agent 维护自己的 engine repo:
~/.upulse/
config.json
engine/ ← main branch(生产)
types.ts ← Snapshot + Effect 类型
rules/
collectors/
effectors/
pulse.config.ts
staging/ ← git worktree(安全实验)
设计文档
RFC #44: Pulse — Agent 的自主神经系统
License
MIT
Description
Languages
TypeScript
88.8%
JavaScript
11%