{/* 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. */}
Mã mở
Ủy quyền mã hóa cho OpenCode CLI (tính năng, đánh giá PR).
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/autonomous-ai-agents/opencode ` | | Phiên bản |
1.2.0 ` | | Tác giả | Đại lý Hermes | | Giấy phép | MIT | | Nền tảng | Linux, macOS, Windows | | Thẻ |
Coding-Agent
, `OpenCode
, `Autonomous
, `Refactoring
,
Code-Review |
| Kỹ năng liên quan | XPROTECTX21XPROTECTX, XPROTECTX22XPROTECTX, XPROTECTX23XPROTECTX |
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.
#Mã mở CLI
Sử dụng OpenCode làm công cụ mã hóa tự động được điều phối bởi các công cụ xử lý/terminal của Hermes. OpenCode là một tác nhân mã hóa AI nguồn mở, không phụ thuộc vào nhà cung cấp với TUI và CLI.
Khi nào nên sử dụng
- Người dùng yêu cầu sử dụng OpenCode một cách rõ ràng
- Bạn muốn một tác nhân mã hóa bên ngoài triển khai/tái cấu trúc/xem lại mã
- Bạn cần các phiên mã hóa kéo dài với kiểm tra tiến độ
- Bạn muốn thực thi tác vụ song song trong các thư mục/cây làm việc bị cô lập
Điều kiện tiên quyết
-
Đã cài đặt OpenCode:
npm i -g opencode-ai@latesthoặc `brew install anomalyco/tap/opencode -
Đã định cấu hình xác thực:
opencode auth loginhoặc đặt các biến env của nhà cung cấp (OpenRouter_API_KEY, v.v.) -
Xác minh:
opencode auth listphải hiển thị ít nhất một nhà cung cấp -
Kho lưu trữ Git cho các tác vụ mã (được khuyến nghị)
pty=true cho các phiên TUI tương tác
Độ phân giải nhị phân (Quan trọng)
Môi trường Shell có thể giải quyết các tệp nhị phân OpenCode khác nhau. Nếu hoạt động khác nhau giữa terminal của bạn và Hermes, hãy kiểm tra:
` terminal(command="which -a opencode") terminal(command="opencode --version")
` ``Nếu cần, hãy ghim một đường dẫn nhị phân rõ ràng:
` terminal(command="$HOME/.opencode/bin/opencode run '...'", workdir="~/project", pty=true)
`
Nhiệm vụ một lần
Sử dụng
opencode run cho các tác vụ bị giới hạn, không tương tác:
` terminal(command="opencode run 'Add retry logic to API calls and update tests'", workdir="~/project")
` ``Đính kèm tệp ngữ cảnh với
-f
:
` terminal(command="opencode run 'Review this config for security issues' -f config.yaml -f .env.example", workdir="~/project")
` ``Thể hiện tư duy mô hình với
--thinking
:
` terminal(command="opencode run 'Debug why tests fail in CI' --thinking", workdir="~/project")
` ``Buộc một mô hình cụ thể:
` terminal(command="opencode run 'Refactor auth module' --model OpenRouter/Anthropic/Claude-sonnet-4", workdir="~/project")
`
Phiên tương tác (Nền)
Đối với công việc lặp đi lặp lại yêu cầu trao đổi nhiều lần, hãy khởi động TUI ở chế độ nền:
` terminal(command="opencode", workdir="~/project", background=true, pty=true)
Returns session_id
Send a prompt
process(action="submit", session_id="<id>", data="Implement OAuth refresh flow and add tests")
Monitor progress
process(action="poll", session_id="<id") process(action="log", session_id="<id")
Send follow-up input
process(action="submit", session_id="<id>", data="Now add error handling for token expiry")
Exit cleanly — Ctrl+C
process(action="write", session_id="<id>", data="\x03")
Or just kill the process
process(action="kill", session_id="<id>")
` ``Quan trọng: KHÔNG sử dụng
/exit ` — đây không phải là lệnh OpenCode hợp lệ và thay vào đó sẽ mở hộp thoại bộ chọn tác nhân. Sử dụng Ctrl+C (
\x03
) hoặc
process(action="kill") để thoát.
Tổ hợp phím TUI
| Chìa khóa | Hành động |
|---|---|
| `Enter | |
| ` | Gửi tin nhắn (nhấn hai lần nếu cần) |
| `Tab | |
| ` | Chuyển đổi giữa các đại lý (xây dựng/kế hoạch) |
| `Ctrl+P | |
| ` | Mở bảng lệnh |
| `Ctrl+X L | |
| ` | Chuyển phiên |
| `Ctrl+X M | |
| ` | Chuyển đổi mô hình |
| `Ctrl+X N | |
| ` | Phiên mới |
| `Ctrl+X E | |
| ` | Mở trình soạn thảo |
| `Ctrl+C | |
| ` | Thoát mã mở |
Tiếp tục phiên
Sau khi thoát, OpenCode in ID phiên. Tiếp tục với:
`
terminal(command="opencode -c", workdir="/project", background=true, pty=true) # Continue last session
terminal(command="opencode -s ses_abc123", workdir="/project", background=true, pty=true) # Specific session
`
Cờ chung
| Cờ | Sử dụng |
|---|---|
| `run 'prompt' | |
| ` | Thực hiện và thoát một lần |
--Continue ` /
-c ` | Tiếp tục phiên OpenCode cuối cùng | |
--session <id> ` /
-s ` | Tiếp tục một phiên cụ thể | |
--agent <name> ` | Chọn đại lý OpenCode (bản dựng hoặc gói) | |
--model provider/model ` | Buộc mô hình cụ thể | |
--format JSON ` | Đầu ra/sự kiện có thể đọc được bằng máy | |
--file <path> ` /
-f ` | Đính kèm (các) tệp vào tin nhắn | |
--thinking ` | Hiển thị các khối tư duy kiểu mẫu | |
--variant <level> ` | Nỗ lực suy luận (cao, tối đa, tối thiểu) | |
--title <name> ` | Đặt tên cho phiên | |
--attach <url> ` | Kết nối với máy chủ mã mở đang chạy |
Thủ tục
-
Xác minh sự sẵn sàng của công cụ:
`terminal(command="opencode --version")
`terminal(command="opencode auth list")
- Đối với các tác vụ bị giới hạn, hãy sử dụng
opencode run '...'(không cần pty). - Đối với các tác vụ lặp lại, hãy khởi động
opencodevới `background=true, pty=true
. 4. Giám sát các tác vụ dài với `process(action="poll"|"log")
. 5. Nếu OpenCode yêu cầu đầu vào, hãy trả lời qua `process(action="submit", ...)
.
6. Thoát bằng
process(action="write", data="\x03") hoặc
`process(action="kill")
. 7. Tóm tắt các thay đổi của tệp, kết quả kiểm tra và các bước tiếp theo cho người dùng.
Quy trình đánh giá PR
OpenCode có lệnh PR tích hợp:
` terminal(command="opencode pr 42", workdir="~/project", pty=true)
` ``Hoặc xem xét trong một bản sao tạm thời để cách ly:
` terminal(command="REVIEW=$(mktemp -d) && git clone https://GitHub.com/user/repo.git $REVIEW && cd $REVIEW && opencode run 'Review this PR vs main. Report bugs, security risks, test gaps, and style issues.' -f $(git diff origin/main --name-only | head -20 | tr '\n' ' ')", pty=true)
`
Mẫu công việc song songSử dụng các thư mục/cây làm việc riêng biệt để tránh va chạm:
` terminal(command="opencode run 'Fix issue #101 and commit'", workdir="/tmp/issue-101", background=true, pty=true) terminal(command="opencode run 'Add parser regression tests and commit'", workdir="/tmp/issue-102", background=true, pty=true) process(action="list")
`
Quản lý phiên & chi phí
Liệt kê các phiên trước đây:
` terminal(command="opencode session list")
` ``Kiểm tra việc sử dụng mã thông báo và chi phí:
` terminal(command="opencode stats") terminal(command="opencode stats --days 7 --models Anthropic/Claude-sonnet-4")
`
cạm bẫy
- Phiên
opencode(TUI) tương tác yêu cầu `pty=true
. Lệnh
opencode run KHÔNG cần pty.
/exit ` KHÔNG phải là lệnh hợp lệ - nó mở bộ chọn tác nhân. Sử dụng Ctrl+C để thoát TUI.
- PATH không khớp có thể chọn cấu hình mô hình/nhị phân OpenCode sai.
-
Nếu OpenCode bị kẹt, hãy kiểm tra nhật ký trước khi hủy:
`process(action="log", session_id="<id")
- Tránh chia sẻ một thư mục làm việc trên các phiên OpenCode song song.
- Có thể cần phải nhấn Enter hai lần để gửi trong TUI (một lần để hoàn thiện văn bản, một lần để gửi).
Xác minh
Kiểm tra khói:
` terminal(command="opencode run 'Respond with exactly: OPENCODE_SMOKE_OK'")
` ``Tiêu chí thành công:
-
Đầu ra bao gồm `OPENCODE_SMOKE_OK
-
Lệnh thoát mà không có lỗi nhà cung cấp/model
-
Đối với tác vụ mã: các tệp dự kiến đã thay đổi và các bài kiểm tra đã vượt qua
Quy tắc
- Ưu tiên
opencode runđể tự động hóa một lần - nó đơn giản hơn và không cần pty. - Chỉ sử dụng chế độ nền tương tác khi cần lặp lại.
- Luôn đặt phạm vi các phiên OpenCode vào một repo/workdir duy nhất.
- Đối với các tác vụ dài, hãy cung cấp cập nhật tiến độ từ nhật ký `process
. 5. Báo cáo kết quả cụ thể (tệp đã thay đổi, kiểm tra, rủi ro còn lại). 6. Thoát khỏi phiên tương tác bằng Ctrl+C hoặc tắt, không bao giờ thoát
/exit
.