n-yokomachi/affectus

GitHub: n-yokomachi/affectus

affectus 是一个为LLM智能体提供多轴情绪向量和时间衰减的状态引擎,实现动态情感表达。

Stars: 1 | Forks: 0

# 示例: macOS (Apple Silicon) 一个用于LLM智能体的情绪状态引擎。`affectus` 维护一个多轴情绪向量(默认使用普拉切克的8种基本情绪),随时间将其向基线松弛,并公开原始数值状态供LLM读取和解释——从而实现智能体的语气能够随着持久的、衰减的心境而变化。 它与框架无关:任何能运行shell命令的智能体都可以使用它。 ## 概念:两个循环 - **对话循环(自我报告):** 每次交互轮次,智能体运行 `affectus show` 以JSON对象形式读取其当前的情绪向量,根据普拉切克情绪轮关系性地解读数值,为其回复着色,然后运行 `affectus feel` 报告此次交流如何改变其情绪。 - **后台循环(定时任务):** 计划性的 `affectus tick` 将向量向基线松弛,因此即使智能体处于空闲状态,情绪也会自然漂移。 ## 安装 ### 预编译二进制文件(无需Go工具链) 从[发布页面](https://github.com/n-yokomachi/affectus/releases)下载适合您平台的压缩包,解压它,并将 `affectus` 二进制文件放到您的PATH路径中: ``` # affectus tar -xzf affectus_v0.1.1_darwin_arm64.tar.gz mv affectus /usr/local/bin/ ``` ### 从源码构建 ``` go install github.com/n-yokomachi/affectus/cmd/affectus@latest ``` 需要macOS或Linux(affectus使用Unix文件锁)。 ## 快速开始 ``` affectus init # write default config + baseline state affectus show # -> {"joy":0.00,"trust":0.00,...} affectus feel '{"joy":0.6,"surprise":0.2}' affectus show # -> {"joy":0.60,"trust":0.00,...,"surprise":0.20,...} ``` 默认情况下,状态和配置文件位于 `~/.config/affectus/` 下。可通过 `--config` / `--state` 参数或 `AFFECTUS_CONFIG` / `AFFECTUS_STATE` 环境变量覆盖。 ## 命令 | 命令 | 描述 | |---|---| | `affectus init [--force]` | 写入默认配置和一个基线状态文件 | | `affectus show [--format text\|json]` | 打印当前情绪(只读) | | `affectus get` | 以JSON格式打印衰减后的原始轴值(只读) | | `affectus feel ''` | 应用自我报告的增量(使用 `-` 从stdin读取) | | `affectus tick` | 仅应用时间衰减——定时任务目标 | | `affectus reset` | 将所有轴重置为基线 | | `affectus mcp` | 运行一个暴露 `emotion_show` / `emotion_feel` 的MCP服务器(stdio) | | `affectus viz [--port N]` | 提供一个展示情绪状态实时可视化的网页服务器(默认端口8765) | ## 将其集成到智能体中 1. 将 `affectus` 二进制文件放入PATH路径。 2. 运行 `affectus init`。 3. 调度衰减:将 `examples/cron.sample` 添加到您的crontab中。 4. 教会智能体协议:将 `examples/system-prompt-snippet.md` 粘贴到其系统提示词中。 5. 支持MCP的智能体可以改为注册 `affectus mcp`——请参阅该命令说明。 ## 可视化情绪状态 `affectus viz` 启动一个本地Web服务器,可视化实时情绪状态——一个根据强度着色的普拉切克轮和一组衰减条。 ``` affectus viz # then open http://localhost:8765 ``` 该页面轮询状态并显示其衰减到当前时刻的效果,因此在交互轮次之间情绪会明显地向基线漂移。该服务器是只读的。 ## 情绪模型 默认轴是普拉切克的8种基本情绪(喜悦、悲伤、信任、厌恶、恐惧、愤怒、惊讶、期待),每种情绪值范围为 `0.0–1.0`。轴名称、数量、基线和半衰期均可配置——请参阅 `affectus init` 写入的配置文件和 `examples/configs/plutchik8-ja.yaml`。 **v0.3 备注:** affectus 不再将情绪渲染为自然语言文本。它发出一个包含所有轴的单行JSON对象;LLM负责(根据普拉切克情绪轮)关系性地读取这些值,并相应地调节其响应。有关指导,请参阅 `examples/system-prompt-snippet.md`。 默认情况下,衰减在所有轴上是对称的:没有一种情绪会比另一种持续更久。 ## 许可证 MIT
标签:Cutter, DNS解析, EVTX分析, Go语言, Homebrew安装, LLM代理, Plutchik情绪轮, 人工智能, 代理系统, 多轴情感向量, 开源项目, 情感状态引擎, 情感计算, 情绪衰减, 提示注入, 日志审计, 时间衰减, 状态管理, 用户模式Hook绕过, 程序破解, 自然语言生成, 集群管理