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.

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

S
Description
Agent autonomic nervous system
Readme 2.9 MiB
Languages
TypeScript 88.8%
JavaScript 11%