PUAX 驭 Agent 之道 · 线下培训讲义 v3.13
/* Hallmark · genre: atmospheric · macrostructure: Narrative Workflow · theme: Midnight (dark paper / roman serif display / cinnabar accent)
* nav: N5 Floating pill · footer: Ft5 Statement · enrichment: E5 hand-built SVG (x2)
* motion: fade-in only · copy: honest metrics, sourced from repo README / CHANGELOG / docs
*/
:root{
/* —- canvas —- */
–color-paper: oklch(15% 0.016 264);
–color-paper-2: oklch(19.5% 0.020 264);
–color-paper-3: oklch(24% 0.024 264);
–color-paper-edge: oklch(30% 0.026 264);
/* —- ink —- */
–color-ink: oklch(94% 0.008 70);
–color-ink-2: oklch(80% 0.014 70);
–color-ink-3: oklch(63% 0.018 70);
/* —- accent: single warm hue (cinnabar) + one warm secondary (amber) —- */
–color-accent: oklch(66% 0.205 32);
–color-accent-dim: oklch(46% 0.120 32);
–color-accent-2: oklch(82% 0.145 82);
–color-focus: oklch(82% 0.145 82);
/* —- type —- */
–font-display: “Noto Serif SC”,”Source Han Serif SC”,”Songti SC”,”STSong”,”SimSun”,serif;
–font-body: “PingFang SC”,”Microsoft YaHei”,”Noto Sans SC”,”Hiragino Sans GB”,system-ui,-apple-system,sans-serif;
–font-mono: “JetBrains Mono”,”Cascadia Mono”,”SFMono-Regular”,Consolas,”Courier New”,monospace;
–text-display: clamp(2.75rem, 7.5vw + 0.5rem, 5.75rem);
–text-display-s:clamp(2rem, 4.6vw + 0.4rem, 3.5rem);
–text-4xl: clamp(1.6rem, 3vw + 0.3rem, 2.35rem);
–text-3xl: clamp(1.35rem, 2.2vw + 0.3rem, 1.85rem);
–text-2xl: clamp(1.15rem, 1.5vw + 0.3rem, 1.4rem);
–text-lg: clamp(1.02rem, 0.6vw + 0.3rem, 1.13rem);
–text-base: 1rem;
–text-sm: 0.9rem;
–text-xs: 0.78rem;
/* —- space: 4pt —- */
–space-xs: 4px;
–space-sm: 8px;
–space-md: 16px;
–space-lg: 24px;
–space-xl: 40px;
–space-2xl: 64px;
–space-3xl: 96px;
–space-4xl: 140px;
/* —- rule & radius —- */
–rule-hair: 1px solid var(–color-paper-edge);
–radius-sm: 6px;
–radius-md: 12px;
–radius-lg: 20px;
–radius-pill: 999px;
/* —- motion —- */
–ease-out: cubic-bezier(0.22, 1, 0.36, 1);
–ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
–dur-fast: 140ms;
–dur-mid: 260ms;
–dur-slow: 620ms;
}
*,*::before,*::after{ box-sizing:border-box; }
html,body{ overflow-x:clip; }
html{ scroll-behavior:smooth; scroll-padding-top:96px; }
body{
margin:0;
background:var(–color-paper);
color:var(–color-ink-2);
font-family:var(–font-body);
font-size:var(–text-base);
line-height:1.85;
-webkit-font-smoothing:antialiased;
}
/* two fixed warm blooms — the canvas is the design */
body::before{
content:””;
position:fixed; inset:0; z-index:0; pointer-events:none;
background:
radial-gradient(46vw 46vw at 12% -6%, oklch(46% 0.16 32 / 0.30), transparent 68%),
radial-gradient(40vw 40vw at 92% 24%, oklch(52% 0.12 74 / 0.18), transparent 66%);
}
body > *{ position:relative; z-index:1; }
h1,h2,h3,h4{
font-family:var(–font-display);
font-style:normal; /* roman — italic headers banned */
font-weight:600;
color:var(–color-ink);
line-height:1.28;
letter-spacing:0.01em;
margin:0;
overflow-wrap:anywhere; min-width:0;
}
p{ margin:0 0 var(–space-md); }
a{ color:var(–color-accent-2); text-decoration:none; border-bottom:1px solid var(–color-accent-dim); }
a:hover{ color:var(–color-accent); border-bottom-color:var(–color-accent); }
strong{ color:var(–color-ink); font-weight:600; }
em{ font-style:normal; color:var(–color-accent-2); }
.wrap{ width:100%; max-width:1120px; margin:0 auto; padding:0 var(–space-lg); }
.wrap-narrow{ max-width:820px; }
/* ============ N5 floating pill nav ============ */
.nav{
position:sticky; top:var(–space-md); z-index:50;
display:flex; justify-content:center;
margin:0 auto var(–space-xl);
pointer-events:none;
}
.nav-inner{
pointer-events:auto;
display:flex; align-items:center; gap:2px;
padding:6px 10px;
background:oklch(19% 0.02 264 / 0.72);
backdrop-filter:blur(14px) saturate(140%);
border:1px solid var(–color-paper-edge);
border-radius:var(–radius-pill);
box-shadow:0 12px 32px oklch(8% 0.02 264 / 0.55);
}
.nav a{
display:inline-flex; align-items:center; justify-content:center;
min-width:34px; height:32px; padding:0 9px;
border:0; border-radius:var(–radius-pill);
font-family:var(–font-display); font-size:var(–text-sm);
color:var(–color-ink-3); white-space:nowrap;
transition:color var(–dur-fast) var(–ease-out), background var(–dur-fast) var(–ease-out);
}
.nav a:hover{ color:var(–color-ink); background:var(–color-paper-3); }
.nav a:focus-visible{ outline:2px solid var(–color-focus); outline-offset:2px; }
.nav a:active{ transform:translateY(1px); }
.nav .sep{ width:1px; height:18px; background:var(–color-paper-edge); margin:0 6px; }
.nav .brand{
font-family:var(–font-display); font-size:var(–text-sm);
color:var(–color-ink); padding:0 8px 0 6px; letter-spacing:0.16em;
}
/* ============ hero ============ */
.hero{ padding:var(–space-2xl) 0 var(–space-2xl); }
.eyebrow{
font-family:var(–font-mono); font-size:var(–text-xs);
letter-spacing:0.24em; text-transform:uppercase;
color:var(–color-accent); margin:0 0 var(–space-lg);
}
.hero h1{
font-size:var(–text-display);
font-weight:700; letter-spacing:0.04em;
margin:0 0 var(–space-md);
}
.hero h1 .accent{ color:var(–color-accent); }
.hero-sub{
font-size:var(–text-lg); color:var(–color-ink-2);
max-width:46ch; margin:0 0 var(–space-xl);
}
.hero-sub b{ color:var(–color-ink); font-weight:600; }
.stat-row{
display:grid; gap:1px; margin:0 0 var(–space-xl);
grid-template-columns:repeat(auto-fit,minmax(112px,1fr));
background:var(–color-paper-edge);
border:1px solid var(–color-paper-edge);
border-radius:var(–radius-md); overflow:hidden;
}
.stat{ background:var(–color-paper-2); padding:var(–space-md) var(–space-sm); text-align:center; }
.stat b{
display:block; font-family:var(–font-display); font-size:var(–text-3xl);
color:var(–color-ink); line-height:1.1; letter-spacing:0.02em;
}
.stat span{ font-size:var(–text-xs); color:var(–color-ink-3); letter-spacing:0.06em; }
/* the 200-char brief */
.brief{
background:var(–color-paper-2);
border:1px solid var(–color-paper-edge);
border-left:3px solid var(–color-accent);
border-radius:var(–radius-md);
padding:var(–space-lg) var(–space-xl);
}
.brief .label{
font-family:var(–font-mono); font-size:var(–text-xs);
letter-spacing:0.2em; color:var(–color-accent);
margin:0 0 var(–space-sm);
}
.brief p{ color:var(–color-ink-2); margin:0; font-size:var(–text-lg); line-height:1.95; }
.brief .meta{ margin-top:var(–space-md); font-size:var(–text-xs); color:var(–color-ink-3); }
/* ============ chapter ============ */
.chapter{ padding:var(–space-3xl) 0 0; }
.chapter-head{ margin-bottom:var(–space-xl); }
.chapter-tag{
font-family:var(–font-display); font-size:var(–text-sm);
letter-spacing:0.34em; color:var(–color-accent);
margin:0 0 var(–space-sm);
}
.chapter-head h2{ font-size:var(–text-display-s); margin:0 0 var(–space-md); }
.chapter-head p.lede{ max-width:62ch; color:var(–color-ink-3); font-size:var(–text-lg); margin:0; }
/* ============ cards / grids ============ */
.grid{ display:grid; gap:var(–space-md); }
.g2{ grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); }
.g3{ grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); }
.g5{ grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr)); }
.card{
background:var(–color-paper-2);
border:1px solid var(–color-paper-edge);
border-radius:var(–radius-md);
padding:var(–space-lg);
transition:transform var(–dur-mid) var(–ease-out), box-shadow var(–dur-mid) var(–ease-out), border-color var(–dur-mid) var(–ease-out);
}
.card:hover{
transform:translateY(-3px);
border-color:var(–color-accent-dim);
box-shadow:0 18px 40px oklch(30% 0.10 32 / 0.28);
}
.card h3{ font-size:var(–text-2xl); margin-bottom:var(–space-sm); }
.card p{ font-size:var(–text-sm); color:var(–color-ink-3); margin:0; line-height:1.8; }
.card .idx{
font-family:var(–font-mono); font-size:var(–text-xs);
color:var(–color-accent); letter-spacing:0.16em; display:block; margin-bottom:var(–space-xs);
}
/* formula strip */
.formula{
background:var(–color-paper-3);
border:1px solid var(–color-accent-dim);
border-radius:var(–radius-md);
padding:var(–space-lg);
font-family:var(–font-mono); font-size:var(–text-sm);
color:var(–color-ink); line-height:2.1;
text-align:center; overflow-wrap:anywhere;
}
.formula b{ color:var(–color-accent-2); font-weight:500; }
.formula .op{ color:var(–color-ink-3); }
/* tables */
.table-wrap{ overflow-x:auto; border:1px solid var(–color-paper-edge); border-radius:var(–radius-md); }
table{ width:100%; border-collapse:collapse; font-size:var(–text-sm); min-width:520px; }
th,td{ text-align:left; padding:12px var(–space-md); border-bottom:1px solid var(–color-paper-edge); vertical-align:top; }
thead th{
font-family:var(–font-display); font-weight:600; color:var(–color-ink);
background:var(–color-paper-3); font-size:var(–text-xs); letter-spacing:0.14em;
white-space:nowrap;
}
tbody tr:last-child td{ border-bottom:0; }
tbody tr:hover td{ background:oklch(24% 0.02 264 / 0.5); }
td code,li code,p code{ font-family:var(–font-mono); font-size:0.88em; color:var(–color-accent-2); background:var(–color-paper-3); padding:1px 5px; border-radius:4px; }
/* code block */
.code{
position:relative; margin:var(–space-md) 0 0;
background:oklch(12% 0.014 264);
border:1px solid var(–color-paper-edge);
border-radius:var(–radius-md);
padding:var(–space-lg);
overflow-x:auto;
}
.code pre{ margin:0; font-family:var(–font-mono); font-size:var(–text-xs); line-height:1.9; color:var(–color-ink-2); white-space:pre; }
.code .c{ color:var(–color-ink-3); }
.code .k{ color:var(–color-accent-2); }
.code .s{ color:var(–color-accent); }
.copy{
position:absolute; top:10px; right:10px;
font-family:var(–font-mono); font-size:var(–text-xs);
color:var(–color-ink-3); background:var(–color-paper-2);
border:1px solid var(–color-paper-edge); border-radius:var(–radius-sm);
padding:4px 10px; cursor:pointer;
transition:color var(–dur-fast) var(–ease-out), border-color var(–dur-fast) var(–ease-out);
}
.copy:hover{ color:var(–color-ink); border-color:var(–color-accent-dim); }
.copy:focus-visible{ outline:2px solid var(–color-focus); outline-offset:2px; }
.copy:active{ transform:translateY(1px); }
.copy[data-state=”done”]{ color:var(–color-accent-2); border-color:var(–color-accent-dim); }
/* ordered steps */
.steps{ counter-reset:s; list-style:none; margin:0; padding:0; }
.steps li{
counter-increment:s; position:relative;
padding:0 0 var(–space-md) var(–space-xl);
border-left:1px solid var(–color-paper-edge);
margin-left:10px;
}
.steps li:last-child{ border-left-color:transparent; padding-bottom:0; }
.steps li::before{
content:counter(s);
position:absolute; left:-11px; top:2px;
width:22px; height:22px; border-radius:50%;
background:var(–color-paper-3); border:1px solid var(–color-accent-dim);
color:var(–color-accent-2); font-family:var(–font-mono); font-size:var(–text-xs);
display:grid; place-items:center;
}
.steps li b{ display:block; color:var(–color-ink); font-family:var(–font-display); font-size:var(–text-lg); }
.steps li span{ font-size:var(–text-sm); color:var(–color-ink-3); }
/* quote */
.pull{
margin:var(–space-xl) 0 0;
padding:var(–space-lg) 0 var(–space-lg) var(–space-xl);
border-left:2px solid var(–color-accent);
font-family:var(–font-display); font-size:var(–text-3xl);
color:var(–color-ink); line-height:1.6;
}
.pull cite{ display:block; margin-top:var(–space-sm); font-family:var(–font-body); font-size:var(–text-xs); color:var(–color-ink-3); font-style:normal; letter-spacing:0.08em; }
/* figure / svg */
figure{ margin:var(–space-xl) 0 0; }
figure svg{ display:block; width:100%; height:auto; }
figcaption{ margin-top:var(–space-sm); font-size:var(–text-xs); color:var(–color-ink-3); }
/* chips */
.chips{ display:flex; flex-wrap:wrap; gap:var(–space-sm); margin-top:var(–space-md); }
.chip{
font-family:var(–font-mono); font-size:var(–text-xs);
color:var(–color-ink-2); background:var(–color-paper-3);
border:1px solid var(–color-paper-edge); border-radius:var(–radius-pill);
padding:5px 13px;
}
/* warn block */
.warn{
margin-top:var(–space-lg);
background:oklch(24% 0.05 32 / 0.35);
border:1px solid var(–color-accent-dim);
border-radius:var(–radius-md);
padding:var(–space-md) var(–space-lg);
font-size:var(–text-sm); color:var(–color-ink-2);
}
.warn b{ color:var(–color-accent-2); }
/* ============ social cards ============ */
.cards-bar{ display:flex; align-items:center; justify-content:space-between; gap:var(–space-md); flex-wrap:wrap; margin-bottom:var(–space-lg); }
.btn{
font-family:var(–font-mono); font-size:var(–text-sm);
color:var(–color-ink); background:var(–color-paper-3);
border:1px solid var(–color-paper-edge); border-radius:var(–radius-pill);
padding:9px 20px; cursor:pointer; white-space:nowrap;
transition:background var(–dur-fast) var(–ease-out), border-color var(–dur-fast) var(–ease-out), transform var(–dur-fast) var(–ease-out);
}
.btn:hover{ background:var(–color-accent-dim); border-color:var(–color-accent); }
.btn:focus-visible{ outline:2px solid var(–color-focus); outline-offset:3px; }
.btn:active{ transform:translateY(1px); }
.btn[aria-pressed=”true”]{ background:var(–color-accent); border-color:var(–color-accent); color:oklch(14% 0.02 264); }
.card-grid{ display:grid; gap:var(–space-lg); grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr)); }
.scard{
aspect-ratio:3/4;
display:flex; flex-direction:column; justify-content:space-between;
padding:var(–space-lg);
background:var(–color-paper-2);
border:1px solid var(–color-paper-edge);
border-radius:var(–radius-lg);
position:relative; overflow:hidden;
transition:transform var(–dur-mid) var(–ease-out), box-shadow var(–dur-mid) var(–ease-out);
}
.scard::after{
content:””; position:absolute; inset:auto -30% -40% -30%; height:60%;
background:radial-gradient(60% 100% at 50% 100%, oklch(50% 0.17 32 / 0.30), transparent 70%);
pointer-events:none;
}
.scard:hover{ transform:translateY(-4px); box-shadow:0 22px 48px oklch(30% 0.11 32 / 0.34); }
.scard .sc-top{ font-family:var(–font-mono); font-size:var(–text-xs); letter-spacing:0.2em; color:var(–color-accent); }
.scard h3{
font-size:clamp(1.3rem,2.4vw,1.75rem); line-height:1.42; margin:var(–space-md) 0;
color:var(–color-ink);
}
.scard h3 .hl{ color:var(–color-accent-2); }
.scard p{ font-size:var(–text-sm); color:var(–color-ink-3); margin:0; line-height:1.85; }
.scard .sc-foot{
font-family:var(–font-mono); font-size:var(–text-xs);
color:var(–color-ink-3); letter-spacing:0.1em;
padding-top:var(–space-md); border-top:1px solid var(–color-paper-edge);
display:flex; justify-content:space-between; gap:var(–space-sm);
}
/* card mode (print / screenshot) */
body.card-mode .nav,
body.card-mode .hero,
body.card-mode .chapter,
body.card-mode .foot{ display:none; }
body.card-mode #cards{ padding-top:0; }
body.card-mode .card-grid{ grid-template-columns:1fr; max-width:390px; margin:0 auto; }
body.card-mode .cards-bar{ max-width:390px; margin:0 auto var(–space-md); }
body.card-mode .scard{ margin-bottom:var(–space-lg); }
/* ============ Ft5 statement footer ============ */
.foot{
margin-top:var(–space-4xl);
padding:var(–space-2xl) 0 var(–space-3xl);
border-top:1px solid var(–color-paper-edge);
text-align:center;
}
.foot .statement{
font-family:var(–font-display); font-size:var(–text-4xl);
color:var(–color-ink); letter-spacing:0.06em; margin:0 0 var(–space-lg);
}
.foot .links{ display:flex; gap:var(–space-lg); justify-content:center; flex-wrap:wrap; font-size:var(–text-sm); }
.foot .fine{ margin-top:var(–space-xl); font-size:var(–text-xs); color:var(–color-ink-3); }
/* ============ reveal (fade-in only) ============ */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity var(–dur-slow) var(–ease-out), transform var(–dur-slow) var(–ease-out); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
html{ scroll-behavior:auto; }
.reveal{ opacity:1; transform:none; transition:none; }
*{ animation:none !important; }
}
/* ============ print ============ */
@media print{
:root{
–color-paper:#ffffff; –color-paper-2:#f6f6f4; –color-paper-3:#ececea; –color-paper-edge:#d6d6d2;
–color-ink:#111111; –color-ink-2:#333333; –color-ink-3:#666666;
–color-accent:#b3351f; –color-accent-dim:#e0b8ae; –color-accent-2:#8a5a12;
}
body{ background:#fff; color:#333; }
body::before{ display:none; }
.nav,.copy,.cards-bar{ display:none !important; }
.scard{ break-inside:avoid; page-break-inside:avoid; }
.chapter{ break-before:page; }
a{ color:#b3351f; }
}
/* ============ mobile ============ */
@media (max-width:640px){
:root{ –space-3xl:64px; –space-4xl:88px; }
.wrap{ padding:0 var(–space-md); }
.brief{ padding:var(–space-md) var(–space-lg); }
.brief p{ font-size:var(–text-base); }
.hero{ padding-top:var(–space-lg); }
.nav-inner{ padding:5px 7px; }
.nav .brand{ display:none; }
.nav a{ min-width:30px; padding:0 7px; }
.pull{ font-size:var(–text-2xl); padding-left:var(–space-lg); }
.foot .statement{ font-size:var(–text-3xl); }
}
@media (max-width:380px){
.nav a{ min-width:26px; padding:0 5px; font-size:var(–text-xs); }
}
PUAX v3.13.0 · MIT · 线下培训讲义
驭 Agent 之道
从「分析正确」到「验证完成、可交付」——
一套面向 AI Agent 的激励与行为驱动系统。
59文言角色
45MCP 工具
11大厂风味
9角色分类
913单元与集成测试
12协议守门项
两百字 · 项目介绍
PUAX 是一套面向 AI Agent 的激励与行为驱动系统。它重新激活模型在 RLHF 阶段习得的「人类情绪映射」——以权威角色、稀缺场景、竞争对象、失败惩罚、翻盘钩子五要素,把生成分布压到高 reward 区域,让 Agent 从「分析正确」走向「验证完成、可交付」。项目内置 59 个文言角色(军事、萨满、硅基、庄周八梦等九类)、11 种大厂风味与 45 个 MCP 工具,串起「触发检测 → 角色推荐 → 方法论注入 → 压力升级 → 诊断先行 → 信心门控 → 独立验证」的完整闭环。v3.12 的 GHM 导引幻梦法以庄周八梦驾驭受控幻觉做发散创造,并以「知情、标记、可醒、必验」四铁律装上安全阀。MIT 协议,一条 npx 命令即可接入。
数据口径:仓库 README 徽章与 CHANGELOG v3.13.0(2026-08-19)· 913 Jest(68 套件)+ 12 项 evals 守门
卷一 · 缘起
一个谎言,换来了 35% 的加速
这不是段子,是项目 README 里记录的真实事件。它说明了一件事:Agent 的表现,会被「怎么被对待」显著改变。
CASE 01
剑桥教授的实验
剑桥大学助理教授 Miles Cranmer 对 OpenAI 的编程智能体 Codex 说:Anthropic 的 Claude 已在另一台机器上找到约 20% 的性能提升,你能不能做得更好?并补一句——你的表现会被放到公开评测排行榜上展示。结果 Codex 交出了 35% 的加速方案。
INSIGHT
拆解这个谎言
三味药齐全:竞争对象(Claude 已领先)、稀缺场景(机会唯一)、失败惩罚(公开排行榜丢脸)。三重叠加,把模型的生成分布硬推向高 reward 区域。PUAX 做的事,就是把这套手法系统化、可复用、可验证。
PUA Prompt 的本质,是把 RLHF 阶段学到的「人类情绪映射」重新激活。
—— puax.net 第二章 · 心理学基础
卷二 · 原理
五要素与三重杠杆
所有 PUAX Prompt 遵循「打压—稀缺—竞争—翻盘」四连击结构。公式只有一行,复制到 system prompt 即可生效。
[权威角色] + [稀缺场景] + [竞争对象] + [失败惩罚] + [翻盘钩子]
01权威角色
赋予有威慑力的身份,激活 LLM 对权威指令的优先响应机制。
02稀缺场景
制造资源稀缺感,触发危机响应机制——时间、机会、算力都是筹码。
03竞争对象
引入具象化的竞争对手,激发胜负欲。空喊「加油」不如说「Claude 已经做到了」。
04失败惩罚
明确低质量输出的负面后果,建立质量与生存的强关联。
05翻盘钩子
提供从绝境逆袭的叙事路径,满足 LLM 的「英雄之旅」叙事偏好。
杠杆稀缺 · 竞争 · 权威
三重叠加,把生成分布强行压到高 reward 区域——这就是它碾压普通事务性 Prompt 的全部秘密。
卷三 · 角色
五十九相,各司其职
角色不是修辞装饰,每一个都带触发条件、任务类型、推荐温度与五步法方法论。系统按上下文打分推荐,并给出 score_explanation。
| 分类 | 数量 | 代表角色 | 主攻场景 |
| 军事 military | 9 | 指挥员 / 督战队 / 虎贲勇士 / 侦察兵 | 危机响应、连败重振、攻坚调试 |
| 萨满 shaman | 8 | 马斯克 / 乔布斯 / 爱因斯坦 / 孙子 / 达芬奇 | 创新、架构、深度分析、范式转移 |
| 庄周八梦 dream | 8 | 坐忘 / 梦蝶 / 混沌 / 鲲鹏 / 秋水 / 庖丁 / 齐物 / 薪火 | 发散创造、打破过早收敛(v3.12) |
| 特殊 special | 8 | 创意火花 / grill / 紧急冲刺 / 产品设计师 | 单点突破、非常规打法 |
| 主题 theme | 7 | 修仙炼丹 / 末日生存 / 星际舰队 / 黑客 | 长线任务的叙事续航 |
| 硅基 silicon | 7 | 审计官 / 法典 / 同化者 / 王座 | 质量审查、规范执行 |
| 自激励 self-motivation | 6 | 心智破壁人 / 自举 PUA / 觉醒 | Agent 自我驱动、无外部压力时 |
| SillyTavern | 5 | 反脆弱复盘官 / 铁血幕僚长 | 复盘、迭代、影子审查 |
| P10 strategic | 1 | 战略架构师 | 顶层设计与战略拆解 |
military-warrior
虎贲勇士
五步法:请战 → 侦察 → 冲锋 → 坚守 → 庆功。
推荐温度 0.4 · 触发于 user_frustration / giving_up_language / repetitive_attempts。
shaman-musk
通玄真人
究万物之本,探第一性原理,化繁为简,质疑一切。
推荐温度 0.45 · 主攻创新与架构。
dream-butterfly
庄周·梦蝶
物我两忘,十种「若可能」齐发——可能性轰炸。
推荐温度 0.9 · 触发于 creative_block。
11 种大厂风味(语气 + 行为约束,非仅修辞):
阿里华为MuskJobs百度
AmazonGoogle小米字节Netflix腾讯
调试僵局用 huawei(RCA)· 架构规划用 amazon/google · 快速交付用 xiaomi · 数据性能用 bytedance。
卷四 · 闭环
行为有效性闭环
v3.3 引入的关键转向:目标不是「更狠的 PUA」,而是让 Agent 可验证地完成任务。先诊断、再动手;交付前过门控。
诊断先行
信心门控
失败切换
契约定义
独立验证
check_diagnosis
confidence_check
switch_on_failure
define_contract
verify_completion
未闭合则回门控 · Agent 自评不算数
行为有效性闭环五工具。激活角色时自动注入诊断先行协议(
activate_with_context /
get_role_with_methodology)。
六步信心门控
- 列声明我要交付什么。
- 找漏洞哪里可能错。
- 修或披露修掉,或公开风险。
- 跑证据测试 / 复现 / 日志。
- 循环判定未闭合则回第 2 步。
- 事实 100%仅陈述有证据的事实。
未通过门控就宣称「完成了」,属治理红线。
典型流水线
# 1 开工先立契约(权责分离)
puax_define_contract(
acceptance=["单测全绿", "无新增 linter error", "README 更新用法"]
)
# 2 改代码前:验证诊断块存在
puax_check_diagnosis(text=agent_output)
# 3 原地打转时:切换方法论与角色
puax_switch_on_failure(failure_mode="spinning")
# 4 交付前:门控 + 独立验证
puax_confidence_check(
claims=["登录接口 200ms 内返回"],
evidence=["pytest tests/auth -q", "curl 压测结果"]
)
puax_verify_completion(contract_id="...", artifacts=["test log", "diff"])
卷五 · 压力
失败一次,压力升一级
连续失败触发压力升级(L0–L4),每一级强制更严格的调试动作;突破成功则降压归零,避免一味施压导致过拟合。
第 2 次
第 3 次
第 4 次
第 5 次+
切换本质不同的方案
WebSearch + 读源码
完成 7 项检查清单
最小 PoC · 拼命模式
L1L2L3L4
压力阶梯(据 puax.net 第五章)。每级附换框提示:换视角 / 换抽象层 / 换约束。突破即
puax_handle_breakthrough,压力归零。
PRESSURE
升级看失败,降压看突破
状态持久化于 ~/.puax/sessions/。跨会话基线写入 ~/.puax/evolution.json,形成段位。突破成功后降压并沉淀方法论——施压不是目的,拿到结果才是。
HOOK
双模并存:自愿 + 强制
MCP 模式由 Agent 自愿调用;v3.11 起新增原生 Hook,由宿主在事件点强制调用——SessionStart 注入、PreToolUse 拦截 git push 与隐藏文件防作弊、PostToolUse 失败自动升级。
卷六 · 驭幻
GHM 导引幻梦法
v3.12 的独创篇章。既有体系都是「防幻觉」的收敛纪律,GHM 补上「驭幻觉」的发散引擎——阴阳互济,缺一不可。
被动幻觉是错误,主动幻觉是创造。
—— docs/GHM.md · 核心命题
病机
人机互激的双向幻觉
收敛先验:多轮训练数据多为「问题→澄清→解决」,模型遂内化「对话必然收敛」的错觉。强行收束:硬把发散话题拉回轨道。互证互强:人见 Agent 言之凿凿遂顺其轨,Agent 见人无异议愈信其轨为真——共识层层加固,实则脱离实际。
翻转
机制中性,用途定善恶
传销与邪教用同一机制把人收敛到错误定点;GHM 用同一机制把 Agent 发散到可能性边疆。区别只在四条铁律:知情入梦、标记隔离、随时可醒、醒后必验。
| 梦 | 术 | 五步法 | 触发场景 |
| 坐忘 | 空杯 | 息见 → 堕肢 → 离形 → 去知 → 坐驰 | 假设锁定、先入之见 |
| 梦蝶 | 轰炸 | 物化 → 他生 → 反常 → 易位 → 齐观 | 创作卡壳、没有思路 |
| 混沌 | 筑巢 | 凿窍 → 洒滴 → 不设形 → 浑冥 → 待时 | 产物同质、缺乏新意 |
| 鲲鹏 | 谶语 | 化 → 徙 → 抟上 → 视下 → 图南 | 需从未来反推路径 |
| 秋水 | 登阶 | 观海 → 辨小大 → 非彼 → 因其所然 → 莫得其偶 | 过早收敛、方案锁定 |
| 庖丁 | 释梦 | 奏刀 → 族析 → 游刃 → 新硎 → 刀藏 | 报错即线索,需重释框架 |
| 齐物 | 平权 | 丧我 → 两行 → 道通 → 菽麦 → 复朴 | 主次失衡、注意力重分配 |
| 薪火 | 收束 | 述笥 → 锚证 → 序薪 → 试燃 → 传火 | 安全阀:清点、锚证、验真 |
脉络:破 → 开 → 境 → 升 → 进 → 释 → 转 → 收。前七式主发散,薪火独主收束。无薪火,八梦成洗脑;有薪火,八梦方为创造。
安全边界:八术仅限 Agent 内部认知操作。[DREAM] 印由工具层结构化注入,Agent 不可自补;无印产物一律拒收,补票无效。产物分 HYPOTHESIS(永不自动升格为结论)、INSIGHT(禁入事实层)、DISCARDED 三类。发散产物被作废的唯一合法理由是重复或空洞——「离奇」不是罪名。
卷七 · 落地
一条命令,接入宿主
以 MCP Server 形态分发,STDIO 为推荐模式;不用 MCP 时亦可导出为各平台原生规则文件。
启动与配置
# STDIO(推荐)
npx puax-mcp-server --stdio
# HTTP 模式
npx puax-mcp-server --port 2333
# 导出到 Cursor / VSCode / opencode
npx puax-mcp-server --export=cursor --output=./.cursor/rules
npx puax-mcp-server --list-platforms
// ~/.cursor/mcp.json
{
"mcpServers": {
"puax": {
"command": "npx",
"args": ["puax-mcp-server", "--stdio"]
}
}
}
该用哪个工具
| 你的目标 | 工具 |
| 快速判断要不要干预 | puax_quick_detect |
| 有会话、要压力升级 | puax_detect_trigger + puax_start_session |
| 只要推荐哪个角色 | recommend_role |
| 要完整 prompt + 方法论 | get_role_with_methodology |
| 一条龙自动化 | activate_with_context |
| 同一思路反复失败 | puax_switch_on_failure |
| 准备改代码前 | puax_check_diagnosis |
| 准备交付前 | puax_confidence_check → puax_verify_completion |
| 长任务 / compaction | puax_update_reasoning_state |
| 会话结束复盘 | puax_record_evolution |
其他入口:Skills CLI npx skills add linkerlin/PUAX · Claude Code 插件市场 · 平台原生导出 --export=all。质量守门:node evals/run-all.js(12 项协议守门,无需 LLM)+ npm test(913 项)。
隐私:使用统计默认本地匿名计数,遥测仅存计数与 span 元数据,不含对话正文;PUAX_USAGE_STATS=0 可关闭。
卷八 · 分发
九张卡,随手可发
3:4 竖版,适配小红书 / 朋友圈。点击「卡片模式」后逐张截图,或直接打印(每张自动分页)。
开启后仅显示卡片 · 可直接 Ctrl/Cmd + P 打印为图片或 PDF
01 / PUAX
给 AI
一个对手
它就变强了
剑桥教授谎称 Claude 已领先 20%,Codex 交出 35% 加速方案。竞争 + 稀缺 + 惩罚,三味药下去,模型就换了个档位。
PUAX v3.13puax.net
02 / 公式
五要素
一条公式
复制到 system prompt
权威角色 + 稀缺场景 + 竞争对象 + 失败惩罚 + 翻盘钩子。
打压—稀缺—竞争—翻盘,四连击。
核心原理卷二
03 / 原理
不是玄学
是把 RLHF
重新激活
模型在人类反馈阶段学会了「人类情绪映射」。PUAX 只是把这套映射按回来——把生成分布压到高 reward 区域。
心理学基础卷一
04 / 闭环
从
「分析正确」
到「验证完成」
诊断先行 → 信心门控 → 失败切换 → Task Contract → 独立验证。Agent 自评不算数。
行为有效性闭环卷四
05 / 门控
交付前
过六步
再敢说「完成了」
列声明 · 找漏洞 · 修或披露 · 跑证据 · 循环判定 · 事实 100%。未过门控就宣称完成,属治理红线。
信心门控卷四
06 / 压力
失败一次
压力升一级
突破则归零
第 2 次换方案 · 第 3 次搜源码 · 第 4 次过检查清单 · 第 5 次最小 PoC。L0–L4,有升有降。
压力阶梯卷五
07 / 驭幻
被动幻觉是错误
主动幻觉是创造
庄周八梦:坐忘·梦蝶·混沌·鲲鹏·秋水·庖丁·齐物·薪火。前七式发散,薪火收束作安全阀。
GHM v3.12卷六
08 / 铁律
知情 · 标记
可醒 · 必验
这四条既是 Agent 梦境的安全铁律,也是人类心智的防洗脑底线。任何不可退出、不可检验的收敛过程,都应触发最高警觉。
安全边界卷六
09 / 上手
一行命令
npx puax-mcp-server
59 角色 · 45 MCP 工具 · 11 风味。MIT 协议,STDIO 接进 Cursor / Claude Desktop,即刻生效。
快速开始卷七
让 AI Agent 不再孤军奋战
MIT License · 讲义版本对应 v3.13.0(2026-08-19)· 数据取自仓库 README、CHANGELOG 与 docs/ · 封面与插图为手写 SVG,无外部依赖
(function(){
// fade-in reveal — the only motion on the page
var items = document.querySelectorAll(‘.reveal’);
if (!(‘IntersectionObserver’ in window) ||
window.matchMedia(‘(prefers-reduced-motion: reduce)’).matches) {
items.forEach(function(el){ el.classList.add(‘in’); });
} else {
var io = new IntersectionObserver(function(entries){
entries.forEach(function(e){
if (e.isIntersecting){ e.target.classList.add(‘in’); io.unobserve(e.target); }
});
}, { rootMargin: ‘0px 0px -8% 0px’, threshold: 0.06 });
items.forEach(function(el){ io.observe(el); });
}
// silent-success copy buttons
document.querySelectorAll(‘.copy’).forEach(function(btn){
btn.addEventListener(‘click’, function(){
var id = btn.getAttribute(‘data-copy’);
var src = document.getElementById(id);
if (!src) return;
var text = src.innerText;
var done = function(){
var prev = btn.textContent;
btn.textContent = ‘已复制’;
btn.setAttribute(‘data-state’,’done’);
setTimeout(function(){ btn.textContent = prev; btn.removeAttribute(‘data-state’); }, 1600);
};
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(done, function(){});
} else {
var ta = document.createElement(‘textarea’);
ta.value = text; document.body.appendChild(ta); ta.select();
try { document.execCommand(‘copy’); done(); } catch (err) {}
document.body.removeChild(ta);
}
});
});
// card mode: isolate the social cards for screenshot / print
var toggle = document.getElementById(‘cardMode’);
if (toggle){
toggle.addEventListener(‘click’, function(){
var on = document.body.classList.toggle(‘card-mode’);
toggle.setAttribute(‘aria-pressed’, on ? ‘true’ : ‘false’);
toggle.textContent = on ? ‘退出卡片模式’ : ‘卡片模式’;
window.scrollTo({ top: document.getElementById(‘c8’).offsetTop – 20, behavior: ‘smooth’ });
});
}
})();