MINARA

프로필 관리

GET/PUT/DELETE /v1/profile, /v1/profile/tags/:name, /v1/profile/prompt: 개인화 정보(금융 프로필, 태그, 사용자 지정 프롬프트)를 읽고 편집합니다.

GET /v1/profile

개인화 스냅샷, 즉 Minara가 현재 사용자에 대해 알고 있는 정보를 반환합니다. REPL /profile 명령 및 minara profile show와 같습니다.

메서드GET
경로/v1/profile
인증GATEWAY_AUTH_TOKEN 설정 시 Authorization: Bearer <token> 필요
카테고리personalization

응답 200:

{
  "ok": true,
  "data": {
    "trading_summary": {
      "platform_wallet_summary": "Cycle-aware swing trader. Spot: BTC accumulation in pullbacks. Perps: short-bias hedge on ETH across two subs.",
      "reference_wallets_summary": null
    },
    "memories": [
      { "id": 1, "statement": "Prefers long-term BTC holds.", "subcategory": "preference", "created_at": "2026-04-13T10:00:00Z" }
    ],
    "tags": [
      { "name": "Risk Profile", "value": "Balanced", "source": "user", "updated_at": "2026-04-13T10:00:00Z" }
    ],
    "custom_prompt": "Respond in casual tone",
    "settings": { "include_memories": true, "include_trading_summary": true, "include_tags": true }
  }
}

platform_wallet_summary는 개인화 재구축기가 세 소스에서 구성합니다. 세션 내 trade_history, perps_fills(Minara /v1/perp-wallets/fills의 하위 계정 간 미러), external_spot_activities(Minara /v1/tx/cross-chain/activities)입니다. LLM은 4개 필드(전체, spotBreakdown, perpsBreakdown, 참조 지갑)를 출력하고 재구축기는 이를 Spot: / Perps: 접두사가 있는 하나의 문자열로 결합합니다. 하위 소비자는 하나의 요약을 보면서도 기능별 조각을 분석할 수 있습니다. 전체 파이프라인은 개인화 재구축기를 참조하세요.

tags[].source 필드는 세 가지 값을 가집니다.

  • user: 사용자가 명시적으로 설정했습니다(REPL /profile set, CLI minara profile set, REST PUT /v1/profile/tags/:name).
  • learned_preference: 행동 기본 설정이 승격되어 이 태그에 연결될 때 기본 설정 진화 시스템이 설정합니다.
  • inferred: 정기 개인화 재구축기가 채팅 기록에서 도출합니다.

우선순위는 user > learned_preference > inferred입니다. 낮은 계층의 쓰기는 높은 계층 행에 대해 조용히 건너뜁니다.


PUT /v1/profile/tags/:name

단일 사용자 태그를 설정하거나 갱신합니다. :name 경로 매개변수는 정식 태그 이름(예: Risk Profile) 또는 slug 형식(예: risk-profile)을 받을 수 있으며 URL은 퍼센트 인코딩해야 합니다.

메서드PUT
경로/v1/profile/tags/:name
인증GATEWAY_AUTH_TOKEN 설정 시 Authorization: Bearer <token> 필요
본문{ "value": "Conservative" } 또는 지우기 위한 { "value": null }
카테고리personalization

요청 본문의 source 필드와 관계없이 쓰기는 항상 source: "user"로 기록됩니다. API 소비자는 inferred 또는 learned_preference 출처를 주장할 수 없습니다. 이 값은 재구축기와 기본 설정 시스템에 예약되어 있습니다.

응답 200(성공):

{ "ok": true, "data": { "name": "Risk Profile", "value": "Conservative", "source": "user", "updated_at": "2026-04-17T10:23:00Z" } }

응답 422(알 수 없는 태그 또는 잘못된 값):

{ "ok": false, "error": "Invalid value 'Reckless' for \"Risk Profile\". Allowed: Aggressive / Balanced / Conservative" }

DELETE /v1/profile/tags/:name

{ "value": null }을 사용한 PUT과 같습니다. 태그를 지우면서 소프트 삭제 표시를 보존하므로 이후의 추론 재구축에서 다시 설정하지 않습니다. source: "user"로 기록됩니다.

메서드DELETE
경로/v1/profile/tags/:name
인증GATEWAY_AUTH_TOKEN 설정 시 Authorization: Bearer <token> 필요
카테고리personalization

응답 200:

{ "ok": true, "data": { "name": "Risk Profile", "value": null, "source": "user", "updated_at": "2026-04-17T10:23:00Z" } }

PUT /v1/profile/prompt

사용자의 사용자 지정 시스템 프롬프트 부가 내용을 설정합니다.

메서드PUT
경로/v1/profile/prompt
인증GATEWAY_AUTH_TOKEN 설정 시 Authorization: Bearer <token> 필요
본문{ "text": "Respond in casual tone" }(최대 2000자)
카테고리personalization

응답 200:

{ "ok": true, "data": { "custom_prompt": "Respond in casual tone" } }

요청 본문이 약 8 KB보다 크면 파싱 전에 응답 413을 반환합니다.

text가 없거나 비어 있고, 문자열이 아니거나, 2000자를 초과하면 응답 422를 반환합니다.


DELETE /v1/profile/prompt

사용자 지정 프롬프트를 지웁니다.

메서드DELETE
경로/v1/profile/prompt
인증GATEWAY_AUTH_TOKEN 설정 시 Authorization: Bearer <token> 필요
카테고리personalization

응답 200:

{ "ok": true, "data": { "custom_prompt": null } }

관련 엔드포인트

다음 엔드포인트는 프로필/개인화 기능을 보완하며 각각 자동 생성 페이지에서 설명합니다.

완전한 기계 판독 가능 인터페이스는 OpenAPI 3.1 사양을 다운로드하세요.

목차