본문으로 건너뛰기
LVIS AI

Host · Chat

채팅 안 플러그인 패널

활성 플러그인이 사이드바에 노출됩니다. 각 플러그인은 하나의 검증된 manifest 로 UI 슬롯, 지침 Skill, 호출 가능한 Tool을 제공합니다. 호스트 코어는 plugin specific 코드를 직접 import 하지 않습니다.

채팅에서 호출 가능한 플러그인 패널 (skills, tools)

번들 Skill

manifest skills[] 항목이 검증된 SKILL.md 지침 번들을 설치합니다. 자연어 입력만으로 Tool을 암묵 호출하거나 preload하지 않습니다.

ui[] 슬롯

plugin.json 의 ui[]slot(sidebar/chat/popover/embedded)·kind(embedded-module/url)·entry·exportName·window 를 선언.

Tools list

도구는 manifest tools[] 에 정적 선언. 핸들러는 RuntimePlugin.handlers map. 도구 이름 정규식 ^[a-zA-Z_][a-zA-Z0-9_]*$.

이름 규약 — 세 가지 namespace

  • LLM 도구 이름: ^[a-zA-Z_][a-zA-Z0-9_]*$ (src/plugins/runtime/manifest-validation.ts). 선두 숫자 / dash 불가. vendor 요구 사항 (OpenAI / Gemini / Claude 공통).
  • Skill / agent / session id: 별도 — ^[a-zA-Z0-9_-]+$ (src/main/skill-store.ts). dash 허용.
  • 플러그인 id: 보통 kebab-case (예: local-indexer, ms-graph). manifest id 필드.
플러그인 도구는 매니페스트에서 옵니다
호스트는 각 플러그인을 자기 프로세스 안의 MCP 서버 로 띄우고, 그 서버가 내놓는 도구 목록을 읽어 Tool Registry 에 넣습니다. 서버는 플러그인 매니페스트를 그대로 투영해서 만들어지고 (src/mcp/plugin-server-projection.ts), 배선은 부팅 단계에서 이뤄집니다 (src/mcp/plugin-loopback-manager.ts · src/boot/steps/plugin-runtime.ts).
그 목록은 서버 세대 단위로 고정입니다
플러그인이 띄우는 서버는 목록이 바뀌면 알려주겠다 고 광고하지 않습니다 — 알림을 보낼 통로가 없어서 listChanged: false 로 내보냅니다 (src/mcp/plugin-server-projection.ts). 도구를 바꾸려면 플러그인을 다시 배포하고 서버를 다시 띄워야 합니다.외부 MCP 서버는 다릅니다 — 외부 서버는 목록 변경 알림을 보낼 수 있고, 받으면 호스트가 도구 목록을 다시 가져옵니다 (src/mcp/mcp-client.ts).