AI 어시스턴트에게 Delphi로 WebSocket 클라이언트를 작성해 달라고 하면, 자신감 있고 구조도 잘 잡혀 있지만 미묘하게 틀린 결과물을 내놓습니다. 존재하지 않는 속성, 엉뚱한 유닛에 배치된 컴포넌트, 세 번의 릴리스 전에 제거된 API 같은 것들입니다. 그러고 나면 그럴듯해 보이는 네 줄 중 어느 것이 컴파일되지 않는지 찾느라 20분을 씁니다.
이유는 간단합니다. 이 모델들은 공개된 코드에서 학습했는데 eSeGeCe 컴포넌트는 상용이므로 모델이 한 번도 읽어본 적이 없습니다. 모델은 Delphi 컴포넌트 라이브러리의 형태만 알고 나머지는 다른 라이브러리에 대한 기억으로 채워 넣습니다.
저희는 그 간극을 메우기 위해 에이전트 스킬을 공개했습니다. 무료이고 MIT 라이선스이며, 설치하는 데 라이선스가 필요하지 않습니다.
에이전트 스킬이란
스킬은 에이전트가 필요할 때 불러오는 Markdown 폴더입니다. 저희 스킬에는 각 라이브러리의 공개 API가 담겨 있습니다. 모든 컴포넌트와 그 속성, 이벤트, 메서드, 해당 컴포넌트가 속한 유닛 또는 네임스페이스, 그것을 포함하는 에디션, 그리고 제품과 함께 제공되는 데모에서 가져온 실제 예제까지 포함합니다. 스킬은 매 릴리스마다 라이브러리 소스에서 생성되므로, 모델이 어렴풋이 기억하는 버전이 아니라 여러분이 실제로 사용하는 버전을 설명합니다.
모든 것이 하나의 저장소 github.com/esegece-com/agent-skills에 있으며, 여섯 개의 플러그인으로 패키징되어 있습니다.
설치 방법
Claude Code와 GitHub Copilot CLI에서는 마켓플레이스를 한 번 추가한 다음 원하는 플러그인을 설치합니다.
/plugin marketplace add esegece-com/agent-skills
/plugin install sgcwebsockets-delphi@esegece
Codex CLI에서는 다음과 같습니다.
codex plugin marketplace add esegece-com/agent-skills
codex plugin add sgcwebsockets-delphi@esegece
VS Code에서는 명령 팔레트를 열고 "Chat: Install Plugin From Source"를 실행합니다. Cursor를 비롯해 스킬 폴더를 읽는 다른 에이전트의 경우, 에이전트에 따라 저장소에서 스킬 폴더를 .cursor/skills/, .claude/skills/, .github/skills/, .agents/skills/ 또는 .junie/skills/로 복사하면 됩니다.
여섯 개의 플러그인은 sgcwebsockets-delphi, sgcwebsockets-dotnet, sgcsign-delphi, sgcopenapi-delphi, sgcindy-delphi, sgcbiometrics-delphi입니다.
sgcWebSockets가 하나가 아니라 18개의 스킬인 이유
sgcWebSockets는 222개의 컴포넌트를 등록합니다. 이를 모두 다루는 스킬 하나는 너무 커서 쓸모가 없습니다. MQTT에 관한 질문 하나에 답하려고 에이전트가 라이브러리 전체를 불러오게 되기 때문입니다. 그래서 영역별로 나누어 WebSocket 코어, 메시지 브로커, sgc 서브프로토콜, 거래소 피드, AI 및 LLM, 서비스 연동, HTTP 및 전송 계층, 인증, P2P 및 WebRTC, IoT를 다루는 18개의 스킬과 sgcHTML 위젯을 위한 여섯 개의 스킬이 더 있습니다.
MQTT 브로커에 연결하라는 요청을 받은 에이전트는 메시지 브로커 스킬만 불러오고 다른 것은 불러오지 않습니다. .NET 플러그인도 같은 방식으로 7개의 스킬로 구성됩니다.
스킬 하나에 담긴 내용
각 스킬은 직접 작성한 플레이북으로 시작합니다. 그 스킬의 용도, 필요한 uses 절 또는 using 지시문, 코드를 작성하기 전에 개발자에게 물어볼 만한 질문, 그리고 실제로 사람들이 자주 걸려 넘어지는 실수들을 담고 있습니다. 그 뒤에는 생성된 자료가 이어집니다. 모든 멤버에 대해 Delphi와 C++Builder 시그니처를 함께 제공하는 전체 API 레퍼런스, .NET 플러그인의 경우 C# 시그니처, 에이전트가 실제로 존재하는 상수를 사용하도록 돕는 옵션 및 열거형 타입 페이지, 제공되는 데모에서 추려낸 예제, 그리고 각 컴포넌트에 필요한 에디션 정보가 들어 있습니다.
마지막 항목은 특정한 종류의 시간 낭비를 막아 줍니다. "컴포넌트가 팔레트에 없다"는 문제는 보통 설치 문제가 아니라 에디션 문제이며, 스킬은 여러분이 묻기도 전에 그 답을 알려 줍니다.
.NET에 대한 솔직한 이야기
출시된 .NET 어셈블리는 Delphi 라이브러리가 등록하는 222개 컴포넌트 중 70개를 제공합니다. 에이전트가 추측하게 두는 대신, .NET 플러그인은 Delphi 전용인 나머지 152개를 각각이 속한 유닛과 함께 나열한 커버리지 페이지를 생성해 함께 제공합니다. 그렇지 않았다면 그럴듯한 C# API를 지어냈을 에이전트가 이제 참고할 곳을 갖게 되었고, "이것을 C#으로 할 수 있나요"에 대한 정직한 답이 한 페이지 안에 있습니다.
개인정보 보호
스킬은 문서입니다. 아무것도 실행되지 않고, 어디로도 전송되지 않으며, 텔레메트리도 수집하지 않습니다. 스킬에는 public 및 published API만 담겨 있으므로 메서드 본문, private 필드, protected 멤버는 의도적으로 제외되어 있습니다. 스킬을 설치해도 라이브러리 소스가 여러분의 디스크나 다른 누구의 디스크에도 저장되지 않습니다.
최신 상태 유지
스킬은 매 릴리스마다 라이브러리 소스에서 다시 생성되므로 뒤처지지 않고 제품을 그대로 따라갑니다. 새 버전을 받으려면 설치 명령을 다시 실행하세요. 코드에 있는 API가 에이전트가 설명하는 내용과 맞지 않는다면 스킬 안의 reference/history.md를 확인해 보세요. 대개는 서로 다른 빌드를 쓰고 있기 때문입니다.
자세한 내용과 수동 설치 경로는 AI 에이전트 스킬 페이지에서 확인할 수 있습니다.
스킬을 설치했는데도 에이전트가 여전히 잘못된 결과를 낸다면 그것은 문서 버그이므로 저희에게 알려 주시면 좋겠습니다. GitHub에 이슈를 등록하거나 문의하기를 이용해 주세요 — 코드를 작성한 사람들이 직접 답변을 드립니다.
