V Dự án Bán hàng sốVDS AI Factory
Chi tiết dự án
Design Space
Studio Agent
Config Schema
Công cụ
Answer Template
Vận hành
Chat thử nghiệm
Lịch sử hội thoại
Tài nguyên
Kiến thức
Version Control
Deploy & Promote
Dự án Bán hàng số
env: dev

Answer Card

Card template của dự án — thiết kế trên Card Builder, publish để agent dùng. Output: card JSON.
Tạo Answer Card
{{ mainType(t) }}
{{ t.name }} {{ t.template_id }} · v{{ t.version }}
Đã xuất bản Bản nháp {{ t.updated }}
NHÂN CÁCH & PROMPT
HƯỚNG DẪN
Tối ưu bằng AI
Biến
+ Thêm
Nhúng vào card bằng {{tên_biến}} — substitute lúc render; biến thiếu để trống, không vỡ card.
KỸ NĂNG
Plugin
+ Thêm
Tra cứu gói cước builtin_http
Kiểm tra vùng phủ 5G builtin_http
Workflow
+ Thêm
flow-ban-goi-cuoc v3 · published
Kiến thức
+ Thêm
kb-goi-cuoc-vn VECTOR
Answer Card
Cài đặt
{{ attachedTpl.name }} {{ attachedTpl.template_id }} · v{{ attachedTpl.version }}
Chưa gắn card — bấm Cài đặt để chọn
card_action_url_allowlist env: dev
{{ u }}
Match literal scheme + host (FR-ENV-007); action open_url ngoài allowlist bị strip lúc render — log-only, không fail turn.
Xem trước & Gỡ lỗi
vds-llm-72b · CHAT
V
VDS Assistant
Trợ lý gói cước · Dự án Bán hàng số

Lịch sử hội thoại

Transcript replay render từ conv.messages.card_payload (bản POST-FILTER đã persist)
ConversationBắt đầuSố messageCó card
Chưa có hội thoại — thử Chat thử nghiệm trước.
{{ c.title || '(chưa có nội dung)' }}
{{ c.id }}
{{ c.started }} {{ c.msgs.length }} {{ c.msgs.filter(m=>m.card).length }}
V
{{ hist.title }}
{{ hist.id }} · {{ hist.started }}
Xem lại transcript
Chế độ xem lại — card render từ card_payload đã lưu (stored = filtered); action postback không khả dụng.

Version Control

workspace {{ ver.workspace_id }} — Draft (mutable) → Publish snapshot immutable · version_no tăng đơn điệu · chỉ component đổi mới mint + ký Ed25519
Draft — bản làm việc env development resolve theo Draft (trôi, không đóng băng)
KindComponentcontent_hash (JCS)So với v{{ latestNo }}Cập nhật
{{ d.kind }} {{ d.name }}
{{ d.component_id }}
{{ d.hash }} Đổi — sẽ mint + ký Không đổi — carry-forward {{ d.updated }}
Workspace Versions immutable — INSERT-only, không sửa/xóa
VersionRelease gateTestDEV · UAT · PRODRelease noteNgười tạoTạo lúc
v{{ v.no }}
{{ v.id }}
{{ v.lifecycle }} {{ v.status }} {{ e[0].toUpperCase() }} {{ v.note }} {{ v.by }} {{ v.created }}

Version v{{ verSel.no }} {{ verSel.lifecycle }} {{ verSel.status }}

{{ verSel.note }} {{ verSel.id }} tạo bởi {{ verSel.by }} · {{ verSel.created }} released_at {{ verSel.released_at }}
Release gate — lifecycle_state
Forward-only, không nhảy bước/lùi (sai → 409 INVALID_STATE_TRANSITION). Ký Ed25519 xảy ra lúc mint, release chỉ flip cột; chạm released phát released.v1.
Test — status
{{ verSel.status }} bởi {{ verSel.tested.by }} · {{ verSel.tested.at }}
One-way published → tested, trục riêng không liên quan lifecycle. Đã tested gọi lại = idempotent. Phát tested.v1.
Promotion — approval per env
{{ e[0].toUpperCase() }}
Cổng tuần tự DEV tự do → UAT cần DEV PASS → PROD cần UAT PASS (sai → 422 PROMOTION_GATE_VIOLATED). 1 approval / (version, env) — UNIQUE, không dual-control. Deploy cần approval PASS của chính env. 3 trục chạy độc lập nhau.
{{ e }}
đang chạy
{{ apLabel(verSel,e) }}
{{ verSel.approvals[e].by }} · {{ verSel.approvals[e].at }}
Cần {{ gateReq(e).toUpperCase() }} approval PASS trước
Thành phần trong v{{ verSel.no }} workspace_version_components — chỉ ref, không DSL
Kindcomponent_idComponent Versioncontent_hashNguồn ở v{{ verSel.no }}
{{ c.kind }} {{ c.component_id }} {{ c.cv }} {{ c.hash }} Mint + ký Ed25519 Carry-forward

Deploy & Promote

workspace {{ ver.workspace_id }} — approval gate tuần tự theo môi trường, deploy cần approval PASS của chính env
DEV tự do UAT cần DEV PASS PROD cần UAT PASS · vi phạm → 422 PROMOTION_GATE_VIOLATED · "active" = deploy SUCCESS mới nhất (không có bảng version-per-env)
{{ e }}
v{{ ver.active[e] }}
Đang chạy v{{ ver.active[e] }} — {{ (verByNo(ver.active[e]) || {}).note }}
deploy {{ lastDeployOf(e).at }} · {{ lastDeployOf(e).kind }} · {{ lastDeployOf(e).status }}
Promotion matrix
Version{{ e }}
v{{ v.no }} {{ v.lifecycle }}
{{ v.note }}
{{ apLabel(v,e) }} đang chạy
Lịch sử deploy / rollback workspace_version_deploys
Thời điểmVersionEnvHành độngTrạng tháiOutbox event
{{ l.at }} v{{ l.vNo }} {{ l.env }} deploy rollback {{ l.status }} workspace.version.{{ l.kind==='deploy' ? 'deployed' : 'rolled_back' }}.v1
Card Settings
My Cards (đã publish)
Chưa có template publish — vào Answer Template → Publish trước.
{{ t.name }}{{ t.template_id }} · v{{ t.version }}
Bind data source to card
+ Thêm binding
Render-time thay binding bằng giá trị thật (Jinja sandbox); biến thiếu áp missing variable defaults, hash-fail → degrade text.
Preview
Chọn một card để preview.
JSON Schema Editor{{ tpl ? tpl.template_id : '' }} · variables
Chưa có biến — bấm Add Field.
Preview{{ tpl ? tpl.template_id : '' }} — nhập biến theo schema
Biến đầu vào
Template chưa khai biến — thêm ở tab Biến của builder.
Hiển thị trong chat (live)
V
VDS Assistant
Trợ lý gói cước · Preview
Preview
Card trống — thêm component trong builder.
Publish versionPOST /v1/internal/versions/publish · Idempotency-Key (ULID)
Diff so với v{{ latestNo }} — component đổi mới mint + ký, còn lại carry-forward ref
{{ d.kind }} {{ d.component_id }} {{ d.hash }} mint + ký Ed25519 carry-forward
Release note
Một transaction: lock workspace → đọc Draft → content-diff từng component → INSERT workspace_versions (v{{ latestNo + 1 }}, published/published) + workspace_version_components (chỉ ref, không DSL). Publish không phát event; virtual-key cho agent provision sau commit.
Không có thay đổi — toàn bộ carry-forward; v{{ latestNo + 1 }} sẽ giống hệt v{{ latestNo }}.
Card JSON{{ jsonModal.title }}
{{ jsonModal.text }}
{{ toast.label }}{{ toast.text }}