Công cụ lập trình
DeepSeek Harness
Cấu hình mô hình TokenLab trong Harness, kiểm tra yêu cầu và chọn MCP, Skills hoặc bundle provider
Chọn cách kết nối
Để dùng TokenLab làm mô hình chính, thêm custom provider trong Harness Web UI. Không bắt buộc cài bundle TokenLab. MCP thêm công cụ, còn Skill cung cấp hướng dẫn API; cả hai không tự đổi mô hình chính.
Harness là bản xem trước dành cho nhà phát triển. Các bước được đối chiếu với tài liệu chính thức và gói đã phát hành @deepseek-ai/dsh 0.1.5-rc.3 ngày 27/09/2026. Hướng dẫn bundle bên dưới cũng dành cho phiên bản này; hãy kiểm tra riêng khả năng tương thích với các bản Harness khác.
Giao nhiệm vụ cho agent hiện có
Đọc https://tokenlab.sh/docs/vi/integrations/deepseek-harness, kiểm tra phiên bản đã cài và hệ điều hành của tôi.
Xác nhận tôi cần TokenLab làm mô hình chính, công cụ MCP hay API Skill.
Giữ các tài khoản, cấu hình nhà cung cấp và quyền hiện có; giải thích cách khôi phục thay đổi.
Không yêu cầu khóa API trong chat. Tôi sẽ nhập cục bộ và tự làm các bước giao diện cần thiết.
Giải thích chi phí của một yêu cầu kiểm tra nhỏ. Chỉ sau khi tôi chọn rõ ràng bài kiểm tra đó, mới hỗ trợ chạy và đối chiếu bản ghi TokenLab.Khởi động Harness
Dùng Node được hỗ trợ trên macOS, Linux hoặc Windows; có thể bắt đầu với Node 24 LTS. Chạy trong terminal hoặc PowerShell tại thư mục dự án:
node --version
npx @deepseek-ai/dsh@0.1.5-rc.3 webMở URL cục bộ được in ra, rồi thêm và chọn dự án bằng Choose workspace. Lệnh dùng profile web; profile desktop của Electron không do quy trình CLI này quản lý. Xem hướng dẫn khởi động và Web UI.
Cấu hình một provider TokenLab
- Mở Settings → Models → Add a custom provider, giữ các nhà cung cấp và quyền hiện có.
- Nhập Provider ID viết thường, ví dụ
tokenlab-chat, và chọn một cặp giao thức/Base URL trong bảng. - Lưu khóa TokenLab trong biểu mẫu cục bộ. Khóa qua UI được lưu tại
$DSH_HOME/.credentials.yaml; cài đặt chỉ giữ tham chiếu. Không gửi khóa vào chat hay git. - Thêm ID chính xác từ danh mục hiện tại, đối chiếu
tokenlab.accepted_request_formatstrong chi tiết mô hình. - Lưu provider, chọn mô hình và tạo phiên mới. Phiên đã gửi yêu cầu vẫn giữ mô hình đã ghi nhận.
| Ví dụ Provider ID | Harness API protocol | Base URL | Định dạng yêu cầu công khai cần có |
|---|---|---|---|
tokenlab-chat | openai-completions | https://api.tokenlab.sh/v1 | openai_chat_completions |
tokenlab-responses | openai-responses | https://api.tokenlab.sh/v1 | openai_responses |
tokenlab-messages | anthropic-messages | https://api.tokenlab.sh | anthropic_messages |
Lần kiểm tra văn bản đầu có thể dùng gpt-4.1-mini còn đang cung cấp theo dòng Chat. Fetch available models → Add selected giúp tìm mô hình nhưng vẫn cần lưu; nếu thất bại, nhập ID thủ công. Danh sách không chứng minh tương thích giao thức. Không có giao thức Gemini native ở đây; chỉ dùng Chat khi mô hình công bố hỗ trợ. Ảnh đầu vào và điều khiển suy luận có thể cần thêm trường settings.yaml; xem tài liệu provider chính thức và thông tin mô hình.
Kiểm tra một yêu cầu nhỏ
Gửi trong phiên mới:
Chỉ trả lời TOKENLAB_CONNECTION_OK. Không dùng công cụ và không sửa tệp.Yêu cầu có tính phí. Đối chiếu phản hồi cùng mô hình, thời gian và trạng thái trong lịch sử TokenLab. Không cần thử cả ba giao thức hay tạo media có phí cho lần kết nối đầu. Danh sách mô hình hoặc phát hiện MCP thành công chưa xác nhận quyền tạo nội dung.
Tùy chọn: bundle TokenLab
@tokenlabai/dsh-provider@0.1.5 dành cho Harness 0.1.5-rc.3. Dùng các bước custom-provider gốc ở trên để cấu hình một mô hình, hoặc cài bundle nếu cần các tuyến mô hình và công cụ được cấu hình sẵn.
Bundle chứa ảnh chụp cố định của 136 mô hình chat công khai, được kiểm tra ngày 27/09/2026: Responses 27, Messages 10 và Chat 99. Mỗi mô hình chỉ xuất hiện trên một tuyến. Bundle cố định phiên bản @tokenlabai/mcp-server@0.6.24 và có thêm công cụ riêng tokenlab_wait_task. Cài phiên bản này không làm mới danh mục. Hãy đối chiếu ID với danh mục hiện tại và thêm mô hình mới qua custom provider khi cần.
Với bản Harness tương thích đã có, kiểm tra pnpm nằm trong PATH. Cài đặt và khởi động phải dùng cùng phiên bản dsh và profile. Nếu chạy bằng npx, thay dsh dưới đây bằng đúng lệnh khởi động có phiên bản đó:
dsh --version
pnpm --version
dsh plugin --profile web add --workspace-root @tokenlabai/dsh-provider@0.1.5Trước khi khởi động profile, đặt khóa trong môi trường khởi chạy hoặc .env được đọc:
TOKENLAB_API_KEY=sk-your-tokenlab-keyHarness đọc .env ở thư mục khởi chạy và $DSH_HOME (thường là ~/.dsh); biến môi trường kế thừa được ưu tiên. Chọn workspace sau đó không đổi .env. Không commit tệp này; khởi động lại cùng profile sau khi sửa. Khóa mô hình lưu qua UI không tự trở thành TOKENLAB_API_KEY của bundle. Với headless, cả cài đặt và khởi động phải dùng profile đó thay cho web.
Harness 0.1.5-rc.3 hợp nhất llm-pi-ai.providers đã lưu theo khóa provider. Các provider có khóa khác nhau cùng tồn tại. Các mục đã lưu tokenlab-responses, tokenlab-messages hoặc tokenlab-chat ghi đè tuyến cùng khóa trong bundle; hãy kiểm tra chúng khi nâng cấp danh mục cũ. Giữ nguyên các provider và mô hình khác trong $DSH_HOME/settings.yaml, không thay toàn bộ tài liệu cài đặt bằng Cordis patch.
Chi tiết mô hình công khai cho biết khả năng suy luận nhưng không liệt kê các giá trị effort được từng mô hình hỗ trợ. Vì vậy bundle không khai báo reasoningEfforts. Harness không cung cấp mức effort cho các tuyến tùy chỉnh này; điều đó không tắt suy luận phía máy chủ. Nếu tự cấu hình reasoningEfforts, chỉ dùng các giá trị đã được kiểm chứng riêng trong mục mô hình thuộc danh sách models của provider và giữ nguyên các mô hình khác. Khả năng suy luận tự nó không chứng minh rằng mô hình hỗ trợ xhigh hoặc max.
Bundle mặc định dùng TOKENLAB_MCP_TOOL_PROFILE=core với 32 công cụ MCP và TOKENLAB_MCP_SCHEMA_MODE=portable. Chọn catalog nếu chỉ cần khám phá (6 công cụ), hoặc full để dùng cả 89 công cụ, bao gồm thao tác bổ sung cho vòng đời response, batch, tài nguyên/nhóm Seedance và worlds. Công cụ thăm dò riêng tokenlab_wait_task luôn có trong mọi profile và không được tính vào số công cụ MCP này. Các biến môi trường còn lại ở dưới:
| Biến | Mặc định | Mục đích |
|---|---|---|
TOKENLAB_API_KEY | không có | Xác thực model, MCP và polling bất đồng bộ |
TOKENLAB_API_BASE | https://api.tokenlab.sh | Root API MCP và task |
TOKENLAB_OPENAI_BASE_URL | https://api.tokenlab.sh/v1 | Base URL cho Responses và Chat |
TOKENLAB_ANTHROPIC_BASE_URL | https://api.tokenlab.sh | Base URL cho Messages |
TOKENLAB_MCP_TOOL_PROFILE | core | catalog (6) / core (32) / full (89) |
TOKENLAB_MCP_SCHEMA_MODE | portable | Chọn portable, exact hoặc strict |
Khi delivery.mode là complete, dùng kết quả trực tiếp. Nếu là async, chuyển delivery.task_id cho tokenlab_wait_task và đọc status cuối cùng, response, result_urls. Hết thời gian chờ không có nghĩa đã hoàn tất. Giữ phê duyệt cho công cụ có phí hoặc phá hủy; xem tác vụ bất đồng bộ.
Gỡ bằng cùng trình khởi chạy và profile, sau đó khởi động lại:
dsh plugin --profile web remove --workspace-root @tokenlabai/dsh-providerKhi gặp lỗi
- Không nhập được: chọn workspace và mô hình.
MISSING_CREDENTIALhoặc 401: kiểm tra thông tin xác thực của provider; công cụ bundle đọc riêngTOKENLAB_API_KEYtừ môi trường khởi chạy.UNKNOWN_MODELhoặc ID đã ngừng: kiểm tra danh mục trực tiếp, đặt đúng ID và tạo phiên mới. Cài lại0.1.5không cập nhật ảnh chụp danh mục.- Tạo nội dung thất bại: đối chiếu giao thức, Base URL và định dạng được chấp nhận. Không xóa lịch sử, công cụ hay ảnh chỉ để tạo một lần thành công.
- Thiếu
dshhoặcpnpm: dùng lệnhnpxcó phiên bản ở trên; cài pnpm trước khi dùng plugin.
MCP và Skills là lựa chọn riêng
Provider thủ công không cài công cụ. Nếu không cần bundle, làm theo hướng dẫn TokenLab MCP, kiểm tra phát hiện trước khi tạo nội dung. Đặt cả thư mục Skill, gồm SKILL.md và tham chiếu, tại .dsh/skills/tokenlab-api-integration/ ở gốc dự án. Harness cũng đọc .agents/skills/. Skill không cài provider, máy chủ MCP hay khóa. Xem tài liệu Skills chính thức.
Jev / System One & Webhooks
Với Jev (POST /v1/systemone), dùng mcp__tokenlab__evaluate_decisions trong core hoặc full. Kiểm tra category=decision và chi tiết mô hình trước. Đây là quyết định đồng bộ, không phải mô hình chat hay tác vụ bất đồng bộ; không dùng bộ chọn mô hình hoặc tokenlab_wait_task.
Webhook cần full và TOKENLAB_MANAGEMENT_TOKEN=mt-... riêng trong môi trường khởi chạy, được bundle truyền rõ ràng sang MCP. Khóa suy luận không thay thế được; token còn có quyền quản trị khác. Đăng ký webhook không biến Harness thành bên nhận.