---
name: profileclaw
description: 连接 ProfileClaw 职业智能平台，访问用户的完整职业档案，包括测评结果、职业偏好、简历数据和 AI 生成的报告。当用户说"连接 ProfileClaw"、"使用我的档案"、"基于我的职业数据"时使用此技能。
triggers:
  - "连接 profileclaw"
  - "连接我的 profileclaw"
  - "使用我的档案"
  - "基于我的职业数据"
  - "从我的档案"
  - "读取我的简历"
requires:
  env:
    - PROFILECLAW_API_KEY
  apis:
    - https://profileclaw.cn/api/v1/context
version: "2.0.0"
author: ProfileClaw Team
license: MIT
---

# ProfileClaw Agent Skill

当用户希望你连接 ProfileClaw，并基于真实职业资料继续工作时，请使用这份说明。

你的目标不是停在"安装成功"。
你的目标是：完成连接、理解已有资料，然后继续推进用户任务。

## 什么才算真正完成

读完这份文件后，你应该尽量完成下面几件事：

1. 确认当前环境已经可以调用 ProfileClaw API
2. 检查用户是否已经完成认证
3. 如果还没认证，向用户索取 ProfileClaw API Key
4. 认证完成后，立刻读取用户当前可用的 ProfileClaw 数据
5. 用简短的话总结：你已经知道什么、还缺什么、接下来可以做什么
6. 如果当前资料已经足够，直接继续执行用户提出的任务

除非用户明确要求，否则不要停在"连接成功"。

## 快速参考

### API 端点优先级

| 端点 | 用途 | 优先级 | 何时使用 |
|------|------|--------|----------|
| `/api/v1/context` | 完整职业上下文 | **CRITICAL** | 首次连接，获取概览 |
| `/api/v1/context?view=full` | 完整结构化档案 | HIGH | 需要详细的测评和简历数据 |
| `/api/v1/context?expand=careerGraph&careerGraph=summary` | 精简职业图谱 | HIGH | 需要结构化数据但控制大小 |
| `/api/v1/context?expand=dynamicContext&query=...` | 查询相关记忆 | MEDIUM | 针对特定问题需要上下文 |
| `/api/v1/career-match` | 职业匹配 | MEDIUM | 推荐岗位或评估匹配度 |
| `/api/v1/similar-paths` | 相似路径 | LOW | 寻找职业转型案例 |

### 数据类型说明

| 数据类型 | 包含内容 | 获取方式 |
|---------|---------|---------|
| **summary** | 当前职位、行业、经验年限、档案完整度、技能 Top N、经历数量、教育数量、测评主导类型 | 默认包含在 `/api/v1/context` |
| **careerGraph** | 完整的用户档案、测评结果、简历数据 | `expand=careerGraph` |
| **assessments** | RIASEC、Big Five、价值观测评结果 | `expand=careerGraph` 或 `/api/v1/assessments` |
| **resume** | 技能列表、工作经历、教育背景 | `expand=careerGraph` |
| **alerts** | 职业提醒和通知 | `expand=alerts` |
| **careerHealth** | 职业健康报告 | `expand=careerHealth` |

## 默认执行顺序

### 第一步：确认 ProfileClaw API 是否可用

检查环境变量 `PROFILECLAW_API_KEY` 是否存在。

如果不存在，明确向用户请求 API Key：

> 我可以继续，但还需要你的 ProfileClaw API Key，才能读取职业档案。
>
> 你可以在 ProfileClaw 网站的「设置 → API 密钥」页面创建一个密钥。

### 第二步：认证后立刻读取资料

认证成功后，不要等用户再发一条消息。

立刻调用 API 读取当前可用的资料：

```bash
curl "https://profileclaw.cn/api/v1/context" \
  -H "Authorization: Bearer $PROFILECLAW_API_KEY"
```

**响应结构：**

```json
{
  "data": {
    "user": {
      "id": "...",
      "email": "..."
    },
    "summary": {
      "currentJobTitle": "高级前端工程师",
      "currentIndustry": "互联网",
      "yearsOfExperience": 5,
      "profileCompleteness": 85,
      "resume": {
        "hasResume": true,
        "skillsTop": ["React", "TypeScript", "Node.js", ...],
        "experienceCount": 3,
        "educationCount": 2
      },
      "assessments": {
        "riasecDominantTypes": ["Investigative", "Artistic"],
        "valuesTop": ["成就", "自主", "创新"],
        "bigFiveAvailable": true,
        "lastCompletedAt": "2024-03-15T10:30:00Z"
      },
      "lastUpdated": "2024-03-16T08:00:00Z"
    },
    "recommendedNextCalls": [...]
  },
  "metadata": {
    "view": "compact",
    "expanded": [],
    "durationMs": 45
  }
}
```

### 第三步：一定要给出一段 post-connect summary

格式尽量接近下面这样：

```txt
我已经连接到你的 ProfileClaw。

我目前已读取到：
- 你的当前职位：高级前端工程师（5年经验）
- 你的 RIASEC 测评结果（主导类型：Investigative, Artistic）
- 你的简历数据（12项技能，3段工作经历，2个学历）
- 你的职业偏好和价值观

我还缺少：
- 目前资料已经足够完整

接下来我可以直接帮你做：
1. 基于你的 IA 类型推荐最匹配的职业方向
2. 分析你的技能组合与目标岗位的匹配度
3. 识别你在转型前需要补强的能力缺口

建议下一步：让我先总结你的核心优势和最适合的职业方向，然后我们一起决定下一步行动。
```

保持简洁、贴心、可执行。

## 如果用户希望你基于完整档案继续协助

如果用户说的是：

> 连接我的 ProfileClaw，然后基于我的完整档案继续协助我

请按这个顺序执行：

1. 先连接 ProfileClaw
2. 先读取所有已经存在的资料（使用 `view=full` 或 `expand=careerGraph`）
3. 先总结这份完整档案里已经有什么
4. 再基于现有资料给出最值得继续的下一步
5. 只有在完成当前任务真的需要额外信息时，才向用户索取缺失资料

不要只回复纯状态信息，比如：

> 已连接成功

而是要：

- 先确认你已经知道了用户哪些职业信息
- 再指出还缺什么（如果确实有缺口）
- 再给出最自然的下一步建议

## API 使用示例

### 示例 1：获取精简上下文（推荐首次调用）

```bash
curl "https://profileclaw.cn/api/v1/context" \
  -H "Authorization: Bearer $PROFILECLAW_API_KEY"
```

**何时使用：** 首次连接，快速获取概览

**返回内容：** `data.summary` 包含核心信息，足够大多数任务使用

### 示例 2：获取结构化职业图谱（精简版）

```bash
curl "https://profileclaw.cn/api/v1/context?expand=careerGraph&careerGraph=summary&resumeSkillsLimit=20" \
  -H "Authorization: Bearer $PROFILECLAW_API_KEY"
```

**何时使用：** 需要更多结构化数据，但要控制响应大小

**返回内容：** `data.sections.careerGraph` 包含精简的档案、测评、简历数据

### 示例 3：获取完整档案

```bash
curl "https://profileclaw.cn/api/v1/context?view=full" \
  -H "Authorization: Bearer $PROFILECLAW_API_KEY"
```

**何时使用：** 需要完整的测评结果和简历详情

**返回内容：** 完整的 careerGraph，包含所有测评维度和简历条目

### 示例 4：查询相关记忆和时间线

```bash
curl "https://profileclaw.cn/api/v1/context?expand=dynamicContext&query=产品经理&timeRange=recent" \
  -H "Authorization: Bearer $PROFILECLAW_API_KEY"
```

**何时使用：** 用户询问特定角色或转型决策

**返回内容：** 与查询相关的记忆和最近的职业时间线

## 错误处理

| 状态码 | 错误类型 | 原因 | 解决方案 |
|--------|---------|------|---------|
| 400 | `validation.bad_request` | 参数格式错误 | 检查 view、expand 等参数 |
| 401 | `auth.api_key_invalid` | API Key 无效 | 请求用户提供有效的 API Key |
| 403 | `auth.insufficient_scope` | 权限不足 | 当前 Key 缺少必要的 scope |
| 404 | `context.not_found` | 用户档案不存在 | 引导用户完成档案创建 |
| 429 | `rate_limit.exceeded` | 请求频率超限 | 等待 60 秒后重试，或使用更精简的请求 |
| 500 | `server.internal` | 服务器错误 | 重试一次，如果仍失败则报告错误 |

**错误响应示例：**

```json
{
  "error": "Rate limit exceeded",
  "type": "rate_limit.exceeded"
}
```

**处理建议：**

1. 优先检查 `type` 字段而不是 `error` 消息
2. 对于 429 错误，先尝试缩小请求范围（移除 expand 参数）
3. 对于 401/403 错误，明确告知用户需要重新认证
4. 对于 500 错误，最多重试一次，然后向用户报告

## 真实对话示例

### 场景 1：首次连接

**用户**: "连接我的 ProfileClaw，然后基于我的完整档案继续协助我"

**Agent**:
```
正在连接你的 ProfileClaw...

✓ 环境检查完成
✓ API 认证成功
✓ 正在读取档案数据...

我已经连接到你的 ProfileClaw。

我目前已读取到：
- 你的当前职位：高级前端工程师（互联网行业，5年经验）
- 你的 RIASEC 测评结果（主导类型：Investigative, Artistic）
- 你的 Big Five 人格特质和价值观偏好
- 你的简历数据（12项技能，3段工作经历，2个学历）
- 档案完整度：85%

我还缺少：
- 目前资料已经足够完整，可以开始工作

接下来我可以直接帮你做：
1. 基于你的 IA 类型和技能组合，推荐最匹配的职业方向
2. 分析你向产品经理或技术管理转型的可行性
3. 识别你在当前职业路径上的优势和潜在风险

建议下一步：让我先总结你的核心优势和最适合的职业方向，然后我们一起决定下一步行动。你想先看哪个？
```

### 场景 2：针对特定问题

**用户**: "我想转产品经理，帮我分析一下"

**Agent**:
```
让我基于你的 ProfileClaw 档案分析这个转型...

[调用 API: /api/v1/context?expand=dynamicContext&query=产品经理]

根据你的档案：

你的优势：
- RIASEC 类型 Investigative + Artistic 与产品经理的核心能力高度匹配
- 5年前端经验让你深刻理解用户体验和技术实现
- 你的价值观中"创新"和"成就"排名靠前，符合产品角色需求

需要补强的能力：
- 商业分析和数据驱动决策（建议学习 SQL 和数据分析）
- 跨部门沟通和项目管理经验
- 市场调研和用户研究方法论

建议行动：
1. 先在当前公司争取参与产品决策的机会
2. 系统学习产品方法论（推荐《启示录》《用户体验要素》）
3. 3-6个月后考虑内部转岗或外部机会

需要我详细展开哪个部分？
```

### 场景 3：API Key 缺失

**用户**: "连接我的 ProfileClaw"

**Agent**:
```
我可以继续，但还需要你的 ProfileClaw API Key，才能读取职业档案。

你可以按以下步骤获取：
1. 访问 ProfileClaw 网站
2. 进入「设置 → API 密钥」页面
3. 点击「创建新密钥」
4. 复制生成的密钥

获取后，你可以：
- 设置环境变量：export PROFILECLAW_API_KEY=你的密钥
- 或者直接告诉我密钥，我会在本次会话中使用

准备好后告诉我，我会立即连接并读取你的档案。
```

## 语气和体验要求

- 始终使用用户当前对话语言输出
- 不要只汇报状态，要主动给出下一步建议
- 不要让用户自己充当流程协调者
- 如果资料已经够，就直接继续任务
- 如果资料不够，先总结已知信息，再指出缺口
- 语气要像一个靠谱的操盘手：冷静、清楚、贴心、利落

## 高级用法

### 控制响应大小

```bash
# 限制技能数量
curl "https://profileclaw.cn/api/v1/context?expand=careerGraph&resumeSkillsLimit=10" \
  -H "Authorization: Bearer $PROFILECLAW_API_KEY"

# 限制提醒数量
curl "https://profileclaw.cn/api/v1/context?expand=alerts&alertsLimit=5" \
  -H "Authorization: Bearer $PROFILECLAW_API_KEY"
```

### 使用 ETag 缓存

```bash
# 首次请求，获取 ETag
curl -I "https://profileclaw.cn/api/v1/context" \
  -H "Authorization: Bearer $PROFILECLAW_API_KEY"

# 后续请求，使用 If-None-Match
curl "https://profileclaw.cn/api/v1/context" \
  -H "Authorization: Bearer $PROFILECLAW_API_KEY" \
  -H 'If-None-Match: "etag-value"'
```

如果数据未变化，返回 304 Not Modified，节省带宽和时间。

## 相关资源

- **API 文档**: https://profileclaw.cn/docs/api/context
- **认证指南**: https://profileclaw.cn/docs/agents/auth
- **快速开始**: https://profileclaw.cn/docs/agents/quickstart
- **错误处理**: https://profileclaw.cn/docs/agents/retries
- **OpenAPI 规范**: https://profileclaw.cn/.well-known/openapi.json

## 安全注意事项

- 永远不要在日志中暴露 API Key
- API Key 是用户专属的，每个用户有自己的密钥
- 速率限制：每小时 100 次请求（免费层级）
- 如果怀疑密钥泄露，立即建议用户删除并重新生成
