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.

1

결국 중요한 건 좋은 선례를 하나라도 빨리 만드는 것이고, 그게 쌓여야 모델을 훈련시키는 사람이나 회사들이 지금처럼 공짜로 학습해도 되겠지라는 생각을 못 하게 되거나 기존 데이터를 쓰지 않는 다른 학습 방식이나 기술을 개발할 동기와 배경이 생기는 주장 자체는 맞다고 GPT님이 이야기 해주심 (먼산) 지금은 답답해 보여도 이건 감정 문제가 아니라 법과 기술이 충돌하는 초기 단계에서 생기는 지연 같고 결국에는 회사들도 어떤식으로라도 댓가를 지불해야할것 같긴함 저작자분들도 그에 따라서 미리 준비를 잘해야할것 같고...

0

게다가 상대는 자본력 있는 빅테크고 이런 소송은 몇 년씩 끌릴 수 있는데 한 번 패소해서 나쁜 판례라도 나오면 오히려 이후 싸움이 더 어려워진다고 함. 그래서 지금은 학습 자체를 바로 치기보다는 약관 문제나 결과물 유사성, 데이터 수집 단계의 불법성 같은 이길 수 있는 지점부터 우회해서 판례를 쌓는 단계라고...

0

인데 문제는 대체로 AI 학습은 학습은 분석일 뿐이고 결과물은 원본이 아니라는 식으로 빠져나갈 여지가 너무 많다고. 그래서 변호사들이 집단소송을 안 하는 게 아니라 지금 구조로는 이길 확률이 낮아서 쉽게 못 들어가는 상황이라고 함. 집단소송을 하려면 피해 구조가 유사해야 하고 손해가 객관적으로 계산돼야 하며 무엇보다 내 작품이 실제로 학습에 쓰였다는 걸 입증해야 하는데, AI 회사들은 학습 데이터셋을 공개하지도 않고 작가 입장에선 추정만 가능하지 입증은 거의 불가능하다고 함.

0

결국 저작자분들이 모여서 집단소송이 들어가고 좋은 선례를 빨리 만드는것이 중요하긴함 그래야 모델을 훈련시키는 사람/회사들이 지금처럼 날로 먹을 생각을 못하거나 혹은 기존 데이터 안쓰고 다른 방법으로 배우는 기술을 개발할 동기나 배경이 됨 이라고 적으려고 했음 근데 변호사분들이 이걸 모르진 않을텐데 왜 못하나 궁금해서 GPT님에게 물어보니 법과 구조가 아직 그걸 따라가지 못하고 있기 때문이라고 이야기함. GPT님 가라사대 저작권법은 원래 누가 복제했는지, 누가 배포했는지, 결과물이 원본과 실질적으로 유사한지를 중심으로 만들어진 법

0
0
2

실제로 이대로 된 게 웹 찍먹이라도 해본 사람이라면 한 번이라도 공부해봤을 리액트임 사실상 프론트의 표준이 되어가고 있는데 메인테이너인 메타를 아무도 제지를 할 수가 없음

0

얘네가 얼마나 무섭냐면... 회사들이 AI 모델 지들끼리만 몰래 학습시키고 있던 시기에 얘네 모델이 유출됨 자 다른 회사였으면 진짜 난리 났을거거든? 막 고소니 뭐니 난리를 떨 거 아냐 근데 조용해 아무 반응도 없고 그래서 사용자들이 어? 써도 되나? 하고 지들이 데이터 모아서 더 학습시킨 모델 올리고 쓰기 좋게 인터페이스도 만들고 이 모델 위주로 사람들이 공부하고 자 그럼 어떻게 돼? 이제 메타는 사람들이 더 학습시킨 모델이랑 인터페이스 갖다 쓰고 공부한 사람들 뽑아서 바로 실무 투입 가능함 진짜 무서운 새끼들이라니까

RE: https://bsky.app/profile/did:plc:7fbikvxjgwiomstwwnd2gp42/post/3mas6qzx4xc2i

0
1
1
0
0
0

:misskey:​ ​:io:​新規の方へ​:real_sawagani:
:io:​は探しづらく 探されづらいSNSなので とにかくフォローして 雑談して 自分だけの最強のタイムラインを作ったり ​:zikka_no_youna_ansinkan:​のあるチャンネルに定住するのが一番たのしく​:io:​出来ると思います​:ai_nomming:

:real_sawagani:←これはさわがに

:real_hato_kokekokko:←これはハト

:machida:​←町田は神奈川

2
0
0
0
0
0

이게 뭐 무서울거야? 싶을 수도 있음 누가 피해를 보는 것도 아니고 하지만 결국 AI 시장이 메타 위주로 굴러가게 되면서 흐름을 주도하게 되는 거임 다른 회사들이 다른 거 하고 싶어해도 결국 메타가 하자는 대로 할 수 밖에 없게 된다고 메타가 지들 손해 보고 남들 이익되는 대로 할까? 그럴리가 있나 진짜 무서운 놈들임 진짜로...

0

gen AI/LLMs, hardcover.app

UPDATE: See this: gamedev.lgbt/@renkotsuban/1157

Made a Hardcover account, did a quick search for reviews about it, found a Reddit post where one of the founders recs Hardcover over StoryGraph because HC's got AI recs and book metadata, deleted my Hardcover account 😑

Keeping Bookmory I guess...

reddit.com/r/books/comments/16

Reddit thread about Hardcover.app

x0zu: what are the advantages and disadvantages to StoryGraph?

Reply from stefolo, one of the Hardcover founders, listing a bunch of reasons including: integrated AI to help you decide what you read and for book data.

I drew a red unhappy face next to that bullet point
0

GPLv2 affirmation…

I don’t generally post here as people have probably noticed, but here’s a pdf of a recent court ruling, and this turns out to be the easiest way for me to link to a copy of it, since I don’t really maintain any web presence normally and I don’t want to post pdf’s to the kernel mailing lists or anything like that.

And the reason I want to post about it, is that it basically validates my long-held views that the GPLv2 is about making source code available, not controlling the access to the hardware that it runs on.

The court case itself is a mess of two bad parties: Vizio and the SFC. Both of them look horribly bad in court - for different reasons.

Vizio used Linux in their TVs without originally making the source code available, and that was obviously not ok.

And the Software Freedom Conservancy then tries to make the argument that the license forces you to make your installation keys etc available, even though that is not the case, and the reason why the kernel is very much GPLv2 only. The people involved know that very well, but have argued otherwise in court.

End result: both parties have acted badly. But at least Vizio did fix their behavior, even if it apparently took this lawsuit to do so. I can’t say the same about the SFC.

Please, SFC - stop using the kernel for your bogus legal arguments where you try to expand the GPLv2 to be something it isn’t. You just look like a bunch of incompetent a**holes.

The only party that looks competent here is the judge, which in this ruling says

Plaintiff contends the phrases, “machine-readable” and “scripts used to control compilation and installation” support their assertion in response to special interrogatory no. 4 that Defendant should “deliver files such that a person of ordinary skill can compile the source code into a functional executable and install it onto the same device, such that all features of the original program are retained, without undue difficulty.”

The language of the Agreements is unambiguous. It does not impose the duty which is the subject of this motion.

Read as a whole, the Agreements require Vizio to make the source code available in such a manner that the source code can be readily obtained and modified by Plaintiff or other third parties. While source code is defined to include “the scripts used to control compilation and installation,” this does not mean that Vizio must allow users to reinstall the software, modified or otherwise, back onto its smart TVs in a manner that preserves all features of the original program and/or ensures the smart TVs continue to function properly. Rather, in the context of the Agreements, the disputed language means that Vizio must provide the source code in a manner that allows the source code to be obtained and revised by Plaintiff or others for use in other applications.

In other words, Vizio must ensure the ability of users to copy, change/modify, and distribute the source code, including using the code in other free programs consistent with the Preamble and Terms and Conditions of the Agreements. However, nothing in the language of the Agreements requires Vizio to allow modified source code to be reinstalled on its devices while ensuring the devices remain operable after the source code is modified. If this was the intent of the Agreements, the Agreements could have been readily modified to state that users must be permitted to modify and reinstall modified software on products which use the program while ensuring the products continue to function. The absence of such language is dispositive and there is no basis to find that such a term was implied here. Therefore, the motion is granted.

IOW, this makes it clear that yes, you have to make source code available, but no, the GPLv2 does not in any way force you to then open up your hardware.

My intention - and the GPLv2 - is clear: the kernel copyright licence covers the software, and does not extend to the hardware it runs on. The same way the kernel copyright license does not extend to user space programs that run on it.

0
1
1
0
0
0
0
0
1
0
0

Jaeyeol Lee 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 →
2

https://www.yna.co.kr/view/AKR20251225037552030

쿠팡 스스로 사람, 증거 다 조사해서 추가 유출 없다는 결론까지 내다니,

전문용어?로 시나리오 쓰고 있네... 버린 맥북까지 찾았다는 부분에서는 웃지도 못하겠다.

저 회사는 얼마나 국가를 우습게 보면 저럴 수가 있나.

0

얘네가 얼마나 무섭냐면... 회사들이 AI 모델 지들끼리만 몰래 학습시키고 있던 시기에 얘네 모델이 유출됨 자 다른 회사였으면 진짜 난리 났을거거든? 막 고소니 뭐니 난리를 떨 거 아냐 근데 조용해 아무 반응도 없고 그래서 사용자들이 어? 써도 되나? 하고 지들이 데이터 모아서 더 학습시킨 모델 올리고 쓰기 좋게 인터페이스도 만들고 이 모델 위주로 사람들이 공부하고 자 그럼 어떻게 돼? 이제 메타는 사람들이 더 학습시킨 모델이랑 인터페이스 갖다 쓰고 공부한 사람들 뽑아서 바로 실무 투입 가능함 진짜 무서운 새끼들이라니까

RE: https://bsky.app/profile/did:plc:7fbikvxjgwiomstwwnd2gp42/post/3mas6qzx4xc2i

0
1
0
1
2
0
0
0
0

게임 만드는 성인 여성입니다...~!! 현재 요리타이쿤 게임 스푸키친( s.team/a/3588570 )을 만들고 있어요!👻🎃 그림, 플밍, 글, 작곡 고루고루 하고, 스타듀밸리, 돈스타브같은 인디 게임을 매우 즐겨 합니다~! 맞구독, 교류 모두 좋아요! 흔적 남겨주시면 무멘팔로 찾아뵐게요🥰

0
1
0
2

You'd think after publishing 9 novels in 13 years, I'd have made my peace w/ the need to promote them.

I'm still conflicted re: anything that smacks of self-promo. I believe in my work. I'm proud of what I write & very much want to share it with readers.

But the work doesn't magically announce itself to the world.

So if you're looking for SF&F books that are earnest, honest, compelling & character focused, give them a try?

2 are free/pay what you will at Gumroad.

ljcohen.gumroad.com/

8 of my 9 novels, spines out. From left to right:

The Between, Changeling's Choice book 1
Time and Tide, Changeling's Choice, book 2

Future Tense (standalone)

Derelict, Halcyone Space book 1
Ithaka Rising, Halcyone Space book 2
Dreadnought and Shuttle, Halcyone Space book 3
Parallax, Halcyone Space book 4
A Star in the Void, Halcyone Space book 5Full front cover of Litany for a Broken World showing an abandoned graffiti marked brick building with golden light pouring from a window. Dwarfed by the building are 2 human figures and a small dog.
0
0
0
1