{/* Trang này được tạo tự động từ SKILL.md của kỹ năng bởi website/scripts/generate-skill-docs.py. Chỉnh sửa nguồn SKILL.md, không phải trang này. */}
Hạt nhân sống Jupyter
Python lặp qua hạt nhân Jupyter trực tiếp (hamelnb).
Siêu dữ liệu kỹ năng
| Nguồn | Đi kèm (được cài đặt theo mặc định) |
| Đường dẫn |
skills/data-science/jupyter-live-kernel ` | | Phiên bản |
1.0.0 ` | | Tác giả | Đại lý Hermes | | Giấy phép | MIT | | Nền tảng | Linux, macOS, Windows | | Thẻ |
jupyter
, `notebook
, `repl
, `data-science
, `exploration
,
iterative |
Tham khảo: đầy đủ SKILL.md
Sau đây là định nghĩa kỹ năng đầy đủ mà Hermes tải khi kỹ năng này được kích hoạt. Đây là những gì tác nhân coi là hướng dẫn khi kỹ năng được kích hoạt.
Hạt nhân sống Jupyter (hamelnb)
Cung cấp cho bạn REPL Python có trạng thái thông qua nhân Jupyter trực tiếp. Các biến vẫn tồn tại
xuyên suốt các cuộc hành quyết. Sử dụng cái này thay vì
execute_code khi bạn cần xây dựng
trạng thái tăng dần, khám phá API, kiểm tra DataFrames hoặc lặp lại mã phức tạp.
Khi nào nên sử dụng công cụ này so với các công cụ khác
| Công cụ | Sử dụng Khi nào |
|---|---|
| Kỹ năng này | Khám phá lặp đi lặp lại, nêu các bước, khoa học dữ liệu, ML, "để tôi thử cái này và kiểm tra" |
| `execute_code | |
| ` | Các tập lệnh một lần cần truy cập vào công cụ Hermes (web_search, file ops). Không quốc tịch. |
| `terminal | |
| ` | Lệnh Shell, bản dựng, cài đặt, git, quản lý quy trình |
Quy tắc chung: Nếu bạn muốn có sổ ghi chép Jupyter cho công việc, hãy sử dụng kỹ năng này.
Điều kiện tiên quyết
- uv phải được cài đặt (kiểm tra: `which uv
) 2. JupyterLab phải được cài đặt: `uv tool install jupyterlab
- Máy chủ Jupyter phải đang chạy (xem phần Thiết lập bên dưới)
Thiết lập
Vị trí tập lệnh hamelnb:
`
SCRIPT="$HOME/.agent-skills/hamelnb/skills/jupyter-live-kernel/scripts/jupyter_live_kernel.py"
` ``Nếu chưa được nhân bản:
`
git clone https://GitHub.com/hamelsmu/hamelnb.git ~/.agent-skills/hamelnb
`
Khởi động JupyterLab
Kiểm tra xem máy chủ đã chạy chưa:
`
uv run "$SCRIPT" servers
` ``Nếu không tìm thấy máy chủ nào, hãy khởi động một máy chủ:
`
jupyter-lab --no-browser --port=8888 --notebook-dir=$HOME/notebooks
--IdentityProvider.token='' --ServerApp.password='' > /tmp/jupyter.log 2>&1 &
sleep 3
` ``Lưu ý: Mã thông báo/mật khẩu bị vô hiệu hóa đối với quyền truy cập của đại lý cục bộ. Máy chủ chạy không đầu.
Tạo Notebook để sử dụng REPL
Nếu bạn chỉ cần REPL (không có sổ ghi chép hiện có), hãy tạo một tệp sổ ghi chép tối thiểu:
`
mkdir -p ~/notebooks
`
Viết tệp JSON .ipynb tối thiểu với một ô mã trống, sau đó khởi động kernel phiên thông qua API Jupyter REST:
`
curl -s -X POST http://127.0.0.1:8888/API/sessions
-H "Content-Type: application/JSON"
-d '{"path":"scratch.ipynb","type":"notebook","name":"scratch.ipynb","kernel":{"name":"Python3"}}'
`
Quy trình làm việc cốt lõi
Tất cả các lệnh đều trả về JSON có cấu trúc. Luôn sử dụng
--compact ` để lưu mã thông báo.
1. Khám phá máy chủ và sổ ghi chép
` uv run "$SCRIPT" servers --compact uv run "$SCRIPT" notebooks --compact
`
2. Thực thi mã (thao tác chính)
` uv run "$SCRIPT" execute --path <notebook.ipynb --code '<Python code' --compact
` ``Trạng thái vẫn tồn tại trong các cuộc gọi thực thi. Các biến, nhập khẩu, đối tượng đều tồn tại.
Mã nhiều dòng hoạt động với trích dẫn $'...':
`
uv run "$SCRIPT" execute --path scratch.ipynb --code $'import os\nfiles = os.listdir(".")\nprint(f"Found {len(files)} files")' --compact
`
3. Kiểm tra các biến sống
` uv run "$SCRIPT" variables --path <notebook.ipynb list --compact uv run "$SCRIPT" variables --path <notebook.ipynb preview --name <varname --compact
`
4. Chỉnh sửa ô sổ ghi chép
`
View current cells
uv run "$SCRIPT" contents --path <notebook.ipynb> --compact
Insert a new cell
uv run "$SCRIPT" edit --path <notebook.ipynb insert
--at-index <N --cell-type code --source '<code' --compact
Replace cell source (use cell-id from contents output)
uv run "$SCRIPT" edit --path <notebook.ipynb> replace-source
--cell-id <id> --source '<new code>' --compact
Delete a cell
uv run "$SCRIPT" edit --path <notebook.ipynb delete --cell-id <id --compact
`
5. Xác minh (khởi động lại + chạy tất cả)
Chỉ sử dụng khi người dùng yêu cầu xác minh rõ ràng hoặc bạn cần xác nhận sổ ghi chép chạy từ trên xuống dưới:
` uv run "$SCRIPT" restart-run-all --path <notebook.ipynb --save-outputs --compact
`
Lời khuyên thiết thực từ kinh nghiệm
- Lần thực thi đầu tiên sau khi máy chủ khởi động có thể hết thời gian chờ — kernel cần một chút thời gian để khởi tạo. Nếu bạn hết thời gian chờ, chỉ cần thử lại.
- Nhân Python là Python của JupyterLab — các gói phải được cài đặt trong môi trường đó. Nếu bạn cần các gói bổ sung, hãy cài đặt chúng vào Môi trường công cụ JupyterLab đầu tiên.
- --cờ nhỏ gọn tiết kiệm các mã thông báo quan trọng — hãy luôn sử dụng nó. Đầu ra JSON có thể sẽ rất dài dòng nếu không có nó.
- Để sử dụng REPL thuần túy, hãy tạo một Scratch.ipynb và đừng bận tâm đến việc chỉnh sửa ô.
Chỉ cần sử dụng
executenhiều lần. - Vấn đề thứ tự đối số — các cờ lệnh phụ như
--path
đi TRƯỚC tiểu lệnh. Ví dụ: variables --path nb.ipynb list
không phải variables list --path nb.ipynb
.
6. Nếu phiên chưa tồn tại, bạn cần bắt đầu một phiên thông qua API REST
(xem phần Cài đặt). Công cụ không thể thực thi nếu không có phiên kernel trực tiếp.
7. Lỗi được trả về dưới dạng JSON có truy nguyên — đọc
ename và
`evalue
các trường để hiểu điều gì đã xảy ra. 8. Thỉnh thoảng hết thời gian chờ websocket — một số thao tác có thể hết thời gian chờ trong lần thử đầu tiên, đặc biệt là sau khi khởi động lại kernel. Hãy thử lại một lần trước khi leo thang.
Mặc định hết thời gian chờ
Tập lệnh có thời gian chờ mặc định là 30 giây cho mỗi lần thực thi. Để hoạt động lâu dài hoạt động, vượt qua
--timeout 120
. Sử dụng thời gian chờ rộng rãi (60+) cho lần đầu thiết lập hoặc tính toán nặng.