Vì sao agents/ chỉ có openai.yaml?
Tách portable skill khỏi host adapter, hiểu chính xác OpenAI đọc file nào, host khác xử lý ra sao và phần nào tuyệt đối không nên đặt trong YAML này.
SKILL.md là protocol chung; agents/openai.yaml là adapter tùy chọn cho trải nghiệm OpenAI, giống một lớp integration chứ không phải implementation của skill.
Những điều cần nắm chắc
Chỉ có openai.yaml vì bundle hiện chỉ chọn hỗ trợ extension của OpenAI.
Không được suy ra mọi vendor đều dùng quy ước agents/<vendor>.yaml.
Host không hiểu extension vẫn có thể chạy portable core từ SKILL.md.
Workflow quan trọng không được giấu trong metadata dành riêng cho một host.
Nội dung bài viết
Câu trả lời ngắn: đây là một adapter, không phải danh sách agent
Tên thư mục agents dễ gây hiểu nhầm rằng mỗi file là một sub-agent. Trong cấu trúc skill của OpenAI, agents/openai.yaml là optional host metadata: OpenAI dùng nó để cấu hình appearance, invocation policy và tool dependencies. Nó không tạo ra một agent tên OpenAI và cũng không chứa reasoning loop.
Package chỉ có openai.yaml vì tác giả mới khai báo integration mà OpenAI đã document. Không có yêu cầu phải tạo đủ claude.yaml, antigravity.yaml hay autogen.yaml. Quan trọng hơn, không nên tự chế các filename đó chỉ để cây thư mục trông đối xứng; mỗi host có format và vị trí config riêng.
Portable core và host-specific extension sống song song
Portable core gồm SKILL.md với name, description và instruction, kèm scripts, references hoặc assets nếu cần. Đây là phần chứa workflow mà một host hỗ trợ Agent Skills có thể khám phá và thực hiện.
Host adapter chỉ cải thiện trải nghiệm trên một runtime cụ thể. Với OpenAI, interface định nghĩa display_name, short_description, icon, brand color và default prompt; policy điều khiển implicit invocation; dependencies khai báo tool mà host nên chuẩn bị. Nếu xóa openai.yaml, skill có thể mất icon hoặc integration tiện lợi nhưng logic trong SKILL.md không nên biến mất.
- SKILL.md trả lời: phải làm gì, theo thứ tự nào, khi nào hoàn thành?
- openai.yaml trả lời: OpenAI nên hiển thị, kích hoạt và chuẩn bị dependency thế nào?
- Harness policy trả lời: tool call này có thực sự được phép chạy hay không?
Host khác gặp openai.yaml thì điều gì xảy ra?
Một host không triển khai extension của OpenAI không có lý do để diễn giải file này. Nó có thể bỏ qua file và chỉ dùng SKILL.md. Khả năng portable vì vậy phụ thuộc vào việc workflow cốt lõi không tham chiếu ngược vào behavior chỉ OpenAI mới hiểu.
Nếu muốn tối ưu cho host thứ hai, trước hết phải đọc tài liệu chính thức của host đó: nó có dùng cùng Agent Skills spec không, có manifest riêng không, file nằm ở đâu và field nào được hỗ trợ. Portability là common denominator có chủ ý, không phải đổi chữ openai thành tên vendor.
Ba field group của OpenAI ảnh hưởng ở đâu?
interface là presentation layer. Nó giúp người dùng nhận ra skill và khởi động bằng prompt phù hợp, nhưng một icon đẹp không cải thiện execution correctness. policy.allow_implicit_invocation là routing control: false ngăn Codex tự chọn skill theo prompt, trong khi explicit invocation vẫn hoạt động.
dependencies.tools là dependency declaration, không phải quyền truy cập. Nó mô tả tool integration cần cho trải nghiệm trơn tru; quyền thực tế vẫn do runtime, workspace, authentication và approval quyết định. Khai báo MCP URL không tự đăng nhập và không tự vượt sandbox.
Quy tắc thiết kế để không bị vendor lock-in ngoài ý muốn
Hãy thử nghiệm bằng cách tạm bỏ agents/openai.yaml. Nếu skill không còn biết workflow, input, output hoặc done-condition, boundary đã sai. Nếu chỉ mất display name, icon, implicit routing preference hoặc dependency hint, boundary đang hợp lý.
- Không lặp toàn bộ instruction từ SKILL.md vào default_prompt.
- Không lưu secret, token hoặc credential trong YAML.
- Không xem dependency declaration là authorization.
- Không tạo filename cho vendor khác khi chưa có spec chính thức.
Code & cấu trúc tham khảo
OpenAI adapter tối thiểu và đúng boundary
1interface:2 display_name: "Frontend Production Review"3 short_description: "Audit an existing frontend change"4 icon_small: "./assets/review.svg"5 default_prompt: "Review this existing UI diff and cite evidence."67policy:8 allow_implicit_invocation: false910dependencies:11 tools:12 - type: "mcp"13 value: "browser"14 description: "Inspect rendered UI"Takeaway: File mô tả integration của OpenAI; step-by-step review và definition of done vẫn thuộc SKILL.md.
Compatibility matrix để review boundary
1Concern SKILL.md agents/openai.yaml2Workflow steps yes no3Done condition yes no4Reference/script pointers yes no5Display name and icon no yes6Implicit invocation policy no yes7OpenAI tool dependencies no yes8Actual tool authorization no no (belongs to harness/runtime)Takeaway: Hai file giải quyết hai tầng khác nhau; authorization không thuộc tầng nào trong số đó.
Tài liệu đọc thêm
Repo, đặc tả và bài viết gốc để đi sâu sau bài học.
OpenAI — Build skills
Nguồn chính thức cho cấu trúc skill, optional openai.yaml, invocation policy và dependencies.
Agent Skills specification
Portable core và progressive disclosure độc lập với host adapter.
OpenAI Skills repository
Ví dụ thực tế về agents/openai.yaml, assets và skill distribution.
OpenAI — Plugins in Codex
Phân phối skills cùng app, MCP dependency và presentation metadata.