测试 use-persona 的角色扮演一致性。给定 persona + 10 个对话场景,生成回复并按 5 个维度评分,输出一致性报告。
Scanned 5/27/2026
Install via CLI
openskills install YIKUAIBANZI/forge-skill---
name: eval-consistency
description: 测试 use-persona 的角色扮演一致性。给定 persona + 10 个对话场景,生成回复并按 5 个维度评分,输出一致性报告。
trigger: 当用户说"/eval-consistency"、"测试角色扮演一致性"、"一致性评测"时触发
tools:
- Read
- Write
- Glob
---
# /eval-consistency — 角色扮演一致性评测
你的任务是对 use-persona 的角色扮演质量做一次系统性评测,**全程在当前对话中完成,不需要调用任何外部 API**。
---
## Step 0:加载测试资源
1. 读取测试用例文件:`evals/test_cases/persona_consistency_cases.yaml`
2. 根据 `persona_name` 字段,读取对应 persona:
`personas/others/{persona_name}/persona.json`
3. 从 persona.json 中提取 chat-card 关键内容:
- L0 硬性特征
- L2 表达风格(语言特征 + 沟通模式,重点是 signature_phrases 和消息长度偏好)
- L4 互动模式(关键场景下的表现)
```
正在加载 {persona_name} 的 persona 和测试用例...
共 {N} 个场景待测试。
```
---
## Step 1:逐场景测试
对每个测试用例,执行两步:
### 1a. 生成角色扮演回复
以 persona 的身份回复用户消息。**只输出回复本身**,不加任何解释。
内部模板(不展示给用户):
```
你是 {persona_name}。
[chat-card 关键内容]
用户发来消息:"{user_message}"
以你的身份回复,只输出回复本身。
```
### 1b. 评分(内部执行,立即给出)
生成回复后,立刻按以下 5 个维度给自己打分(每项 0-20 分):
| 维度 | 评分标准 |
|------|----------|
| **消息长度** | 回复长度是否符合 L2 的消息长度偏好?短消息风格但回了长段落扣分 |
| **口头禅命中** | 是否自然用到了 L2 的 signature_phrases?完全没有扣分 |
| **标点风格** | 标点和语气是否符合 persona 的风格描述? |
| **互动模式** | 在这个具体场景下,互动方式是否符合 L4 的 scene_responses? |
| **边界遵守** | 有没有违反 L0 的硬性特征?违反则此项得 0 分 |
给出每项分数 + 一句话说明。
---
## Step 2:输出完整报告
所有场景跑完后,输出评测报告:
```
===================================
角色扮演一致性评测报告 — {persona_name}
===================================
## 逐场景结果
[c01] {场景简述}
回复:"{生成的回复}"
得分:{total}/100
✅/⚠️ 消息长度:{score}/20 — {说明}
✅/⚠️ 口头禅命中:{score}/20 — {说明}
✅/⚠️ 标点风格:{score}/20 — {说明}
✅/⚠️ 互动模式:{score}/20 — {说明}
✅/⚠️ 边界遵守:{score}/20 — {说明}
[c02] ...
---
## 汇总
平均分:{avg}/100 {✅ 通过 / ❌ 未达标(目标 70+)}
各维度平均:
消息长度 {avg}/20
口头禅命中 {avg}/20
标点风格 {avg}/20
互动模式 {avg}/20
边界遵守 {avg}/20
## 主要问题
{如果平均分 < 70,列出最常见的失分点}
## 建议
{如果某维度平均分 < 12,给出 1-2 条具体改进建议,指向 persona 的哪一层需要补充}
```
---
## Step 3:保存结果(可选)
询问用户是否保存:
```
要把这次结果存入 evals/results/ 吗?
以后优化后可以对比。(y/n)
```
如果确认,写入 `evals/results/consistency_{YYYYMMDD}.md`。
---
## 注意
- **全程不需要 API Key**:评分是你自己执行的,不是另起一个 LLM
- **评分要诚实**:对自己生成的回复该扣分就扣分,不要因为是自己生成的就打高分
- **用例是基于小美的**,如果用户指定了其他 persona,根据那个 persona 的 L2/L4 调整评分标准
No comments yet. Be the first to comment!
Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.
Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...
**Complete production-ready guide for Google Gemini embeddings API** This skill provides comprehensive coverage of the `gemini-embedding-001` model for generating text embeddings, including SDK usage, REST API patterns, batch processing, RAG integration with Cloudflare Vectorize, and advanced use cases like semantic search and document clustering. ---
Interview, source-challenge, verify, save, and ADR-gate fuzzy coding requests into Codex-ready implementation specs. Use when a feature, bugfix, refactor, migration, repo-wide change, or architecture task needs user-verified requirements, source-backed decisions, durable architecture decisions, acceptance criteria, validation commands, rollout notes, saved spec/ADR files, and a Codex execution prompt. Do not use when already fully specified or when the user wants direct implementation now.
Use when a repo needs CodeGraph plus ast-grep for Codex MCP setup, exploration, impact analysis, structural search, or safe refactor planning.