Skip to content

v2.2.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 08:26
· 3 commits to main since this release

v2.2.0 — Hành vi nền, review phản biện, hai skill mới

Bản 2.2.0 thêm hai skill, đổi hành vi của agent khi merge và khi viết code, và bỏ một skill khỏi chế độ tự nạp để prompt nhẹ hơn. Không có breaking change về tool hay format config.

Cái quan trọng nhất: prompt của planner nhẹ đi

zetta và architect-planner không còn tự nạp parallel-exploration. Cả hai là agent lập kế hoạch — nghiên cứu song song là việc của orchestrator, và prompt của họ đã có sẵn hive_skill("parallel-exploration") ở ba chỗ để nạp khi thật sự cần.

Lý do: thân skill được nhét nguyên văn vào system prompt. 1.120 từ đó bị trả giá ở mỗi lượt của một session có thể chạy hàng trăm lượt, cho một skill có khi cả session đọc một lần. forager-worker thì vẫn giữ test-driven-development và verification-before-completion — nó là agent viết code, và một agent bị dặn "nạp TDD khi đang code" là một agent sẽ bỏ qua.

Bạn cần biết: nếu ~/.config/opencode/agent_hive.json của bạn có autoLoadSkills: ["parallel-exploration"] cho hai agent này, dòng đó sẽ đè lên default và bạn không nhận được thay đổi. Xoá nó để dùng default mới, hoặc giữ nếu bạn thật sự muốn.

Skill mới

Skill Giải quyết việc gì
context-map-window Đọc theo bản đồ trước thân bài (code_search → look_at → read có range), và growth check trước khi thêm dòng vào prompt hay skill. Ra đời từ chính lỗi của Hive: prompt cứ dài thêm và không gì bắt nó dừng
source-driven-development Viết code chạm API lạ thì tra trước (context7_query-docs, .d.ts đã cài, hoặc code thật đang dùng), ghi lại chỗ đã tra, và cái gì chưa tra phải nói là chưa tra. Mục nâng cấp dependency của nó là bài học của chính bản này — xem bên dưới

Hành vi agent

  • Sáu quy tắc nền trong system prompt, áp cho mọi agent ở mọi pha: nói ra giả định thay vì mang nó đi, nêu mâu thuẫn thay vì tự chọn một cách im lặng, phản biện khi chi phí cụ thể, chọn cách nhàm chán, không sửa ngoài phạm vi, không tuyên bố điều chưa tự thấy. Trước đây chỉ zetta và forager có một phần của điều này; architect và scout không có gì.
  • swarm review phản biện trước merge quan trọng. Merge một task chạm auth, hình dạng dữ liệu, hay hợp đồng API bên ngoài thì chạy một reviewer mới với diff và contract — không đưa kết luận của người viết, vì reviewer được cho biết phải nghĩ gì thì trả lại sự đồng tình. Bỏ qua cho việc cơ học.
  • code-reviewer phán quyết bằng hai lượt khi finding chặn merge: lượt thứ hai trong một conversation mới, không được kể phán quyết của lượt một. Bất đồng thì mức nặng hơn giữ nguyên cho tới khi có phán quyết thành văn.
  • executing-plans có kỷ luật memory: quy tắc đổi cách làm ghi thành feedback kèm Why và How to apply; sự thật về repo ghi kèm ngày; và không ghi điều người dùng chưa thấy, vì hôm sau nó sẽ bị trích lại như đã được đồng ý.
  • caveman viết lại 591 → ~95 dòng, kèm con số thật của dự án gốc: giảm khoảng 3% output so với chỉ cần nói "answer concisely" — không phải chiến lược tiết kiệm token. Bản mới có phần bản cũ thiếu: nó bật tới khi bị tắt, bỏ một chữ "không" tốn hơn mọi chữ đã tiết kiệm, và cảnh báo bảo mật / hành động không thể hoàn tác / câu hỏi phải dùng câu đầy đủ.

Dependency

  • simple-git 3 → 4.0.2, và đây là lý do skill source-driven-development tồn tại: v4 đổi chỗ chứa kết quả git đã parse (sang error.git) và đổi message xung đột thành CONFLICTS: a.txt:content. Code cũ parse message tìm "Merge conflict in" nên danh sách file xung đột thành rỗng — merge vẫn fail đúng, nhưng người dùng không biết mở file nào. Suite xanh không phát hiện ra, vì nó không chạm đường đó. Nay đọc error.git.conflicts[].file, và thêm 5 test chạy git thật cho WorktreeService (trước đó không có test nào).
  • TypeScript 5.9 → 7.0.2 (bản native). Hai chỗ phải sửa: opencode-hive thiếu rootDir (TS 7 báo TS5011 thay vì đoán), và TS 7 không tự nạp @types/* nữa nên cả hai tsconfig khai "types": ["node", "bun"].
  • Nâng @ast-grep/napi 0.51, zod 4.6, @colbymchenry/codegraph 1.6.2, @types/node 26, @types/bun 1.4.4, @opencode/plugin / @opencode/client 2.1.4, simple-git 4.0.2.

Kiểm chứng

  • opencode-hive: 674 pass / 0 fail; hive-core: 155 pass / 0 fail; tsc --noEmit sạch dưới TS 7; build ok.
  • Chạy thật trên OpenCode 2.1.4 với bản build cục bộ: hive_skill trả đúng thân cả hai skill mới; mục Operating Behaviours có trong system prompt; và sau khi bỏ auto-load, khi được hỏi trực tiếp, zetta trả lời thân parallel-exploration không còn trong prompt — chỉ còn tên trong tham chiếu hive_skill(...).

Nâng cấp

npm i -g @hung319/opencode-hive@2.2.0
opencode plugin update

Rồi khởi động lại OpenCode: service đang chạy giữ bản cũ trong bộ nhớ cho tới khi restart.

Không cần sửa agent_hive.json. Hai skill mới có mặt trong available_skills và tự nạp theo đúng trigger; nếu muốn tắt thì thêm tên vào disableSkills.