Repo Tokens
Một GitHub Action tính toán kích thước của codebase thông qua token và cập nhật một huy hiệu trong README.
Sử dụng
- uses: qwibitai/nanoclaw/repo-tokens@v1
with:
include: 'src/**/*.ts'
exclude: 'src/**/*.test.ts'
Lệnh này đếm token bằng tiktoken và ghi kết quả giữa các dòng nhận xét HTML trong README.
Màu huy hiệu phản ánh tỷ lệ phần trăm của cửa sổ ngữ cảnh mà codebase sử dụng. (mặc định là 200k, kích thước của Claude Opus). Xanh cho dưới 30%, xanh vàng từ 30%-50%, vàng từ 50%-70%, đỏ cho trên 70%.
Tại sao
Codebase nhỏ luôn là một điểm mạnh. Với các tác nhân mã hóa, nếu codebase đủ nhỏ, một tác nhân có thể giữ toàn bộ trong ngữ cảnh. Huy hiệu này cho biết mức độ dễ dàng khi làm việc với tác nhân trên codebase và là lời nhắc nhở trực quan để tránh mã bloat.
Ví dụ
Các repo đang sử dụng repo-tokens:
| Repo | Badge |
|---|---|
| NanoClaw |
Ví dụ quy trình đầy đủ
name: Update token count
on:
push:
branches: [main]
paths: ['src/**']
permissions:
contents: write
jobs:
update-tokens:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- uses: qwibitai/nanoclaw/repo-tokens@v1
id: tokens
with:
include: 'src/**/*.ts'
exclude: 'src/**/*.test.ts'
badge-path: '.github/badges/tokens.svg'
- name: Commit if changed
run: |
git add README.md .github/badges/tokens.svg
git diff --cached --quiet && exit 0
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git commit -m "docs: update token count to ${{ steps.tokens.outputs.badge }}"
git push
Cài đặt README
Thêm dấu nhận xét nơi bạn muốn hiển thị số token:
<!-- token-count --><!-- /token-count -->
Action sẽ thay thế tất cả giữa các dấu này bằng số token.
Inputs
| Input | Mặc định | Mô tả |
|---|---|---|
include | required | Các mẫu glob cho các file cần đếm (cách nhau bởi dấu cách) |
exclude | '' | Các mẫu glob để loại trừ (cách nhau bởi dấu cách) |
context-window | 200000 | Kích thước cửa sổ ngữ cảnh để tính phần trăm |
readme | README.md | Đường dẫn đến file README |
encoding | cl100k_base | Tên mã hóa tiktoken |
marker | token-count | Tên dấu nhận xét HTML |
badge-path | '' | Đường dẫn tạo huy hiệu SVG (trống = không có SVG) |
Outputs
| Output | Mô tả |
|---|---|
tokens | Tổng số token (ví dụ: 34940) |
percentage | Phần trăm của cửa sổ ngữ cảnh (ví dụ: 17) |
badge | Văn bản được chèn định dạng (ví dụ: 34.9k tokens · 17% of context window) |
Cách hoạt động
Composite GitHub Action. Cài đặt tiktoken, chạy ~60 dòng Python inline. Mất khoảng 10 giây.
Action đếm token và cập nhật README nhưng không commit. Workflow của bạn sẽ quyết định chiến lược git.