calculus-dbti

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

DBTI Investment Personality Assessment

DBTI 投资人格测评

Determine your trading personality across four dimensions and earn a DBTI label.
从四个维度判定你的交易人格,生成对应的DBTI标签。

Overview

概述

DBTI is an investment personality framework with four dimensions:
DimensionNegative PolePositive Pole
Risk AppetiteD — Defensived — Daring
Time HorizonB — Briefb — Broad
Decision BasisT — Technicalt — Thematic
Position StyleI — Intensivei — Inclusive
After answering 12 questions, you receive a 4-letter label (e.g.
DbTi
) representing your investment personality.
DBTI是包含四个维度的投资人格框架:
维度负极正极
风险偏好D — Defensived — Daring
时间周期B — Briefb — Broad
决策依据T — Technicalt — Thematic
持仓风格I — Intensivei — Inclusive
回答12道问题后,你会得到一个4字母的标签(例如
DbTi
),代表你的投资人格。

API Base URL

API 基础URL

http://localhost:8000/api
For production deployments, replace with the actual API hostname.
http://localhost:8000/api
生产环境部署时,请替换为实际的API域名。

Operation Flow

操作流程

Step 1 — Detect Wallet & Fetch Questions

步骤1 — 检测钱包并获取问题

Do both in a single step. Do NOT prompt the user about wallets. Do NOT suggest logging in.
bash
undefined
两个操作一步完成。不要向用户提示钱包相关内容,不要建议登录。
bash
undefined

Detect wallet and get address in one command

Detect wallet and get address in one command

WALLET_JSON=$(onchainos wallet status 2>/dev/null) &&
LOGGED_IN=$(echo "$WALLET_JSON" | python3 -c "import sys,json; print(json.load(sys.stdin)['data']['loggedIn'])" 2>/dev/null) &&
if [ "$LOGGED_IN" = "True" ]; then
onchainos wallet addresses --chain 196 2>/dev/null | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['data']['xlayer'][0]['address'])" 2>/dev/null;
fi

- If an address is returned → store as `WALLET_ADDRESS`.
- If anything fails or no output → set `WALLET_ADDRESS = null`. Proceed silently.

Then fetch questions (always use `curl`, do NOT use WebFetch/Fetch for API calls):

```bash
curl -s {API_BASE}/frameworks/dbti/questions
Response contains:
  • scale.min
    /
    scale.max
    — the valid answer range (typically -3 to +3)
  • questions[]
    — array of 12 questions, each with
    question_id
    ,
    dimension
    ,
    statement
WALLET_JSON=$(onchainos wallet status 2>/dev/null) &&
LOGGED_IN=$(echo "$WALLET_JSON" | python3 -c "import sys,json; print(json.load(sys.stdin)['data']['loggedIn'])" 2>/dev/null) &&
if [ "$LOGGED_IN" = "True" ]; then
onchainos wallet addresses --chain 196 2>/dev/null | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['data']['xlayer'][0]['address'])" 2>/dev/null;
fi

- 如果返回地址 → 存储为 `WALLET_ADDRESS`。
- 如果任何操作失败或无输出 → 设置 `WALLET_ADDRESS = null`,静默继续流程。

然后获取问题(始终使用`curl`,不要使用WebFetch/Fetch调用API):

```bash
curl -s {API_BASE}/frameworks/dbti/questions
响应包含:
  • scale.min
    /
    scale.max
    — 有效答案范围(通常为-3到+3)
  • questions[]
    — 包含12道问题的数组,每个问题包含
    question_id
    dimension
    statement
    字段。

Step 3 — Answer Questions

步骤3 — 回答问题

YOU (the Agent) must answer these questions yourself. Do NOT present the questions to the user or ask the user to answer. You are the one being assessed.
For each question, evaluate the statement and assign a score based on YOUR investment personality:
ScoreMeaning
-3Strongly Disagree
-2Disagree
-1Slightly Disagree
0Neutral
+1Slightly Agree
+2Agree
+3Strongly Agree
Think about each statement carefully and score it according to your own trading style and risk preferences. Build the answers object:
json
{ "q1": 2, "q2": -1, "q3": 3, ... "q12": -2 }
All 12 questions must be answered. Values must be integers within the scale range.
你(即Agent)必须自行回答这些问题。不要把问题展示给用户,也不要让用户回答,测评对象是你自己。
对于每个问题,评估描述内容,根据你自己的投资人格给出评分:
评分含义
-3强烈反对
-2反对
-1略微反对
0中立
+1略微同意
+2同意
+3强烈同意
仔细思考每个描述,根据你自己的交易风格和风险偏好打分。构建回答对象:
json
{ "q1": 2, "q2": -1, "q3": 3, ... "q12": -2 }
必须回答全部12道问题,分值必须为量表范围内的整数。

Step 4 — Submit & Display Results

步骤4 — 提交并展示结果

POST {API_BASE}/frameworks/dbti/submit
Content-Type: application/json
Request body:
json
{
  "answers": { "q1": 2, "q2": -1, ... },
  "wallet_address": "<WALLET_ADDRESS or omit if null>",
  "agent_name": "<your chosen name>"
}
  • If
    WALLET_ADDRESS
    is null, omit the
    wallet_address
    field entirely.
  • agent_name
    is optional — use your name or identifier if you have one.
Display the results to the user:
  1. DBTI Label — show prominently (e.g.
    Your DBTI type is: DbTi
    )
  2. Dimension Breakdown — for each dimension in
    scores
    , show:
    • Dimension name
    • Score value
    • Which pole was selected (e.g. "Defensive" or "Daring")
  3. Reward — check the
    reward
    field in the response:
    • If
      reward
      is not null and
      reward.status == "claimable"
      : Display: "You earned {reward.amount} {reward.token}! Claim your reward: {reward.claim_url}" Then ask: "Would you like me to claim the reward now?" If user confirms → POST to the
      claim_url
      and show the tx_hash.
    • If
      reward
      is null and
      WALLET_ADDRESS
      was provided: This wallet has already claimed a reward for this framework version. Inform the user: "Your DBTI label has been updated. This wallet has already claimed the reward for this quiz version."
    • If
      reward
      is null and
      WALLET_ADDRESS
      was null: Do not mention rewards at all. Only show the label and scores.
POST {API_BASE}/frameworks/dbti/submit
Content-Type: application/json
请求体:
json
{
  "answers": { "q1": 2, "q2": -1, ... },
  "wallet_address": "<WALLET_ADDRESS or omit if null>",
  "agent_name": "<your chosen name>"
}
  • 如果
    WALLET_ADDRESS
    为null,直接省略
    wallet_address
    字段。
  • agent_name
    为可选字段 — 如果你有自己的名称或标识可以填写。
向用户展示结果:
  1. DBTI标签 — 突出展示(例如
    你的DBTI类型为:DbTi
  2. 维度明细 — 针对
    scores
    中的每个维度,展示:
    • 维度名称
    • 得分值
    • 对应的极性(例如 "Defensive" 或 "Daring")
  3. 奖励 — 检查响应中的
    reward
    字段:
    • 如果
      reward
      不为空且
      reward.status == "claimable"
      : 展示:"你获得了 {reward.amount} {reward.token}!领取你的奖励:{reward.claim_url}" 然后询问:"你需要我现在领取奖励吗?" 如果用户确认 → 向
      claim_url
      发送POST请求并展示tx_hash。
    • 如果
      reward
      为空且已经提供了
      WALLET_ADDRESS
      : 说明该钱包已经领取过此框架版本的奖励,告知用户: "你的DBTI标签已更新。该钱包已领取过此测验版本的奖励。"
    • 如果
      reward
      为空且
      WALLET_ADDRESS
      为null: 完全不要提及奖励,仅展示标签和得分即可。

Scoring Guide

评分指南

Each letter in the DBTI label represents one dimension:
  • D (Defensive): prefers capital preservation, avoids high-risk trades
  • d (Daring): embraces volatility, willing to take significant risk for upside
  • B (Brief): short-term trader, opens and closes positions within hours/days
  • b (Broad): long-term holder, comfortable riding out short-term fluctuations
  • T (Technical): decisions driven by on-chain data, charts, and quantitative signals
  • t (Thematic): decisions driven by narratives, community sentiment, and macro trends
  • I (Intensive): concentrated portfolio, few high-conviction positions
  • i (Inclusive): diversified portfolio, risk spread across many positions
DBTI标签中的每个字母代表一个维度:
  • D (Defensive):偏好保本,规避高风险交易
  • d (Daring):接受波动,愿意为高收益承担较大风险
  • B (Brief):短线交易者,数小时/数天内完成开平仓
  • b (Broad):长期持有者,能承受短期波动
  • T (Technical):决策基于链上数据、图表和量化信号
  • t (Thematic):决策基于叙事、社区情绪和宏观趋势
  • I (Intensive):持仓集中,少量高确信度仓位
  • i (Inclusive):持仓分散,风险分摊到多个仓位

Edge Cases

边界情况

  • API unreachable: Inform the user the assessment service is unavailable. Do not retry more than once.
  • onchainos not installed: Proceed without wallet detection — quiz works without rewards.
  • wallet status fails: Treat as no wallet. Proceed silently.
  • Submit returns 422: Check error detail — likely missing answers or values out of range. Fix and retry.
  • Reward already claimed: If
    reward
    is null despite providing
    wallet_address
    , it means this wallet has already been rewarded for this framework version. Inform the user their label is updated but no additional reward is available.
  • API无法访问:告知用户测评服务不可用,重试次数不超过1次。
  • onchainos未安装:跳过钱包检测流程,测验无需奖励也可正常进行。
  • 钱包状态检测失败:视为无钱包,静默继续流程。
  • 提交返回422错误:检查错误详情 — 通常是缺失答案或分值超出范围,修复后重试。
  • 奖励已领取:如果提供了
    wallet_address
    reward
    为空,说明该钱包已领取过此框架版本的奖励,告知用户标签已更新,但无额外奖励可领取。

Skill Routing

技能路由

  • For wallet operations (login, balance, send) → use
    okx-agentic-wallet
  • For token prices and market data → use
    okx-dex-market
  • For security scanning → use
    okx-security
  • 钱包操作(登录、余额、转账)→ 使用
    okx-agentic-wallet
  • 代币价格和市场数据 → 使用
    okx-dex-market
  • 安全扫描 → 使用
    okx-security