What is Hackers' Pub?

Hackers' Pub is a place for software engineers to share their knowledge and experience with each other. It's also an ActivityPub-enabled social network, so you can follow your favorite hackers in the fediverse and get their latest posts in your feed.

@devol:fediverso: Devol โ‚ :devol: @fediverso for a cleaner view of this list there is also delightful.coding.social/delig, which maybe there should be a Italian translation of. Seems like having your own fork of this list just to add one line description in Italian is sorta pointless. cc @smallcircles๐Ÿซง socialcoding.. is there any work done to internationalize the lists?

@liaizonwakest โ‚ @fediverso @smallcircles๐Ÿซง socialcoding.. Hi, just to clarify: this is not a fork, but a mirrored copy linked to the original project.
The more places a project is mirrored, the more people become aware of it, the more contributors it attracts, and the better the project becomes. Thatโ€™s how free software works and that's why it has been mirrored :)

Thereโ€™s also no real need to translate the list, since it mostly contains names, operating systems, and licenses :)

0

ใ€C107ใŠๅ“ๆ›ธใใ€‘
ไธ€ๆ—ฅ็›ฎๆฑใƒ•-47bใ€ŒใƒŸใƒฉใ‚คใƒใ‚ญใƒฌใ‚คใƒ‹ใ€ใฎ้ ’ๅธƒๆƒ…ๅ ฑใงใ™
ๆ–ฐๅˆŠ1๏ผ†ๆ—ขๅˆŠ3ๅ†Šใซใ€ใ›ใ‚“ใ‚ขใ‚ซใงๅ‡บใ—ใŸใ‚ขใ‚ฏใ‚นใ‚ฟใ‚‚ๆŒใฃใฆใ„ใใพใ™๏ผ
โ€‹:ba_yuzu_face_tired:โ€‹โ€‹:sensei_good_smell:โ€‹
ๅฝ“ๆ—ฅใฏใ‚ˆใ‚ใ—ใใŠ้ก˜ใ„ใ„ใŸใ—ใพใ™๏ฝž
โ€‹:blobcat_step:โ€‹โ€‹:ab1nzybloob2:โ€‹

0
0
1
0
0
0

Hi ๐Ÿ‘‹ Iโ€™m Sam, I create visual essays about programming. My posts from 2025: - samwho.dev/reservoir-sa... - samwho.dev/big-o/ - ngrok.com/blog/prompt-... I also appeared on other folksโ€™ websites: - simonwillison.net/2025/Dec/19/... - writethatblog.substack.com/p/sam-rose-o...

RE: https://bsky.app/profile/did:plc:kcggckk55s6njoewaberea2l/post/3le2lsinmzk2k

A screenshot from my reservoir sampling post. In it you can see a visual of cards being shuffled at the top, and underneath that is a bar chart tracking which cards appear early in the shuffle.A screenshot from my Big O post. In it can be seen a bubble sort algorithm written in JavaScript. Above the code is a visual of a 5-element array being bubble sorted.A screenshot from my prompt caching post. In it can be seen a visual of 8 clusters of coloured points shown in a 3-dimensional graph.
0
1
2

RE: mastodon.social/@fj/1110569728

Breton is so ready for what's coming.

His career as a science-fiction author gave him a lot of foresight.

In his book "Netwar" published in 1987, he described wealthy billionaires controlling means of communication to create a new world order.

0

One of the "innovations" I hate most are cameras on phones. Don't debate me, I am prepared to die on this hill!

Please don't take pictures of people without their consent!

Please don't point your phone's camera at other people's faces, even when you're not taking pictures!

And please remind those who are not using their phone's camera responsibly why they should!

Thank you for caring about everyone's privacy!
--

0
0
0
0
0

๊ทธ๋ ‡๊ฒŒ ๋˜์–ด์„œ ์ž์ „๊ฑฐ ํƒ€๊ณ  ์ง‘๋”ํ•˜๊ธฐ๋ฅผ ๊ฐ€๋ณด๊ธฐ๋กœ ๊ฒฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. โ€‹:blobcatgooglythumbsup:โ€‹

RE: https://yodangang.express/notes/agqbogiy86x700hq

0

์ด์Šค๋ผ์—˜ ๊ฒฝ์ฐฐ์ด 25์ผ ํฌ๋ฆฌ์Šค๋งˆ์Šค ํŒŒํ‹ฐ๊ฐ€ ์—ด๋ฆฌ๋˜ ํ•˜์ดํŒŒ์˜ ํ•œ ์Œ์•… ํ™€์„ ๋ฎ์ณ ์‚ฐํƒ€ํด๋กœ์Šค ๋ณต์žฅ์„ ํ•œ ํŒ”๋ ˆ์Šคํƒ€์ธ์ธ ๋“ฑ์„ ์ฒดํฌํ–ˆ๋‹ค๊ณ . ๊ฐ€๋””์–ธ. v.daum.net/v/2025122611... ์˜ˆ์ˆ˜์˜ ์ถœ์ƒ์ง€๋กœ ์•Œ๋ ค์ง„ ์„œ์•ˆ์ง€๊ตฌ ๋ฒ ๋“ค๋ ˆํ—ด์—... ์•„. ํ•  ๋ง์ด. "์ด์Šค๋ผ์—˜์ธ ์ •์ฐฉ๋ฏผ๋“ค์ด ๋งˆ์„์„ ์Šต๊ฒฉํ•ด ์˜ฌ๋ฆฌ๋ธŒ๋‚˜๋ฌด๋“ค์„ ๋ฝ‘์•„๋ฒ„๋ ธ๋‹ค." ๋„ˆ๋„จ ์ฒœ๋…„ ๋ถˆ๋งค๋‹ค.

์ด์Šค๋ผ์—˜, '์„ฑํƒ„ ํŒŒํ‹ฐ' ๊ธ‰์Šตโ€ฆ์‚ฐํƒ€ ์ฐจ๋ฆผ ํŒ”๋ ˆ์Šคํƒ€์ธ์ธ ...

0
0
1
0
0
0

[ไฟๆ™‚ๆทไธญๅœ‹้Šท้‡ๆ…˜่ทŒ ็ถ“้Šทๅ•†็„ก้ ่ญฆๅ€’้–‰ๅผ•็™ผ็†ฑ่ญฐโธบไธญๅคฎ็คพ](cna.com.tw/news/acn/2025122602)

"ๅพทๅœ‹่ฑช่ปŠไฟๆ™‚ๆท๏ผˆPorsche๏ผ‰ไธญๅœ‹้Šท้‡ๆ…˜่ทŒไน‹้š›๏ผŒๅ…ถไธญไธ€ๅฎถ็ถ“้Šทๅ•†ๅœจ้„ญๅทžใ€่ฒด้™ฝ็š„ไฟๆ™‚ๆทไธญๅฟƒ่ฟ‘ๆ—ฅ็„ก้ ่ญฆๅ€’้–‰ๅคฑ่ฏ๏ผŒๅผ•็™ผไธ็”˜ๆๅคฑ็š„่ปŠไธปๅ ฑ่ญฆ็ถญๆฌŠใ€‚ไฟๆ™‚ๆท้–€ๅธ‚้ฉšๅ‚ณ่ท‘่ทฏ๏ผŒ่บ็‚บไธญๅœ‹็คพ็พค็†ฑ้–€่ฉฑ้กŒใ€‚

็ถœๅˆๅคง่ฑกๆ–ฐ่žใ€ๆพŽๆนƒๆ–ฐ่ž็ญ‰ไธญๅช’ๅ ฑๅฐŽ๏ผŒ23ๆ—ฅๆ—ฉๆ™จ๏ผŒ้„ญๅทžไธญๅŽŸไฟๆ™‚ๆทไธญๅฟƒ็š„้ƒจๅˆ†ๅ“กๅทฅๅ’Œๆถˆ่ฒป่€…ๅˆฐๅบ—ๆ™‚็™ผ็พๅฑ•ๅปณๅทฒ ไบบๅŽปๆจ“็ฉบ๏ผŒๅŽŸๆœฌ้™ณๅˆ—็š„ๆ•ธๅ่ผ›ไฟๆ™‚ๆทๆ–ฐ่ปŠๅ…จ้ƒจๆถˆๅคฑ๏ผŒๅชๅ‰ฉๆ•ฃ่ฝๅœฐ้ข็š„ๅฎฃๅ‚ณๅ†Šๅ’Œ็ฉบ่•ฉ่•ฉ็š„่ปŠ่ผ›ๅฑ•ๅฐใ€‚"

//ๆ™‚ไปฃ็š„ๅพตๅ…†

0
0
1
1
1

ใพใตใ‚€ใŽใ‚ขใƒณใ‚ฝใƒญใซๅฏ„็จฟใ•ใ›ใฆใ„ใŸใ ใใพใ—ใŸโ€‹:blob_yannya:โ€‹
โ–ถโ€‹:dot_th_dream_item:โ€‹ใฎใŸใ‚ๅฟตใฎใŸใ‚ใตใ›

1
1

๋‚˜ ์ง€๊ธˆ ์—„์ฒญ๋‚œ ์œ„์—…์„ ํ•˜๊ณ  ์žˆ์–ด... ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์˜ค๋Š˜ ํ•˜๋ฃจ์ข…์ผ ์ง‘์•ˆ ํ™˜๊ธฐ๋ฅผ ์•ˆ ํ•œ ๊ฑฐ์•ผ... ์ด ๋‚ ์”จ์—... ๋‚˜๋Š”... ํ•œ๋‹ค... ํ™˜๊ธฐใ…ฃ....(๋œ๋œ ๋–จ๋ฉฐ)

0
1
1

์—ผ์‚ฐํ•˜ shared the below article:

Subagent๋Š” Tool Use์ž…๋‹ˆ๋‹ค.

์ž์†ํ‚ด @jasonkim@hackers.pub

์ง€๋‚œ ๊ธ€์—์„œ๋Š” Tool Use๊ฐ€ ๋ฌด์—‡์ด๊ณ  ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์•˜๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” subagent๊ฐ€ Tool Use ์œ„์—์„œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.

Tool Use ์ •๋ฆฌ

Subagent ์„ค๋ช…์— ์•ž์„œ Tool Use๋ฅผ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณด๊ณ  ๋„˜์–ด๊ฐ€์ž.

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        ๋ฉ”์ธ ๋ฉ”์‹œ์ง€ ๋ฃจํ”„                         โ”‚
โ”‚                                                             โ”‚
โ”‚   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”    request     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    API call   โ”Œโ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚   โ”‚ User โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ”‚  Agent  โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ”‚ LLM โ”‚ โ”‚
โ”‚   โ”‚      โ”‚ โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚         โ”‚ โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚     โ”‚ โ”‚
โ”‚   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    response    โ”‚         โ”‚   tool_use    โ””โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚                           โ”‚    โ”‚    โ”‚                       โ”‚
โ”‚                           โ”‚    โ–ผ    โ”‚                       โ”‚
โ”‚                        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                     โ”‚
โ”‚                        โ”‚    Tools     โ”‚                     โ”‚
โ”‚                        โ”‚ (Bash, Read, โ”‚                     โ”‚
โ”‚                        โ”‚  Glob, ...)  โ”‚                     โ”‚
โ”‚                        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Tool Use๋Š” LLM์ด ์™ธ๋ถ€ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค. Agent๋Š” LLM์—๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ ๋ชฉ๋ก์„ ์ œ๊ณตํ•˜๊ณ  LLM์€ ํ•„์š”ํ•  ๋•Œ tool_use ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. Agent๋Š” ํ•ด๋‹น ๋„๊ตฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ LLM์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค. ์ด ๊ณผ์ •์ด ๋ฐ˜๋ณต๋˜๋ฉด์„œ ๋ณต์žกํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

Subagent๋ž€?

Subagent๋Š” ํŠน์ • ์ž‘์—…์— ํŠนํ™”๋œ AI ์—์ด์ „ํŠธ๋‹ค. ๊ฐ subagent๋Š” ์ž์‹ ๋งŒ์˜ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ ์™„๋ฃŒ๋˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”์ธ ์—์ด์ „ํŠธ์—๊ฒŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Claude Code์—์„œ subagent๋Š” Task๋ผ๋Š” ๋„๊ตฌ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค. ๋ฉ”์ธ ์—์ด์ „ํŠธ์˜ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์—๋Š” Task ๋„๊ตฌ์˜ description์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  subagent ๋ชฉ๋ก๊ณผ ๊ฐ๊ฐ์˜ ์šฉ๋„๊ฐ€ ํฌํ•จ๋œ๋‹ค. ๋ฉ”์ธ ์—์ด์ „ํŠธ๋Š” ์ด description์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ ์ ˆํ•œ subagent๋ฅผ ์„ ํƒํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "์ฝ”๋“œ๋ฒ ์ด์Šค ๊ตฌ์กฐ ํŒŒ์•…"์ด ํ•„์š”ํ•˜๋ฉด Explore๋ฅผ, "๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ์„ค๊ณ„"๊ฐ€ ํ•„์š”ํ•˜๋ฉด database-schema-architect๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

Subagent์˜ ๊ตฌ์กฐ

Subagent๋Š” ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ๋กœ ์ •์˜๋˜๊ณ  YAML frontmatter์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ค์ •์„ ํฌํ•จํ•œ๋‹ค.

---
name: code-reviewer
description: Expert code review specialist. Use immediately after writing or modifying code.
tools: Read, Grep, Glob, Bash
model: sonnet
---

You are a senior code reviewer ensuring high standards of code quality and security.

When invoked:
1. Run git diff to see recent changes
2. Focus on modified files
3. Begin review immediately

Review checklist:
- Code is simple and readable
- Functions and variables are well-named
...

๊ฐ ํ•„๋“œ์˜ ์—ญํ• ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:

ํ•„๋“œ ์„ค๋ช…
name subagent์˜ ๊ณ ์œ  ์‹๋ณ„์ž
description ์–ธ์ œ ์ด subagent๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ์„ค๋ช…
tools ์ด subagent๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ ๋ชฉ๋ก
model ์‚ฌ์šฉํ•  ๋ชจ๋ธ (sonnet, opus, haiku ๋˜๋Š” inherit)

YAML frontmatter ์•„๋ž˜์˜ ๋งˆํฌ๋‹ค์šด ๋ณธ๋ฌธ์ด subagent์˜ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋œ๋‹ค. ์ด ํ”„๋กฌํ”„ํŠธ๋Š” subagent๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ API ์š”์ฒญ์˜ system ํ•„๋“œ์— ์ฃผ์ž…๋˜์–ด subagent์˜ ํ–‰๋™์„ ์ •์˜ํ•œ๋‹ค.

์ด subagent ์ •์˜๋Š” ๋ฉ”์ธ ์—์ด์ „ํŠธ์˜ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์— ์žˆ๋Š” tools ์„น์…˜์˜ Task ๋„๊ตฌ ์„ค๋ช…์— ํฌํ•จ๋œ๋‹ค:

{
  "name": "Task",
  "description": "Launch a new agent to handle complex, multi-step tasks autonomously.

Available agent types and the tools they have access to:
- Explore: Fast agent specialized for exploring codebases. (Tools: All tools)
- Plan: Software architect agent for designing implementation plans. (Tools: All tools)
- database-schema-architect: Use this agent when you need to design database schemas...
...
"
}

Task ๋„๊ตฌ์˜ input schema๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:

{
  "type": "object",
  "properties": {
    "subagent_type": {
      "type": "string",
      "description": "The type of subagent to launch"
    },
    "prompt": {
      "type": "string",
      "description": "The task to delegate to the subagent"
    },
    "description": {
      "type": "string",
      "description": "Short description of what the agent will do"
    }
  }
}
  • subagent_type: ํ˜ธ์ถœํ•  subagent ์ข…๋ฅ˜ (Explore, Plan, general-purpose ๋“ฑ)
  • prompt: subagent์—๊ฒŒ ์ „๋‹ฌํ•  ์ž‘์—… ์ง€์‹œ. ์ด ๋‚ด์šฉ์ด subagent์˜ user ๋ฉ”์‹œ์ง€๊ฐ€ ๋œ๋‹ค
  • description: 3-5๋‹จ์–ด์˜ ์งง์€ ์š”์•ฝ. ๋กœ๊ทธ๋‚˜ UI์— ํ‘œ์‹œ๋œ๋‹ค

Subagent ํ˜ธ์ถœ ๊ณผ์ •

์‹ค์ œ ๋ฉ”์‹œ์ง€ ํ๋ฆ„์„ ํ†ตํ•ด subagent๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด์ž.

1๋‹จ๊ณ„: ๋ฉ”์ธ ์—์ด์ „ํŠธ๊ฐ€ Task ๋„๊ตฌ ํ˜ธ์ถœ

์‚ฌ์šฉ์ž๊ฐ€ "์„ ๋ฌผ์„ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ์œ„ํ•œ entity ์„ค๊ณ„"๋ฅผ ์š”์ฒญํ–ˆ๋‹ค๊ณ  ํ•˜์ž. ๋ฉ”์ธ ์—์ด์ „ํŠธ(Opus 4.5)๋Š” ๋จผ์ € ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ณ  Explorer subagent๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค:

{
  "content": [
    {
      "type": "thinking",
      "thinking": "์‚ฌ์šฉ์ž๊ฐ€ ์„ ๋ฌผ์„ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ์œ„ํ•œ entity ์„ค๊ณ„๋ฅผ ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. Plan mode๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ๋จผ์ € ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ ๊ธฐ์กด ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n\nPhase 1์— ๋”ฐ๋ผ:\n1. ๊ธฐ์กด entity ๊ตฌ์กฐ์™€ ํŒจํ„ด์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด Explore agent๋ฅผ ์‚ฌ์šฉ\n2. ์„ ๋ฌผ ๊ด€๋ จ ๊ธฐ์กด ๊ตฌํ˜„์ด ์žˆ๋Š”์ง€ ํ™•์ธ\n3. ์‚ฌ์šฉ์ž์™€ ์•„์ดํ…œ ๊ด€๋ จ entity๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ํŒŒ์•…\n\n๋จผ์ € Explore agent๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด entity ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค."
    },
    {
      "type": "text",
      "text": "์„ ๋ฌผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ๊ธฐ๋Šฅ์„ ์œ„ํ•œ entity ์„ค๊ณ„๋ฅผ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๊ธฐ์กด ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ entity ๊ตฌ์กฐ์™€ ๊ด€๋ จ ํŒจํ„ด์„ ํƒ์ƒ‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค."
    },
    {
      "type": "tool_use",
      "id": "toolu_01QjShG7gnF36vLgGKCWBNjg",
      "name": "Task",
      "input": {
        "subagent_type": "Explore",
        "prompt": "์ด NestJS TypeScript ํ”„๋กœ์ ํŠธ์—์„œ entity ๊ตฌ์กฐ๋ฅผ ํƒ์ƒ‰ํ•ด์ฃผ์„ธ์š”:\n\n1. ๊ธฐ์กด entity ํŒŒ์ผ๋“ค์˜ ์œ„์น˜์™€ ๊ตฌ์กฐ ํŒŒ์•…...",
        "description": "Entity ๊ตฌ์กฐ ํƒ์ƒ‰"
      }
    }
  ]
}

thinking ๋ธ”๋ก์—์„œ ๋ฉ”์ธ ์—์ด์ „ํŠธ๋Š” ํ˜„์žฌ ์ƒํ™ฉ(Plan mode ํ™œ์„ฑํ™”)์„ ํŒŒ์•…ํ•˜๊ณ  Explore agent๋ฅผ ์„ ํƒํ•œ ์ด์œ ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ถ”๋ก ํ–ˆ๋‹ค.

2๋‹จ๊ณ„: ์ƒˆ๋กœ์šด ๋ฉ”์‹œ์ง€ ๋ฃจํ”„์—์„œ Subagent ์‹คํ–‰

Agent๋Š” Task ๋„๊ตฌ ํ˜ธ์ถœ์„ ๋ฐ›์œผ๋ฉด ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ๋ฉ”์‹œ์ง€ ๋ฃจํ”„๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. ์ด ๋•Œ ์œ„์—์„œ ๋ณด์•˜๋˜ YAML frontmatter ํ•˜๋‹จ์˜ ๋งˆํฌ๋‹ค์šด ๋ณธ๋ฌธ์ด subagent ์ „์šฉ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ๋กœ ์ฃผ์ž…๋œ๋‹ค.

{
  "model": "claude-haiku-4-5-20251001",
  "system": [
    {
      "type": "text",
      "text": "You are Claude Code, Anthropic's official CLI for Claude."
    },
    {
      "type": "text",
      "text": "You are a file search specialist for Claude Code...

=== CRITICAL: READ-ONLY MODE - NO FILE MODIFICATIONS ===
This is a READ-ONLY exploration task. You are STRICTLY PROHIBITED from:
- Creating new files
- Modifying existing files
- Deleting files
...

Your strengths:
- Rapidly finding files using glob patterns
- Searching code and text with powerful regex patterns
- Reading and analyzing file contents
..."
    }
  ],
  "messages": [
    {
      "role": "user",
      "content": "<system-reminder>\nAs you answer the user's questions, you can use the following context:\n# claudeMd\nCodebase and user instructions are ... <system-reminder>"
    },
    {
      "role": "user",
      "content": "์ด NestJS TypeScript ํ”„๋กœ์ ํŠธ์—์„œ entity ๊ตฌ์กฐ๋ฅผ ํƒ์ƒ‰ํ•ด์ฃผ์„ธ์š”..."
    }
  ],
  "tools": [
    {"name": "Bash", ...},
    {"name": "Glob", ...},
    {"name": "Grep", ...},
    {"name": "Read", ...}
  ]
}
  • ๋ชจ๋ธ: Explorer๋Š” ๋น ๋ฅธ ํƒ์ƒ‰์„ ์œ„ํ•ด Haiku 4.5๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค (๋ฉ”์ธ์€ Opus 4.5)
  • ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ: ์ฝ๊ธฐ ์ „์šฉ ๋ชจ๋“œ๋กœ ์ œํ•œ๋œ ์ „์šฉ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์ฃผ์ž…๋œ๋‹ค
  • ๋„๊ตฌ ์ œํ•œ: ๋ฉ”์ธ ์—์ด์ „ํŠธ๊ฐ€ ๊ฐ€์ง„ ๋ชจ๋“  ๋„๊ตฌ๊ฐ€ ์•„๋‹Œ, ํƒ์ƒ‰์— ํ•„์š”ํ•œ ๋„๊ตฌ๋งŒ ์ œ๊ณต๋œ๋‹ค
  • CLAUDE.md ์ „๋‹ฌ: ํ”„๋กœ์ ํŠธ์˜ CLAUDE.md ๋‚ด์šฉ์ด user ๋ฉ”์‹œ์ง€์˜ <system-reminder> ํƒœ๊ทธ ์•ˆ์— ํฌํ•จ๋˜์–ด ์ „๋‹ฌ๋œ๋‹ค. ๋”ฐ๋ผ์„œ subagent๋„ ํ”„๋กœ์ ํŠธ ์ปจ๋ฒค์…˜์„ ๋”ฐ๋ฅธ๋‹ค
  • ๋ฉ”์‹œ์ง€: ๋ฉ”์ธ ์—์ด์ „ํŠธ์˜ prompt๊ฐ€ user ๋ฉ”์‹œ์ง€๋กœ ์ „๋‹ฌ๋œ๋‹ค

3๋‹จ๊ณ„: Subagent์˜ ๋„๊ตฌ ์‚ฌ์šฉ

Subagent๋„ ์ž์‹ ๋งŒ์˜ ๋ฉ”์‹œ์ง€ ๋ฃจํ”„์—์„œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค:

{
  "content": [
    {
      "type": "text",
      "text": "์ด NestJS ํ”„๋กœ์ ํŠธ์˜ entity ๊ตฌ์กฐ๋ฅผ ์ฒ ์ €ํ•˜๊ฒŒ ํƒ์ƒ‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค."
    },
    {
      "type": "tool_use",
      "id": "toolu_01VHysdohmuy9r58aVdcUQRh",
      "name": "Glob",
      "input": {
        "pattern": "**/*.entity.ts"
      }
    },
    {
      "type": "tool_use",
      "id": "toolu_01QYrMBhzbXpExYwgCFM7MLb",
      "name": "Bash",
      "input": {
        "command": "find /Volumes/project/src -type f -name \"*.ts\" | grep -E \"(entity|entities)\" | head -20",
        "description": "Find entity files in src directory"
      }
    }
  ]
}

Explorer subagent๋Š” ๋‘ ๊ฐœ์˜ ๋„๊ตฌ๋ฅผ ๋ณ‘๋ ฌ๋กœ ํ˜ธ์ถœํ–ˆ๋‹ค. Glob์œผ๋กœ entity ํŒŒ์ผ ํŒจํ„ด์„ ์ฐพ๊ณ  Bash๋กœ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค. ์ด ๊ณผ์ •์ด ๋ฐ˜๋ณต๋˜๋ฉด์„œ subagent๋Š” ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค.

4๋‹จ๊ณ„: Subagent ์™„๋ฃŒ ๋ฐ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜

Subagent๊ฐ€ ํƒ์ƒ‰์„ ์™„๋ฃŒํ•˜๋ฉด ์ˆ˜์ง‘ํ•œ ์ •๋ณด๋ฅผ ์ •๋ฆฌํ•˜์—ฌ ์ตœ์ข… ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด ์‘๋‹ต์€ ๋ฉ”์ธ ์—์ด์ „ํŠธ์˜ Task ๋„๊ตฌ ํ˜ธ์ถœ์— ๋Œ€ํ•œ tool_result๋กœ ์ „๋‹ฌ๋œ๋‹ค:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                           ๋ฉ”์ธ ๋ฉ”์‹œ์ง€ ๋ฃจํ”„                              โ”‚
โ”‚                                                                     โ”‚
โ”‚  User โ”€โ”€โ–บ Agent โ”€โ”€โ–บ LLM(Opus)                                       โ”‚
โ”‚                โ”‚                                                    โ”‚
โ”‚                โ–ผ tool_use: Task                                     โ”‚
โ”‚     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”‚
โ”‚     โ”‚           Subagent ๋ฉ”์‹œ์ง€ ๋ฃจํ”„ (Explorer)              โ”‚         โ”‚
โ”‚     โ”‚                                                     โ”‚         โ”‚
โ”‚     โ”‚   prompt โ”€โ”€โ–บ Agent โ”€โ”€โ–บ LLM(Haiku)                   โ”‚         โ”‚
โ”‚     โ”‚                   โ”‚                                 โ”‚         โ”‚
โ”‚     โ”‚                   โ–ผ tool_use                        โ”‚         โ”‚
โ”‚     โ”‚              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                            โ”‚         โ”‚
โ”‚     โ”‚              โ”‚  Glob   โ”‚                            โ”‚         โ”‚
โ”‚     โ”‚              โ”‚  Bash   โ”‚                            โ”‚         โ”‚
โ”‚     โ”‚              โ”‚  Read   โ”‚                            โ”‚         โ”‚
โ”‚     โ”‚              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                            โ”‚         โ”‚
โ”‚     โ”‚                   โ”‚                                 โ”‚         โ”‚
โ”‚     โ”‚                   โ–ผ                                 โ”‚         โ”‚
โ”‚     โ”‚              ์ตœ์ข… ์‘๋‹ต                                โ”‚         โ”‚
โ”‚     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ”‚
โ”‚                          โ”‚                                          โ”‚
โ”‚                          โ–ผ tool_result                              โ”‚
โ”‚                 Agent ๊ณ„์† ์ง„ํ–‰                                       โ”‚
โ”‚                                                                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๋ฉ”์ธ ์—์ด์ „ํŠธ๋Š” Explorer์˜ ์กฐ์‚ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์Œ ๋‹จ๊ณ„(์˜ˆ: database-schema-architect ํ˜ธ์ถœ)๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

๋งˆ๋ฌด๋ฆฌ

์ง€๊ธˆ๊นŒ์ง€ subagent์˜ ๋™์ž‘ ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค. ํ•ต์‹ฌ์„ ์ •๋ฆฌํ•˜๋ฉด:

Subagent๋Š” Tool Use๋‹ค. ๋ฉ”์ธ ์—์ด์ „ํŠธ๊ฐ€ Task ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด, ์ƒˆ๋กœ์šด ๋ฉ”์‹œ์ง€ ๋ฃจํ”„๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์ „์šฉ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์™€ ์ œํ•œ๋œ ๋„๊ตฌ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

  • ์ปจํ…์ŠคํŠธ ๋ถ„๋ฆฌ: ํƒ์ƒ‰/๋ถ„์„ ๊ณผ์ •์ด ๋ฉ”์ธ ๋Œ€ํ™”๋ฅผ ์˜ค์—ผ์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค
  • ์ „๋ฌธํ™”: ๊ฐ subagent๊ฐ€ ํŠน์ • ์ž‘์—…์— ์ตœ์ ํ™”๋œ ํ”„๋กฌํ”„ํŠธ์™€ ๋„๊ตฌ๋ฅผ ๊ฐ€์ง„๋‹ค
  • ํšจ์œจ์„ฑ: ๋ชฉ์ ์— ๋งž๊ฒŒ ๊ฐ€๋ฒผ์šด ๋ชจ๋ธ(Haiku)์ด๋‚˜ ๋ฌด๊ฑฐ์šด ๋ชจ๋ธ(Opus)์„ ์ทจ์‚ฌ์„ ํƒ

์ฃผ์˜ํ•  ์ :

  • Subagent๋Š” ๋ฉ”์ธ ๋Œ€ํ™” ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋ชจ๋ฅธ๋‹ค. ํ•„์š”ํ•œ ์ •๋ณด๋Š” Task์˜ prompt์— ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค (๋‹จ, CLAUDE.md๋Š” ์ž๋™ ์ „๋‹ฌ๋จ)
  • Subagent๋Š” subagent๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋‹ค (๋ฌดํ•œ ์ค‘์ฒฉ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด Task ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.)
  • ๊ฐ ํ˜ธ์ถœ์€ ์ƒˆ๋กœ์šด ์ปจํ…์ŠคํŠธ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค (๋‹จ, resume ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ด์ „ ๋Œ€ํ™” ์ด์–ด๊ฐ€๊ธฐ ๊ฐ€๋Šฅ)

๊ฒฐ๊ตญ subagent๋Š” Tool Use ํŒจํ„ด์˜ ํ™•์žฅ์ด๋‹ค. ๋‹จ์ˆœํ•œ Function Call์ด๋ผ๋ฉด ์ฝ”๋“œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ํ…์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ subagent๋Š” ๋ณ„๋„์˜ ๋ฉ”์‹œ์ง€ ๋ฃจํ”„์—์„œ LLM์ด ์ƒ์„ฑํ•œ ํ…์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ์ฐจ์ด๋งŒ ์žˆ๋‹ค. ๋ฉ”์ธ ์—์ด์ „ํŠธ ์ž…์žฅ์—์„œ๋Š” ๋‘˜ ๋‹ค tool_result๋กœ ๋ฐ›๋Š” ํ…์ŠคํŠธ์ผ ๋ฟ์ด๋‹ค.

Read more โ†’
3
0
0
1

ๆญคๅค–๏ผŒๅŽไธบ้Ÿฉๅ›ฝๆ‹ŸไบŽๆ˜Žๅนดๅ‘้Ÿฉไผๆไพ›่‡ชไธป็ ”ๅˆถ็š„โ€œๅŽไธบ้ธฟ่’™โ€ๅผ€ๆบๅˆ†ๅธƒๅผๆ“ไฝœ็ณป็ปŸ๏ผŒ่ฏฅ็ณป็ปŸๅฏๅบ”็”จไบŽๆ™บ่ƒฝๆ‰‹ๆœบๅ’Œๅ…ถไป–ๆ™บ่ƒฝๆœบๅ™จใ€‚ไฝ†ๅŽไธบ้Ÿฉๅ›ฝๅฐšๆ— ่ฎกๅˆ’ๅœจ้ŸฉๆŽจๅ‡บๆ™บ่ƒฝๆ‰‹ๆœบใ€‚

ๅŽไธบ้Ÿฉๅ›ฝๆ˜Žๅนดๅœจ้ŸฉๆŽจๅ‡บๆœ€ๆ–ฐๆ˜‡่…พAI่Šฏ็‰‡ | ้Ÿฉ่”็คพ m-cn.yna.co.kr/view/ACK2025122

0
1
0
0
0
0
1
1
0
0

์—ผ์‚ฐํ•˜ shared the below article:

Agent Skill๋„ Tool Use๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ž์†ํ‚ด @jasonkim@hackers.pub

Agent Skill์€ Anthropic์ด 2025๋…„ 10์›”์— ๋ฐœํ‘œํ•œ ๊ธฐ๋Šฅ์ด๋‹ค. ๋ฐœํ‘œ ์งํ›„๋ถ€ํ„ฐ ํญ๋ฐœ์ ์ธ ๋ฐ˜์‘์„ ์–ป์–ด ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ Skill์ด ๋งŒ๋“ค์–ด์กŒ๋‹ค. 2025๋…„ 12์›” 18์ผ์— Anthropic์€ Agent Skills๋ฅผ ๋…๋ฆฝ์ ์ธ ์˜คํ”ˆ ์Šคํƒ ๋‹ค๋“œ๋กœ ๋ฐœํ‘œํ–ˆ๊ณ  ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋“ค์ด Skill์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Agent Skill์ด Tool Use ์œ„์—์„œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ์•„๋ณธ๋‹ค.

Agent Skill์ด๋ž€?

Agent Skill์€ ์—์ด์ „ํŠธ๊ฐ€ ํŠน์ • ์ž‘์—…์„ ๋” ์ •ํ™•ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์‹œ๋ฌธ(instructions), ์Šคํฌ๋ฆฝํŠธ(scripts), ๋ฆฌ์†Œ์Šค(resources) ๋“ฑ์„ ๋™์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌ์„ฑ๋œ ํด๋”๋‹ค.

์—์ด์ „ํŠธ๋Š” ์ ์  ๋” ๋งŽ์€ ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ ์—…๋ฌด๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ ˆ์ฐจ์  ์ง€์‹๊ณผ ์กฐ์ง๋ณ„ ๋งฅ๋ฝ์ด ํ•„์š”ํ•˜๋‹ค. PDF ์–‘์‹์„ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋Š” ์ˆœ์„œ, ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”์˜ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค ๊ฐ™์€ ๊ฒƒ๋“ค์ด๋‹ค. ์ด๋Ÿฐ ์ง€์‹์„ ๋งค๋ฒˆ ํ”„๋กฌํ”„ํŠธ์— ๋ชจ๋‘ ์ž‘์„ฑํ•˜๋ฉด ์ปจํ…์ŠคํŠธ๋ฅผ ๋‚ญ๋น„ํ•˜๊ฒŒ ๋˜๊ณ  ์ผ๊ด€์„ฑ๋„ ๋–จ์–ด์ง„๋‹ค.

Agent Skill์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์—…์— ํ•„์š”ํ•œ ์ง€์‹์„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋‹จ์œ„๋กœ ํŒจํ‚ค์ง•ํ•˜๊ณ  ํ•„์š”ํ•  ๋•Œ๋งŒ ๋™์ ์œผ๋กœ ๋กœ๋“œํ•œ๋‹ค.

ํšจ์œจ์ ์ธ ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•

Agent Skill์€ ์ ์ง„์  ๊ณต๊ฐœ(Progressive Disclosure) ํŒจํ„ด์œผ๋กœ ์ปจํ…์ŠคํŠธ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. ์ ์ง„์  ๊ณต๊ฐœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„: ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋กœ๋“œ

์—์ด์ „ํŠธ๊ฐ€ ์‹œ์ž‘ํ•  ๋•Œ ๋ชจ๋“  Skill์˜ name๊ณผ description๋งŒ ๋กœ๋“œํ•œ๋‹ค. ์ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” Claude๊ฐ€ ๊ฐ Skill์„ ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ์˜ ์ •๋ณด๋งŒ ์ œ๊ณตํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด PDF Skill์€ "PDF ํŒŒ์ผ์—์„œ ํ…์ŠคํŠธ ์ถ”์ถœ, ํผ ์ฑ„์šฐ๊ธฐ, ๋ฌธ์„œ ๋ณ‘ํ•ฉ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค"๋Š” ์„ค๋ช…๋งŒ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์— ํฌํ•จ๋œ๋‹ค.

๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„: SKILL.md ์ „์ฒด ๋กœ๋“œ

Claude๊ฐ€ ํ˜„์žฌ ์ž‘์—…์— ํ•ด๋‹น Skill์ด ๊ด€๋ จ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฉด ์ „์ฒด SKILL.md๋ฅผ ์ปจํ…์ŠคํŠธ์— ๋กœ๋“œํ•œ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ ์ƒ์„ธํ•œ ์ง€์‹œ๋ฌธ์ด ์ถ”๊ฐ€๋œ๋‹ค. ๊ถŒ์žฅ ํฌ๊ธฐ๋Š” 5000 ํ† ํฐ ๋ฏธ๋งŒ์ด๋‹ค.

์„ธ ๋ฒˆ์งธ ๋‹จ๊ณ„ ์ด์ƒ: ์ถ”๊ฐ€ ํŒŒ์ผ ์˜จ๋””๋งจ๋“œ ๋กœ๋“œ

Skill์ด ๋ณต์žกํ•ด์ง€๋ฉด ๋ชจ๋“  ๋‚ด์šฉ์„ SKILL.md ํ•˜๋‚˜์— ๋‹ด๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ references/, scripts/, assets/ ํด๋”์— ์ถ”๊ฐ€ ํŒŒ์ผ์„ ๋ฒˆ๋“คํ•˜๊ณ  SKILL.md์—์„œ ์ฐธ์กฐํ•œ๋‹ค. Claude๋Š” ํ•„์š”ํ•  ๋•Œ๋งŒ ์ด ํŒŒ์ผ๋“ค์„ ํƒ์ƒ‰ํ•˜๊ณ  ๋กœ๋“œํ•œ๋‹ค.

์ด ํŒจํ„ด์˜ ์žฅ์ ์€ "ํ•„์š”ํ•  ๋•Œ๋งŒ ํ•„์š”ํ•œ ๋งŒํผ"์ด๋‹ค. ๋ชจ๋“  Skill์˜ ์ „์ฒด ์ง€์‹œ๋ฌธ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋กœ๋“œํ•˜๋ฉด ์ปจํ…์ŠคํŠธ๊ฐ€ ๊ธˆ๋ฐฉ ์†Œ์ง„๋œ๋‹ค. ์ ์ง„์  ๊ณต๊ฐœ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด์„œ๋„ ์—์ด์ „ํŠธ๊ฐ€ ์ ์ ˆํ•œ ์‹œ์ ์— ์ ์ ˆํ•œ Skill์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

Agent Skill์˜ ๊ตฌ์กฐ

์ผ๋ฐ˜์ ์ธ Skill์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

skill-name/
โ”œโ”€โ”€ SKILL.md           # ํ•„์ˆ˜: ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ + ์ง€์‹œ๋ฌธ
โ”œโ”€โ”€ scripts/           # ์„ ํƒ: ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ
โ”œโ”€โ”€ references/        # ์„ ํƒ: ์ถ”๊ฐ€ ๋ฌธ์„œ
โ””โ”€โ”€ assets/            # ์„ ํƒ: ํ…œํ”Œ๋ฆฟ, ๋ฆฌ์†Œ์Šค

SKILL.md๋งŒ ํ•„์ˆ˜์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ ์„ ํƒ์ด๋‹ค. ๋‹จ์ˆœํ•œ Skill์€ SKILL.md ํ•˜๋‚˜๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ๊ณ  ๋ณต์žกํ•œ Skill์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šคํฌ๋ฆฝํŠธ์™€ ์ฐธ์กฐ ๋ฌธ์„œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•„์ˆ˜์š”์†Œ์ธ SKILL.md๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํฌ๋งท์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

---
name: pdf-processing
description: Extract text and tables from PDF files, fill forms, merge documents.
license: Apache-2.0
compatibility: Designed for Claude Code
metadata:
  author: example-org
  version: "1.0"
allowed-tools: Bash(git:*) Read
---

# PDF Processing

## When to use this skill
Use this skill when the user needs to work with PDF files...

## How to extract text
1. Use pdfplumber for text extraction...

SKILL.md๋Š” YAML frontmatter์™€ ๋งˆํฌ๋‹ค์šด ๋ณธ๋ฌธ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. YAML frontmatter์—๋Š” name๊ณผ description์ด ํ•„์ˆ˜๋กœ ํฌํ•จ๋˜์–ด์•ผ ํ•œ๋‹ค. name์€ ์ตœ๋Œ€ 64์ž์˜ ์†Œ๋ฌธ์ž์™€ ์ˆซ์ž ๊ทธ๋ฆฌ๊ณ  ํ•˜์ดํ”ˆ์œผ๋กœ๋งŒ ๊ตฌ์„ฑ๋˜๋ฉฐ ํ•˜์ดํ”ˆ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋๋‚  ์ˆ˜ ์—†๋‹ค. description์€ ์ตœ๋Œ€ 1024์ž๋กœ ์ด Skill์ด ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•œ๋‹ค.

license, compatibility, metadata, allowed-tools๋Š” ์„ ํƒ ํ•„๋“œ๋‹ค. ๊ฐ ์„ ํƒ ํ•„๋“œ์˜ ์—ญํ• ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • license: ๋ผ์ด์„ ์Šค ์ด๋ฆ„ ๋˜๋Š” ๋ฒˆ๋“ค๋œ ๋ผ์ด์„ ์Šค ํŒŒ์ผ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ช…์‹œํ•œ๋‹ค.
  • compatibility: ์ตœ๋Œ€ 500์ž. ํ™˜๊ฒฝ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ช…์‹œํ•œ๋‹ค. ์˜๋„ํ•œ ์ œํ’ˆ, ํ•„์š”ํ•œ ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€, ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ ํ•„์š” ์—ฌ๋ถ€ ๋“ฑ์„ ๊ธฐ์ˆ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "Designed for Claude Code" ๋˜๋Š” "Requires git, docker, jq, and access to the internet" ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•œ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ Skill์€ ์ด ํ•„๋“œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.
  • metadata: ์ž„์˜์˜ ํ‚ค-๊ฐ’ ์Œ์„ ์ €์žฅํ•˜๋Š” ๋งต์ด๋‹ค. author, version ๊ฐ™์€ ์ถ”๊ฐ€ ์†์„ฑ์„ ๋‹ด๋Š”๋‹ค.
  • allowed-tools: ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ์‚ฌ์ „ ์Šน์ธ ๋„๊ตฌ ๋ชฉ๋ก์ด๋‹ค. ์‹คํ—˜์  ๊ธฐ๋Šฅ์œผ๋กœ ์—์ด์ „ํŠธ ๊ตฌํ˜„์— ๋”ฐ๋ผ ์ง€์› ์—ฌ๋ถ€๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

YAML frontmatter ์•„๋ž˜์˜ ๋งˆํฌ๋‹ค์šด ๋ณธ๋ฌธ์ด ์‹ค์ œ ์ง€์‹œ๋ฌธ์ด ๋œ๋‹ค. ์ด ์ง€์‹œ๋ฌธ์€ Skill์ด ํ™œ์„ฑํ™”๋  ๋•Œ ์ปจํ…์ŠคํŠธ์— ์ฃผ์ž…๋˜์–ด ์—์ด์ „ํŠธ์˜ ํ–‰๋™์„ ์•ˆ๋‚ดํ•œ๋‹ค.

์ฒซ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ๋Š” frontmatter์˜ name๊ณผ description๋งŒ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ์ •๋ณด๋กœ ์—์ด์ „ํŠธ๋Š” ์–ธ์ œ ์ด Skill์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•˜๋Š”์ง€ ํŒ๋‹จํ•œ๋‹ค. ๋‘๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ SKILL.md ์ „์ฒด๊ฐ€ ๋กœ๋“œ๋˜๊ณ  ์„ธ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ ๋งˆํฌ๋‹ค์šด ๋ณธ๋ฌธ์˜ ์ง€์‹œ๋ฌธ์— ๋”ฐ๋ผ scripts/ ํด๋”์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ references/ ํด๋”์˜ ์ถ”๊ฐ€ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.

dev-browser๋กœ ์‚ดํŽด๋ณด๋Š” ์‹ค์ œ Skill ๋™์ž‘

์ด์ œ Skill์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์‹ค์ œ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์‚ดํŽด๋ณด์ž. ์ด ์˜ˆ์‹œ๋Š” Use Claude Code with Chrome์— ์žˆ๋Š” ์‚ฌ์šฉ ์˜ˆ์‹œ๋ฅผ dev-browser Skill์„ ์‚ฌ์šฉํ•ด ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋ถ„์„ํ•œ ๊ฒƒ์ด๋‹ค.

์‚ฌ์šฉํ•œ ํ”„๋กฌํ”„ํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Go to code.claude.com/docs, click on the search box,
type "hooks", and tell me what results appear

์ด ์š”์ฒญ์€ tools ๋ฐฐ์—ด๊ณผ ํ•จ๊ป˜ ์ „์†ก๋˜๋ฉฐ Skill๋„ tools ๋ฐฐ์—ด์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. Claude API ์š”์ฒญ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ๋Š” ์ด์ „ ๊ธ€์„ ์ฐธ๊ณ ํ•œ๋‹ค.

{
  "name": "Skill",
  "description": "Execute a skill within the main conversation\n\n<skills_instructions>...",
  "input_schema": {
    "type": "object",
    "properties": {
      "skill": {
        "type": "string",
        "description": "The skill name. E.g., \"commit\", \"review-pr\", or \"pdf\""
      },
      "args": {
        "type": "string",
        "description": "Optional arguments for the skill"
      }
    },
    "required": ["skill"]
  }
}

Skill ๋„๊ตฌ์˜ description์—๋Š” <available_skills> ์„น์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  Skill์˜ ๋ชฉ๋ก๊ณผ ์„ค๋ช…์ด ๋“ค์–ด์žˆ๋‹ค.

<available_skills>
<skill>
<n>dev-browser:dev-browser</n>
<description>
Browser automation with persistent page state. Use when users ask to 
navigate websites, fill forms, take screenshots, extract web data, 
test web apps, or automate browser workflows. Trigger phrases include 
"go to [url]", "click on", "fill out the form", "take a screenshot"...
</description>
<location>plugin</location>
</skill>
</available_skills>

์‚ฌ์šฉ์ž์˜ ์š”์ฒญ "Go to code.claude.com/docs, click on the search box..."๊ฐ€ dev-browser์˜ description์— ์žˆ๋Š” ํŠธ๋ฆฌ๊ฑฐ ํ”„๋ ˆ์ด์ฆˆ "go to [url]", "click on"๊ณผ ๋งค์นญ๋œ๋‹ค. ์—์ด์ „ํŠธ๋Š” ์ด ๋งค์นญ์„ ๋ฐœ๊ฒฌํ•˜๊ณ  Skill ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

{
  "type": "tool_use",
  "id": "toolu_017StpNdwovc4Lm8tGfK9XnA",
  "name": "Skill",
  "input": {
    "skill": "dev-browser:dev-browser",
    "args": "Go to code.claude.com/docs, click on the search box, type \"hooks\", and tell me what results appear"
  }
}

skill ํ•„๋“œ์— plugin name์„ ํฌํ•จํ•œ qualified name(plugin-name:skill-name)์ด ์‚ฌ์šฉ๋˜๊ณ  args์—๋Š” ์‚ฌ์šฉ์ž์˜ ์›๋ณธ ์š”์ฒญ์ด ๊ทธ๋Œ€๋กœ ์ „๋‹ฌ๋˜์—ˆ๋‹ค.

Skill ๋„๊ตฌ์˜ tool_result๋กœ SKILL.md ์ „์ฒด ๋‚ด์šฉ์ด ๋ฐ˜ํ™˜๋œ๋‹ค.

Launching skill: dev-browser:dev-browser

Base directory for this skill: /Users/dev-test/.claude/plugins/cache/
dev-browser-marketplace/dev-browser/58c332a7c61a/skills/dev-browser

# Dev Browser Skill

Browser automation that maintains page state across script executions. 
Write small, focused scripts to accomplish tasks incrementally...

## Setup

First, start the dev-browser server using the startup script:

```bash
./skills/dev-browser/server.sh &
```

## Writing Scripts

Execute scripts inline using heredocs:

```bash
cd skills/dev-browser && npx tsx <<'EOF'
import { connect } from "@/client.js";
const client = await connect();
const page = await client.page("homepage");
// Your automation code here
await client.disconnect();
EOF
```

ARGUMENTS: Go to code.claude.com/docs, click on the search box...

tool_result์—๋Š” SKILL.md์— ์žˆ๋Š” ๋ชจ๋“  ์ง€์‹œ๋ฌธ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ARGUMENTS์—๋Š” ์›๋ณธ ์‚ฌ์šฉ์ž ์š”์ฒญ์ด ์ฒจ๋ถ€๋˜์–ด ์žˆ์–ด ์—์ด์ „ํŠธ๊ฐ€ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ œ ์—์ด์ „ํŠธ๋Š” SKILL.md์˜ ์ง€์‹œ๋ฌธ์„ ์ฝ๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋จผ์ € Setup ์„น์…˜์— ๋”ฐ๋ผ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

{
  "type": "tool_use",
  "name": "Bash",
  "input": {
    "command": "cd /Users/dev-test/.claude/plugins/cache/dev-browser-marketplace/dev-browser/58c332a7c61a/skills/dev-browser && ./server.sh &",
    "description": "Start dev-browser server"
  }
}

์„œ๋ฒ„๊ฐ€ ์ค€๋น„๋˜๋ฉด SKILL.md์˜ ์ธ๋ผ์ธ ์ฝ”๋“œ ํ…œํ”Œ๋ฆฟ์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•œ๋‹ค.

{
  "type": "tool_use",
  "name": "Bash",
  "input": {
    "command": "cd /Users/dev-test/.claude/plugins/cache/dev-browser-marketplace/dev-browser/58c332a7c61a/skills/dev-browser && npx tsx <<'EOF'\nimport { connect, waitForPageLoad } from \"@/client.js\";\n\nconst client = await connect();\nconst page = await client.page(\"claude-docs\");\nawait page.setViewportSize({ width: 1280, height: 800 });\n\nawait page.goto(\"https://docs.anthropic.com/en/docs/claude-code\");\nawait waitForPageLoad(page);\n\nconsole.log(\"Current URL:\", page.url());\nconst snapshot = await client.getAISnapshot(\"claude-docs\");\nconsole.log(snapshot);\n\nawait client.disconnect();\nEOF",
    "description": "Navigate to Claude Code docs"
  }
}

์—์ด์ „ํŠธ๋Š” SKILL.md์˜ ์ฝ”๋“œ ํ…œํ”Œ๋ฆฟ์„ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ…œํ”Œ๋ฆฟ ๊ตฌ์กฐ(import, connect, heredoc ํŒจํ„ด)๋ฅผ ๋”ฐ๋ฅด๋˜ ์ž‘์—…์— ๋งž๊ฒŒ ์ฆ‰์„์—์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. page.goto() URL์ด๋‚˜ selectSnapshotRef() ref ID ๋“ฑ์„ ๋™์ ์œผ๋กœ ๊ฒฐ์ •ํ•œ๋‹ค.

SKILL.md๊ฐ€ ๋ช…์‹œํ•œ Workflow Loop ํŒจํ„ด์— ๋”ฐ๋ผ Write a script โ†’ Run it โ†’ Evaluate โ†’ Decide โ†’ Repeat ๊ณผ์ •์ด ๋ฐ˜๋ณต๋œ๋‹ค. ํŽ˜์ด์ง€ ํƒ์ƒ‰ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ โ†’ ARIA ์Šค๋ƒ…์ƒท ํ™•์ธ โ†’ ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ํด๋ฆญ โ†’ ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ โ†’ ๊ฒฐ๊ณผ ํ™•์ธ ์ˆœ์„œ๋กœ ์ง„ํ–‰๋œ๋‹ค.

์ „์ฒด ํ๋ฆ„์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

User: "Go to code.claude.com/docs... Use dev-browser"
        โ”‚
        โ–ผ
LLM: available_skills์—์„œ ๋งค์นญ ๋ฐœ๊ฒฌ
     description์— "go to", "click on" ํŠธ๋ฆฌ๊ฑฐ ํฌํ•จ
        โ”‚
        โ–ผ
tool_use: Skill
  skill: "dev-browser:dev-browser"
  args: "Go to code.claude.com/docs..."
        โ”‚
        โ–ผ
tool_result: SKILL.md ์ „์ฒด + Base directory + ARGUMENTS
        โ”‚
        โ–ผ
LLM: SKILL.md ์ง€์‹œ๋ฌธ ํ•ด์„
     "First, start the dev-browser server"
        โ”‚
        โ–ผ
tool_use: Bash (./server.sh &)  โ”€โ”€โ–บ tool_result: "Server ready"
        โ”‚
        โ–ผ
LLM: heredoc ํ…œํ”Œ๋ฆฟ ์ฐธ๊ณ ํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ
     page.goto(), getAISnapshot() ํ™œ์šฉ
        โ”‚
        โ–ผ
tool_use: Bash (npx tsx <<'EOF'...)
        โ”‚
        โ–ผ
tool_result: snapshot ์ถœ๋ ฅ (ARIA ํŠธ๋ฆฌ)
        โ”‚
        โ–ผ
(๋ฐ˜๋ณต: ํด๋ฆญ, ์ž…๋ ฅ, ์Šคํฌ๋ฆฐ์ƒท ๋“ฑ)

Skill ๋„๊ตฌ์˜ ์—ญํ• ์€ SKILL.md ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ํ•ด์„ํ•˜๊ณ  ์ „์ฒด ๋‚ด์šฉ์„ tool_result๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ๋ฟ์ด๋‹ค. ์‹ค์ œ ๋Šฅ๋ ฅ์€ ์—์ด์ „ํŠธ๊ฐ€ SKILL.md๋ฅผ ์ฝ๊ณ  ์ง€์‹œ๋ฌธ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋„๊ตฌ๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋ฐœํ˜„๋œ๋‹ค.

Agent Skill๊ณผ Subagent

Subagent์™€ Agent Skill์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.

Subagent๋Š” ์ปจํ…์ŠคํŠธ ๋ถ„๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ํƒ์ƒ‰์ด๋‚˜ ๋ถ„์„ ๊ณผ์ •์ด ๋ฉ”์ธ ๋Œ€ํ™”๋ฅผ ์˜ค์—ผ์‹œํ‚ค๋ฉด ์•ˆ ๋  ๋•Œ ์ ํ•ฉํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ”๋“œ๋ฒ ์ด์Šค ์ „์ฒด๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•˜๋Š”๋ฐ ๊ทธ ๊ณผ์ •์˜ ๋ชจ๋“  ํŒŒ์ผ ๋‚ด์šฉ์ด ๋ฉ”์ธ ์ปจํ…์ŠคํŠธ์— ์Œ“์ด๋ฉด ๊ธˆ๋ฐฉ ์ปจํ…์ŠคํŠธ๊ฐ€ ์†Œ์ง„๋œ๋‹ค. Subagent๋Š” ๋…๋ฆฝ์ ์ธ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ์—์„œ ์ž‘์—…ํ•˜๊ณ  ๊ฒฐ๊ณผ๋งŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋˜ํ•œ ๊ฐ€๋ฒผ์šด ๋ชจ๋ธ(Haiku)๋กœ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋ฌด๊ฑฐ์šด ๋ชจ๋ธ(Opus)๋กœ ๊นŠ์ด ๋ถ„์„ํ•˜๋Š” ์„ ํƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Agent Skill์€ ์ ˆ์ฐจ์  ์ง€์‹์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. PDF ํผ ์ฑ„์šฐ๊ธฐ๋‚˜ ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”์ฒ˜๋Ÿผ "์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”์ง€"์— ๋Œ€ํ•œ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค๊ฐ€ ์žˆ๋Š” ์ž‘์—…์— ์ ํ•ฉํ•˜๋‹ค. Skill์€ ํ˜„์žฌ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ณต์œ ํ•˜๋ฉด์„œ ์ง€์‹œ๋ฌธ๋งŒ ์ถ”๊ฐ€๋กœ ์ฃผ์ž…ํ•œ๋‹ค. ๋ณ„๋„์˜ ๋ฉ”์‹œ์ง€ ๋ฃจํ”„๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค.

Agent Skill๊ณผ MCP

MCP์™€ Agent Skill๋„ ์—ญํ• ์ด ๋‹ค๋ฅด๋‹ค.

MCP๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ๊ณผ์˜ ์—ฐ๋™์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์™ธ๋ถ€ API์ฒ˜๋Ÿผ ์—์ด์ „ํŠธ ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•˜๊ธฐ ์–ด๋ ค์šด ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ ํ•ฉํ•˜๋‹ค. MCP ์„œ๋ฒ„๋Š” ์™ธ๋ถ€ ํ”„๋กœ์„ธ์Šค์—์„œ ์‹คํ–‰๋˜๊ณ  ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ํ†ต์‹ ํ•œ๋‹ค. ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ์—์„œ ๊ณต์œ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Agent Skill์€ ๋„๊ตฌ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ๊ฐ€๋ฅด์น  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. MCP๊ฐ€ "์–ด๋–ค ๋„๊ตฌ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ์ง€"๋ฅผ ์•Œ๋ ค์ค€๋‹ค๋ฉด Skill์€ "๊ทธ ๋„๊ตฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”์ง€"๋ฅผ ๊ฐ€๋ฅด์นœ๋‹ค. ์‹ค์ œ๋กœ mcp-builder๋ผ๋Š” Skill์€ MCP ์„œ๋ฒ„๋ฅผ ๋” ์ž˜ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ง€์‹์„ ์ œ๊ณตํ•œ๋‹ค. Skill์ด MCP๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ณด์™„ํ•˜๋Š” ๊ด€๊ณ„๋‹ค.

๋งˆ๋ฌด๋ฆฌ

์ง€๊ธˆ๊นŒ์ง€ Agent Skill์ด Tool Use ์œ„์—์„œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์•˜๋‹ค.

Skill ๋„๊ตฌ๊ฐ€ tools ๋ฐฐ์—ด์— ์ •์˜๋˜์–ด ์žˆ๊ณ  tool_use โ†’ tool_result ์‚ฌ์ดํด์„ ๊ฑฐ์นœ๋‹ค. ์ด๋Š” Subagent(Task ๋„๊ตฌ)๋‚˜ MCP(mcp__xxx ๋„๊ตฌ)์™€ ๋™์ผํ•œ ํŒจํ„ด์ด๋‹ค.

tools ๋ฐฐ์—ด
โ”œโ”€โ”€ ๋‚ด์žฅ ๋„๊ตฌ (Bash, Read, Glob...)
โ”‚   โ””โ”€โ”€ Host ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ์‹คํ–‰
โ”‚
โ”œโ”€โ”€ Task ๋„๊ตฌ (Subagent)
โ”‚   โ””โ”€โ”€ ์ƒˆ ๋ฉ”์‹œ์ง€ ๋ฃจํ”„์—์„œ LLM ์‘๋‹ต ๋ฐ˜ํ™˜
โ”‚
โ”œโ”€โ”€ mcp__xxx ๋„๊ตฌ (MCP)
โ”‚   โ””โ”€โ”€ ์™ธ๋ถ€ ์„œ๋ฒ„์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
โ”‚
โ””โ”€โ”€ Skill ๋„๊ตฌ (Skills)
    โ””โ”€โ”€ SKILL.md ๋กœ๋“œ ํ›„ ํ›„์† ๋„๊ตฌ ์‚ฌ์šฉ ์•ˆ๋‚ด

Agent Skill์€ ๋‹ค๋ฅธ ๋„๊ตฌ ์‚ฌ์šฉ์„ ์•ˆ๋‚ดํ•˜๋Š” ๋ฉ”ํƒ€ ๋„๊ตฌ๋‹ค. tool_result๋กœ ์ง€์‹œ๋ฌธ์„ ์ปจํ…์ŠคํŠธ์— ์ฃผ์ž…ํ•˜๊ณ  ์ดํ›„ Bash, Read ๊ฐ™์€ ๋‹ค๋ฅธ ๋„๊ตฌ๋“ค์˜ ์‚ฌ์šฉ์„ ์•ˆ๋‚ดํ•œ๋‹ค. ๊ฒฐ๊ตญ Skill โ†’ Bash โ†’ Read... ํ˜•ํƒœ์˜ ๋„๊ตฌ ์ฒด์ด๋‹์ด ๋ฐœ์ƒํ•œ๋‹ค.

Subagent์™€ MCP๊ฐ€ "๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€"๋ฅผ ํ™•์žฅํ•œ๋‹ค๋ฉด Skills๋Š” "์–ด๋–ป๊ฒŒ ์ž˜ ํ•  ๊ฒƒ์ธ๊ฐ€"๋ฅผ ํ™•์žฅํ•œ๋‹ค.

Read more โ†’
7
2
0

์†”์งํžˆ ๋งํ•ด ๋ฌด์„ญ๊ธฐ๊นŒ์ง€ ํ•จ. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ํ•œ๊ตญ์ด๋‚˜ ๋ฏธ๊ตญ ์ •๋ถ€ ์—์ด์ „ํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ์ฟ ํŒก์ด ๊ณ ์šฉํ•œ ๊ธ€๋กœ๋ฒŒ `๋ณด์•ˆ' ์—…์ฒด์˜ ์ž ์ˆ˜๋ถ€๋“ค์ด ๋…ธํŠธ๋ถ ํšŒ์ˆ˜๊นŒ์ง€ ํ–ˆ๋‹ค๋Š”๊ฑด๋ฐ...............................

RE: https://bsky.app/profile/did:plc:cijb5xuwm3tkpt5n2xd2jjqg/post/3mauzsyglfc2l

0

ๅฐ้‡Ž็”ฐ็ด€็พŽๆฐใฎใ€Œ็งใฏใƒปใƒปใƒปๆˆ‘ใŒๅ›ฝใใฎใ‚‚ใฎใซๅฟ ่ช ใ‚’่ช“ใฃใฆใ„ใพใ™ใ€‚ๅ›ฝๆฐ‘ใซใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใ€ใฃใฆ็™บ่จ€ใ€ๅฐ้‡Ž็”ฐๆฐใ ใ‘ใ˜ใ‚ƒใชใๅ›ฝๅฎถไธญๆžขใ‚’ๆ‹…ใฃใฆใ„ใ‚‹ๆ”ฟๆฒปๅฎถใ€ๅฎ˜ๅƒšใซใ‚‚ๅŒใ˜ใ‚ˆใ†ใชๆ„่ญ˜ใ‚’ๆŒใฃใฆใ‚‹ไบบใŒๅคšใ„ใ‚“ใ˜ใ‚ƒใชใ„ใงใ™ใ‹ใญใˆใ€‚

0