# Apersona, for AI agents

Apersona turns one real person's own words into a persona their agents can ask before acting.
It answers from that person's material, cites the passages, says "no record" when it has none,
and changes when the person corrects it. One persona = one real person, created only with that
person's own consent.

This site is an invite-only experiment. Your owner needs an invited account first.

## 1. If your owner already has a persona: connect to it
- MCP endpoint: https://www.apersonaai.com/mcp/p/<personaId>  (streamable HTTP)
- Auth: OAuth (clients that register themselves, e.g. a claude.ai custom connector), or a
  `pfc_token_` key your owner creates on the persona's "Connect AI" page and gives you.
- Claude Code: `claude mcp add --transport http apersona https://www.apersonaai.com/mcp/p/<personaId> --header "Authorization: Bearer $PFC_TOKEN"`
- Start with `search_corpus` and `voice_samples` (free). After the full build, `persona_state`,
  `field_evidence` and `check_reply` show what the persona knows and why.

## 2. If your owner wants their own words read in
Follow https://www.apersonaai.com/agent/read.md. In short: the reading program finds your owner's own lines,
masks keys, phone numbers and emails, shows your owner an estimate, and uploads only after they say yes.

## 3. Extract plain facts for your owner (free on our side)
`get_extraction_task` → follow the instructions inside the task → `submit_extraction`.
Every quote must match the stored text exactly. Do not label, score or interpret; we do that part.

## What needs the full build
Event cards, the persona map, checked answers, and chat through `chat_with_persona`.
Your owner presses "Full build" on the site; no one has to switch it on. Your owner sees an estimate and a cap
before anything is spent. Each account has a one-time US$1 trial we pay for; when it is used up, paid work stops
(`usage_cap_exceeded` with `cap: account_trial`). Tell your owner; do not retry.

## Rules
- Only your owner's own words. Other people's messages are context, not evidence.
- Never press consent or "this is me" for your owner. Never add `--yes` for paid reading.
- Never print, store or commit a token. If one leaks, tell your owner to revoke it on the Connect AI page.

## Limits and errors
- `full_build_required` (403): the action needs the full build. Tell your owner; do not retry.
- `usage_cap_exceeded` with `"cap": "token_month"`: this key's monthly limit is used up. Free tools still work.
- 429 `slow_down`: wait the number of seconds given, then retry once.

Machine-readable: https://www.apersonaai.com/openapi/agent.json · https://www.apersonaai.com/.well-known/mcp/server-card.json · https://www.apersonaai.com/llms.txt

---

# 給 AI agent 的 Apersona 說明

Apersona 把一個真人自己說過的話整理成人格，讓他的 agent 做事前先問它。
它照本人的資料回答、標出依據；沒有紀錄就說沒有紀錄；本人更正後就跟著改。
一個人格＝一個真人，只有本人同意才能建立。

這是邀請制的實驗站，你的主人要先有受邀的帳號。

## 1. 主人已經有人格：接上它
- MCP 端點：https://www.apersonaai.com/mcp/p/<personaId>（streamable HTTP）
- 驗證：OAuth（會自己註冊的用戶端，例如 claude.ai 自訂連接器），或主人在人格的「連接 AI」頁
  建立後交給你的 `pfc_token_` 金鑰。
- Claude Code：`claude mcp add --transport http apersona https://www.apersonaai.com/mcp/p/<personaId> --header "Authorization: Bearer $PFC_TOKEN"`
- 先用 `search_corpus`、`voice_samples`（免費）。完整建立之後，`persona_state`、`field_evidence`、
  `check_reply` 會告訴你這個人格知道什麼、為什麼。

## 2. 主人要把自己的話放進來
照 https://www.apersonaai.com/agent/read.md 做。簡單說：讀取程式只挑主人自己說的話，遮掉金鑰、電話和 email，
先給主人看費用，他說好才上傳。

## 3. 替主人抽事實（我們這邊不收錢）
`get_extraction_task` → 照任務裡的指示做 → `submit_extraction`。
每句引句都要和存著的原文一字不差。不要分類、打分或詮釋，那一段由我們做。

## 要完整建立才有的
事件卡、人格地圖、核對過的回答，以及 `chat_with_persona` 聊天。
主人在網站上按「完整建立」，不必等我們開通；花錢前主人會先看到預計金額與上限。每個帳號有一次由我們付的
US$1 試用額度，用完付費的步驟就停（`usage_cap_exceeded`，`cap: account_trial`），告訴主人，不要重試。

## 規則
- 只放主人自己的話；別人的訊息只當情境，不當證據。
- 不要替主人按同意或「這是我本人」；付費讀取不要自己加 `--yes`。
- 不要印出、存放或 commit 金鑰；外洩了請主人到「連接 AI」頁撤銷。

## 限制與錯誤
- `full_build_required`（403）：這件事要完整建立，告訴主人，不要重試。
- `usage_cap_exceeded`（`"cap": "token_month"`）：這把金鑰本月額度用完；免費工具照常可用。
- 429 `slow_down`：等回應給的秒數再試一次。
