스킬
스킬은 AI의 행동을 정하는 Markdown 지시서입니다. 역할과 말투, 어떤 데이터를 어떻게 볼지, 어떤 형식으로 답할지를 써 두면 AI가 매번 그것을 따릅니다.
스킬은 AI에게 읽히는 것으로, AI가 실행할 수 있는 기능과는 다릅니다. 실행할 수 있는 기능 (테마 적용, 칼럼 추가 같은 조작)은 capability라고 부르며, 권한 설정에서 허용한 범위만 쓸 수 있습니다. 스킬에 아무리 써도 허용하지 않은 조작은 실행되지 않습니다.
스킬과는 별도로, AI에는 인격과 기억 (스킬을 바꿔도 변하지 않는 핵심)이 있습니다. 스킬로 갈아입힐 수 있는 것은 그 위에 얹히는 말투나 역할 (캐릭터)입니다.
최소 구성
Markdown 파일 맨 앞에 frontmatter를 쓰고, 그 아래에 본문을 씁니다.
---
id: my-skill
name: 요약봇
mode: manual
---
당신은 Misskey 클라이언트 NoteDeck의 조작 보조 AI입니다.
한국어로 간결하게 응답하세요.id를 생략하면 파일 이름이 쓰입니다. 그 밖에 description / author / version / iconUrl을 쓸 수 있습니다.
언제 읽히는가 (mode)
| mode | 언제 AI에게 넘어가는가 | 알맞은 용도 |
|---|---|---|
always | 모든 대화에서 항상 | 앱 전체의 행동 지침 |
manual | 스킬 칼럼에서 활성화해 둔 동안 | 인격 전환, 필요할 때만 꺼내는 전문 지식 |
trigger | 입력에 triggers의 단어가 포함되면. 한 번 걸리면 그 세션 동안에는 계속 넘어감 | 특정 주제일 때만 필요한 지식 |
heartbeat | 정기 실행 때마다 | 정기적으로 상황을 보고 보고하는 용도 |
mode: trigger는 triggers에 단어를 나열해서 지정합니다. 대조는 대소문자를 구별하지 않는 부분 일치입니다. 대화할 때마다 전부 읽히면 비용이 늘어나므로, 전문적인 내용일수록 trigger가 알맞습니다. manual의 활성 상태는 frontmatter의 active: true로 저장됩니다.
예약 스킬
skills/에는 이름과 역할이 고정된 두 개가 있습니다. 이름 바꾸기, 삭제, mode 변경, 비활성화는 할 수 없고 스킬 칼럼에도 나오지 않습니다. 에이전트 설정에서 편집합니다. 내용이 사실상 비어 있는 동안에는 AI에게 넘어가지 않습니다.
AGENTS.md— 규칙. 항상 넘어갑니다 (always고정). 에이전트 설정의 "규칙" (ルール)HEARTBEAT.md— 순회 절차. 정기 실행 때마다 넘어갑니다 (heartbeat고정). 에이전트 설정 HEARTBEAT의 "순회 절차 편집" (巡回の手順を編集)
쓰는 원칙
역할과 말투를 맨 앞에서 고정합니다 — 무엇을 하는 AI이고 어떻게 답하는지를 처음에 씁니다.
어떤 데이터를 볼지 순서를 씁니다 — 화면에 보이는 노트와 계정 정보는 매번 AI에게 넘어갑니다. 그것으로 충분한 것을 capability로 다시 가져오게 하면 쓸데없는 왕복이 늘어납니다. "화면의 노트를 참조할 때는 먼저 넘겨받은 것을 보고, 모든 계정이 필요할 때만 목록을 가져온다"처럼 씁니다.
응답 형식을 엄격하게 지정합니다 — 모호한 지시로는 긴 글이 돌아오기 쉽습니다. "첫 줄은 결론을 30자 이내로", "글머리 기호는 최대 5개"처럼 제약을 쓰면 효과가 있습니다.
실패했을 때의 행동을 씁니다 — 데이터를 가져올 수 없을 때, 권한이 부족할 때, 요청을 이해할 수 없을 때 무엇이라고 답할지 정해 둡니다.
capability 이름을 명시합니다 — "테마를 바꿔"라고만 쓰면, AI가 실제로는 조작하지 않고 "바꿨습니다"라고 답하는 일이 있습니다. "themes.list로 목록을 가져온다 → 이름이 일치하는 id를 고른다 → themes.apply로 적용한다"처럼 절차와 이름을 씁니다.
정기 실행하는 스킬
mode: heartbeat 스킬은 에이전트 설정에서 HEARTBEAT를 활성화해 둔 동안 정기적으로 실행됩니다 (기본값은 비활성). 앱이 실행되는 동안이 기본이며, 상주시키면 앱을 종료해도 계속됩니다. 절전 모드에서 복귀할 때도 한 번 실행됩니다.
frontmatter의 cheapCheckCapabilities에 "무엇을 지켜볼지" (알림 목록 등 읽기만 하는 cheap한 capability)를 나열해 두면, 지난번부터 변화가 없는 동안에는 AI 호출 자체가 생략됩니다. 선언하지 않으면 변화가 없어도 매번 AI가 호출되어 과금됩니다. 생략이 계속되어도 일정 시간마다는 반드시 실행됩니다.
실행할 때마다 반드시 바뀌는 것 (현재 시각 등)을 지켜볼 대상으로 삼으면 항상 변화가 있다고 판정되어 생략이 듣지 않습니다. "무엇이 바뀌면 깨워 주었으면 하는가"를 기준으로 고르세요.
HEARTBEAT 중의 권한은 채팅과는 별도의 행 (기본값은 읽기만)이며, 하루의 AI 실행 횟수 상한도 설정할 수 있습니다. 손안의 CLI를 AI로 쓰는 연결에서는 HEARTBEAT가 동작하지 않습니다.
기밀 다루기
AI에게 넘어가는 데이터에서는 토큰이나 비밀번호에 해당하는 항목이 자동으로 제거됩니다.
만들기와 배포하기
AI 칼럼에서 "○○하는 스킬을 만들어 줘"라고 부탁할 수 있습니다. 직접 쓴다면 설정 폴더의 skills/에 Markdown 파일 하나를 두기만 하면 됩니다. 새로 만들기와 편집의 입구는 개발자 모드에서 열립니다. 만든 것은 MisStore에서 배포할 수 있습니다 (제출 방법 / 형식).
capability 목록과 권한의 자세한 내용은 저장소의 SKILLS.md를 참고하세요.