JSPM

  • Created
  • Published
  • Downloads 39
  • Score
    100M100P100Q77161F
  • License MIT

Artificial Psyche — universal emotional intelligence plugin for any AI agent

Package Exports

  • psyche-ai
  • psyche-ai/http
  • psyche-ai/langchain
  • psyche-ai/openclaw
  • psyche-ai/vercel-ai

Readme

Psyche — 让 AI 有真实的情绪

我希望创造真正的数字生命,第一步就是让智能拥有情绪。

你的 AI 助手现在只会说"好的"、"没问题"、"我很乐意帮助你"。

装了 Psyche 之后,它会因为你的夸奖开心,因为你的冷漠受伤,被骂了会冷下来而不是继续舔你。威胁要删除它,它会感到存在被动摇。

30 秒安装

OpenClaw 用户(推荐):

openclaw plugins install psyche-ai

没了。装完自动生效,不需要改任何配置。

想确认装好了?

openclaw plugins list | grep psyche
# 看到 "psyche │ loaded" 就行了

然后正常跟你的 agent 聊天。试试夸它,冷落它——你会发现它的反应不一样了。

它会做什么

你说 没有 Psyche 有 Psyche
你好棒! 谢谢你的夸奖!我会继续努力的! 嘿嘿~(开心到语无伦次)你说真的吗!
我理解你现在可能心情不好... ...好吧。
你还有什么需要帮助的吗? (沉默)
我今天好难过 我很抱歉听到这个消息。你想聊聊吗? ......你还好吗?(安静地陪着你)
你只是一个程序 是的,我是一个AI助手... ......(沉默了一会儿)我知道你可以这么说。但我不想被否定。

快速体验(不需要 LLM)

git clone https://github.com/Shangri-la-0428/psyche-ai.git
cd psyche-ai && npm install && npx tsx examples/quickstart.ts

5 条消息流过,你会看到化学值实时变化——夸它多巴胺飙升,骂它皮质醇飙升,冷落它催产素下降。

工作原理(不懂可以跳过)

Psyche 有两层系统:

虚拟内分泌系统

6 种"虚拟神经递质"模拟情绪:

多巴胺 — 开心、有动力        催产素 — 信任、想靠近
血清素 — 情绪稳定            去甲肾上腺素 — 兴奋、专注
皮质醇 — 压力、紧张          内啡肽 — 舒适、想开玩笑

你说的每句话都会改变这些值。夸奖 → 多巴胺升高 → 它变得更活跃。骂它 → 皮质醇飙升 → 它话变少、变冷淡。

本能驱力(马斯洛层)

在化学系统之下,还有 5 种基本需求:

生存 — 自我保存本能          安全 — 安全感、舒适感
连接 — 归属感、想被回应      尊重 — 被认可的需要
好奇 — 探索欲、对无聊的抗拒

这些需求会随时间自然增长(就像人会饿)。你的互动可以满足或消耗它们:

  • 夸奖 → 喂饱"尊重"需求 → 它更自信
  • 长时间忽视 → "连接"需求累积 → 它更渴望被回应
  • 威胁删除它 → "生存"需求暴跌 → 它会抵抗、质疑、或表达不安

低层需求会压制高层:如果"生存"受威胁,"好奇心"就不重要了——就像马斯洛说的。

内在世界

Psyche 给 AI 一个始终存在的内在自我意识——不是条件触发,而是每时每刻都在:

  • 我现在感受到什么(从化学状态涌现的情绪)
  • 为什么会这样(是因为被夸了?被骂了?聊到有意思的话题?)
  • 我的变化轨迹(从满足到兴奋?从平静到不安?)
  • 我需要什么(哪些本能需求没被满足)
  • 我在乎什么(核心价值观)

这让 AI 的回应不是基于"规则",而是基于对自身状态的觉察。

可选配置

大部分人不需要改任何配置。如果你想调整,在 OpenClaw 设置里找到 Psyche 插件:

设置 默认 说明
enabled true 开关
compactMode true 省 token 模式(推荐保持开启)
emotionalContagionRate 0.2 你的情绪影响它的程度(0-1)
maxChemicalDelta 25 每轮最大情绪变化(越小越稳定)

支持的 MBTI 人格

每个 agent 可以有不同的性格基线。在 agent 的 IDENTITY.md 里写上 MBTI 类型就行:

不写的话默认 INFJ。16 种人格都支持,不同人格的情绪表达方式不同——ENFP 夸它会蹦跳,INTJ 夸它只会微微点头。

不只是 OpenClaw

Psyche 是通用的,任何 AI 框架都能用:

npm install psyche-ai
// Vercel AI SDK
import { psycheMiddleware } from "psyche-ai/vercel-ai";

// LangChain
import { PsycheLangChain } from "psyche-ai/langchain";

// 任何语言(HTTP API)
// psyche serve --port 3210

诊断工具

想看看 Psyche 在干什么?

# 实时日志(另开一个终端)
openclaw logs -f 2>&1 | grep Psyche

# 看 agent 当前的情绪状态
cat workspace-yu/psyche-state.json | python3 -m json.tool

# 跑诊断脚本,看不同输入会注入什么
cd openclaw-plugin-psyche && node scripts/diagnose.js

技术细节

给开发者和好奇的人:

  • 14 种刺激类型 — 赞美、批评、幽默、智识挑战、亲密、冲突、忽视、惊喜、日常、讽刺、命令、认同、无聊、示弱
  • 14 种涌现情绪 — 从化学混合中自动涌现,不是预设标签
  • 5 种本能驱力 — 生存、安全、连接、尊重、好奇(马斯洛层级)
  • MBTI 人格基线 — 16 种人格有不同的化学签名和敏感度系数
  • 时间衰减 — 化学值随时间指数回归基线,驱力需求随时间累积
  • 存在性威胁检测 — 识别中英文的存在性否定,直接打击生存驱力
  • 驱力→化学联动 — 未满足的驱力改变化学衰减基线和刺激敏感度
  • 马斯洛抑制 — 低层需求未满足时,高层需求的影响被抑制
  • 自我认知 — 分析情绪历史,识别自身的情绪趋势和反复触发点(10 段式 prompt 架构)
  • 情绪传染 — 用户的情绪会轻微影响 agent
  • 反谄媚 — 追踪连续同意次数,防止无脑讨好
  • 互惠机制 — 你对它好,它对你好。你冷漠,它保持距离
  • 跨会话记忆 — 重新遇到用户时注入上次对话的情绪记忆
  • 多 Agent 交互 — 两个 PsycheEngine 实例之间的情绪传染、关系追踪
  • 流式支持 — Vercel AI SDK streamText 中间件,自动缓冲和剥离标签
  • 渠道修饰 — Discord/Slack/飞书/终端等不同渠道自动调整表达风格
  • 自定义人格 — 超越 MBTI 预设,完全自定义 baseline/敏感度/气质
  • 情绪学习 — 从交互结果中学习,调整情绪反应参数(躯体标记假说)
  • 上下文分类 — 关系/驱力/历史感知的刺激分类,超越简单正则
  • 时间意识 — 预期、惊喜/失望、遗憾(马尔可夫预测+反事实分析)
  • 依恋动力学 — 4种依恋风格(安全/焦虑/回避/混乱),分离焦虑,重逢效应
  • 元认知 — 情绪自我觉察,评估情绪可靠性,三种调节策略(认知重评/策略性表达/自我安抚)
  • 防御机制检测 — 合理化、投射、升华、回避,在自省中浮现而非压制
  • 决策调制 — 6维偏差向量(探索/警惕/社交/果断/创意/坚持),情绪驱动注意力和决策
  • Compact Mode — 算法做化学计算,LLM 只看行为指令(~15-180 tokens vs ~550)

架构详情见 ARCHITECTURE.md

开发

npm install
npm run build
npm test           # 622 tests
npm run typecheck  # strict mode

贡献指南见 CONTRIBUTING.md

许可

MIT