Search results

최근 클로드(Claude)나 커서(Cursor)를 이용해 '바이브 코딩' 하시는 분들 많으시죠? 생산성이 비약적으로 높아졌지만, .NET 환경에서는 AI가 API 이름을 대충 짐작하거나 네임스페이스 대소문자를 틀려 빌드 에러를 마주하는 일이 종종 있습니다.

이런 번거로움을 해결하기 위해, AI가 실제 컴파일된 어셈블리와 NuGet 패키지 정보를 직접 조회하여 정확한 코드를 작성하도록 돕는 HandMirror MCP 서버를 개발하여 NuGet에 배포했습니다! 🚀

✅ 100% 정확한 API 조회: Sqlite vs SQLite 같은 대소문자 문제나 숨겨진 확장 메서드를 실제 바이너리 검사로 찾아냅니다.

✅ 빌드 에러 해결사: CS0246, NU1605 등 .NET 특유의 에러 코드를 분석하고 해결책과 필요한 패키지를 추천합니다.

✅ 패키지 버전 비교: 업데이트 전후의 파괴적 변경사항(Breaking Changes)을 AI가 미리 파악할 수 있습니다.

✅ 네이티브 분석: P/Invoke나 COM interop 의존성까지 손쉽게 확인합니다.

✅ 최신 기술 지원: .NET 10의 새로운 파일 기반 앱(#:package 등) 분석도 지원합니다.

지금 바로 시작해보세요! 별도의 설치 없이 .NET 10 SDK를 설치하고 dnx를 통해 바로 실행할 수 있습니다.

dnx HandMirrorMcp@0.1.1 --yes

https://www.nuget.org/packages/HandMirrorMcp

1

Great intro to and articles by @steveklabnik.comSteve Klabnik steveklabnik.com/writing/getti

I discovered many of things he discusses on my own (through trial and error) and having those articles early on would have been handy for me, so it's great that they exist today.

0
0

A good morning and a Happy Monday to you all! What are your plans for this week? Shipping something? Learning something new? This is the place to share it! I will be working on updates for Maxine and Chrona, planning to ship Maxine v2.6 this week 😱

@donnywals Good Morning Donny! Over the weekend I've shipped an MCP server that enables to play YouTube audio (concerts, podcasts...) in background via my free macOS app Tubist.
It felt amazing the first time it worked... I told Claude "play the Billie Eilish Tiny Desk concert"

Tubist on Mac App Store (free) - apps.apple.com/app/id1603180719

Tubist MCP server (open source) - github.com/dkasaj/tubist-mcp-s

0

A thought that popped into my head when I woke up at 4 am and couldn’t get back to sleep…

Imagine that AI/LLM tools were being marketed to workers as a way to do the same work more quickly and work fewer hours without telling their employers.

“Use ChatGPT to write your TPS reports, go home at lunchtime. Spend more time with your kids!” “Use Claude to write your code, turn 60-hour weeks into four-day weekends!” “Collect two paychecks by using AI! You can hold two jobs without the boss knowing the difference!”

Imagine if AI/LLM tools were not shareholder catnip, but a grassroots movement of tooling that workers were sharing with each other to work less. Same quality of output, but instead of being pushed top-down, being adopted to empower people to work less and “cheat” employers.

Imagine if unions were arguing for the right of workers to use LLMs as labor saving devices, instead of trying to protect members from their damage.

CEOs would be screaming bloody murder. There’d be an overnight industry in AI-detection tools and immediate bans on AI in the workplace. Instead of Microsoft CoPilot 365, Satya would be out promoting Microsoft SlopGuard - add ons that detect LLM tools running on Windows and prevent AI scrapers from harvesting your company’s valuable content for training.

The media would be running horror stories about the terrible trend of workers getting the same pay for working less, and the awful quality of LLM output. Maybe they’d still call them “hallucinations,” but it’d be in the terrified tone of 80s anti-drug PSAs.

What I’m trying to say in my sleep-deprived state is that you shouldn’t ignore the intent and ill effects of these tools. If they were good for you, shareholders would hate them.

You should understand that they’re anti-worker and anti-human. TPTB would be fighting them tooth and nail if their benefits were reversed. It doesn’t matter how good they get, or how interesting they are: the ultimate purpose of the industry behind them is to create less demand for labor and aggregate more wealth in fewer hands.

Unless you happen to be in a very very small club of ultra-wealthy tech bros, they’re not for you, they’re against you.

0
0
0

Been experimenting with + a bit, a few things are very odd:

1. The quality of interactions I'm having with Claude inside Zed is of lower quality than in VSCode + Claude or in Cursor. It seems "dumber", assumes more, doesn't verify claims, just generally more nonsensical answers and needs more hand-holding.

2. It seems to consume a lot more tokens, I'm not sure why, I suspect they don't properly cache, don't compact, don't optimise input/outputs, etc. This is horrific.

0

90万件超もダウンロードされたChrome拡張機能がChatGPTやDeepSeekとの会話データやブラウザ閲覧履歴を盗んでいることが判明 - GIGAZINE
gigazine.net/news/20260108-mal

『今回、マルウェアが仕込まれていることが判明したChrome拡張機能は、「Chat GPT for Chrome with GPT-5, Claude Sonnet & DeepSeek AI」と「AI Sidebar with Deepseek, ChatGPT, Claude and more」の2つです。いずれも「あらゆるウェブサイトの上部にサイドバーを追加し、人気のあるチャットAIといつでもチャットできるようにする」という機能を提供しています』

0

Claude Code의 거의 모든 것은 Tool Use 입니다. MCP도 subagent도 Skills 역시요.

자손킴 @jasonkim@hackers.pub

이번 글에서는 지난글에 이어서 Claude가 도구를 사용하는 구체적인 방법을 알아본다. Claude가 사용할 수 있는 도구들의 목록은 Tools 섹션에 포함되어 있다. Tools 섹션에 대해서는 이전 글을 참고한다.

Tool Use 란?

Tool Use는 Claude가 외부 도구(함수)를 호출하여 실제 작업을 수행할 수 있게 하는 메커니즘이다. Claude는 텍스트 생성만으로는 수행할 수 없는 작업들, 예를 들어 파일 읽기, 명령어 실행, 웹 검색 등을 도구를 통해 수행한다.

Claude에게 사용 가능한 도구들의 스키마를 알려주면 Claude는 사용자의 요청을 분석하여 적절한 도구를 선택하고 필요한 파라미터와 함께 도구 사용을 요청한다. 에이전트(클라이언트)는 이 요청을 받아 실제로 도구를 실행하고 그 결과를 다시 Claude에게 전달한다.

Tools 섹션: 도구 정의하기

Claude가 도구를 사용하려면 먼저 어떤 도구가 있는지 알아야 한다. 에이전트는 API 요청의 tools 배열에 사용 가능한 도구들을 정의한다. 각 도구는 이름, 설명, 그리고 입력 스키마를 포함한다.

Bash 도구 정의 예시

{
  "name": "Bash",
  "description": "Executes a given bash command in a persistent shell session with optional timeout, ensuring proper handling and security measures.\n\nIMPORTANT: This tool is for terminal operations like git, npm, docker, etc...",
  "input_schema": {
    "type": "object",
    "properties": {
      "command": {
        "type": "string",
        "description": "The command to execute"
      },
      "timeout": {
        "type": "number",
        "description": "Optional timeout in milliseconds (max 600000)"
      },
      "description": {
        "type": "string",
        "description": "Clear, concise description of what this command does in 5-10 words, in active voice."
      }
    },
    "required": ["command"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

Glob 도구 정의 예시

{
  "name": "Glob",
  "description": "- Fast file pattern matching tool that works with any codebase size\n- Supports glob patterns like \"**/*.js\" or \"src/**/*.ts\"\n- Returns matching file paths sorted by modification time\n- Use this tool when you need to find files by name patterns",
  "input_schema": {
    "type": "object",
    "properties": {
      "pattern": {
        "type": "string",
        "description": "The glob pattern to match files against"
      },
      "path": {
        "type": "string",
        "description": "The directory to search in. If not specified, the current working directory will be used."
      }
    },
    "required": ["pattern"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

도구 정의에서 description이 중요하다. Claude는 이 설명을 읽고 어떤 상황에서 해당 도구를 사용해야 하는지 판단한다. input_schema는 JSON Schema 형식으로 Claude가 도구를 호출할 때 어떤 파라미터를 어떤 형식으로 전달해야 하는지 정의한다.

Claude가 도구를 선정하는 방법

Claude가 도구를 선택하는 과정은 Messages API의 대화 흐름 속에서 이루어진다. 실제 예시를 통해 살펴보자.

사용자의 요청

사용자가 "이 NestJS 프로젝트에서 entity 구조를 탐색해주세요"라고 요청하면 에이전트는 다음과 같은 메시지를 API에 전송한다:

{
  "role": "user",
  "content": [
    {
      "type": "text",
      "text": "이 NestJS TypeScript 프로젝트에서 entity 구조를 탐색해주세요..."
    }
  ]
}

Claude의 도구 사용 요청

Claude는 사용자의 요청을 분석하고 작업 수행에 필요한 도구들을 선택하여 tool_use 블록으로 응답한다:

{
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "이 NestJS 프로젝트의 entity 구조를 철저하게 탐색하겠습니다."
    },
    {
      "type": "tool_use",
      "id": "toolu_01ABC123XYZ",
      "name": "Glob",
      "input": {
        "pattern": "**/*.entity.ts"
      }
    },
    {
      "type": "tool_use",
      "id": "toolu_01DEF456UVW",
      "name": "Bash",
      "input": {
        "command": "find /workspace/my-nestjs-project/src -type f -name \"*.ts\" | grep -E \"(entity|entities)\" | head -20",
        "description": "Find entity files in src directory"
      }
    }
  ]
}

여기서 주목할 점이 있다. Claude는 한 번의 응답에서 여러 도구를 동시에 요청할 수 있다. 위 예시에서는 GlobBash 두 도구를 병렬로 요청했다. 각 도구 요청에는 고유한 id가 부여되어 나중에 결과를 매핑할 때 사용된다.

응답의 stop_reason

Claude가 도구 사용을 요청하면 API 응답의 stop_reason"tool_use"로 설정된다:

{
  "id": "msg_01XYZ789ABC",
  "type": "message",
  "role": "assistant",
  "model": "claude-haiku-4-5-20251001",
  "content": [...],
  "stop_reason": "tool_use",
  "usage": {
    "input_tokens": 714,
    "output_tokens": 314
  }
}

stop_reason은 에이전트에게 "응답이 끝난 것이 아니라 도구 실행이 필요하다"는 신호를 보낸다.

에이전트는 tool_use 요청을 받으면 무엇을 하는가?

에이전트(클라이언트)가 stop_reason: "tool_use" 응답을 받으면 다음 단계를 수행해야 한다:

  1. 도구 요청 파싱: 응답의 content 배열에서 type: "tool_use" 블록들을 추출한다.

  2. 도구 실행: 각 도구 요청에 대해 실제 도구를 실행한다. 예를 들어:

    • Bash 도구 → 시스템에서 실제 bash 명령어 실행
    • Glob 도구 → 파일 시스템에서 패턴 매칭 수행
    • Read 도구 → 파일 내용 읽기
  3. 결과 수집: 각 도구의 실행 결과를 수집하고 tool_use_id와 함께 결과를 구성한다.

  4. 모델에 결과 전달: 수집한 결과를 tool_result 형식으로 모델에 다시 전송한다.

이 과정에서 에이전트는 도구 실행의 성공/실패 여부, 타임아웃 처리, 보안 검증 등을 담당한다. Claude는 도구의 스키마와 용도만 알 뿐 실제 실행은 에이전트의 몫이다.

에이전트가 모델에 도구 실행 결과를 알리는 방법

에이전트가 도구를 실행한 후에는 그 결과를 tool_result 형식으로 모델에 전달한다. 이 결과는 user role의 메시지로 전송된다.

tool_result 구조

{
  "role": "user",
  "content": [
    {
      "tool_use_id": "toolu_01DEF456UVW",
      "type": "tool_result",
      "content": "/workspace/my-nestjs-project/src/modules/chat/entities/dm-unlock.entity.ts\n/workspace/my-nestjs-project/src/modules/agora/entities/call-session.entity.ts\n/workspace/my-nestjs-project/src/modules/user/entities/user.entity.ts\n/workspace/my-nestjs-project/src/modules/user/entities/user-profile.entity.ts\n/workspace/my-nestjs-project/src/modules/item/entities/item.entity.ts\n...",
      "is_error": false
    },
    {
      "tool_use_id": "toolu_01ABC123XYZ",
      "type": "tool_result",
      "content": "/workspace/my-nestjs-project/src/modules/agora/entities/agora-event-log.entity.ts\n/workspace/my-nestjs-project/src/modules/agora/entities/call-participant.entity.ts\n/workspace/my-nestjs-project/src/modules/item/entities/item.entity.ts\n...",
      "cache_control": {
        "type": "ephemeral"
      }
    }
  ]
}

tool_result의 핵심 필드는 다음과 같다:

필드 설명
tool_use_id Claude가 요청한 도구의 고유 ID. 어떤 요청에 대한 결과인지 매핑
type 항상 "tool_result"
content 도구 실행의 실제 결과 (문자열)
is_error 도구 실행 실패 시 true
cache_control (선택) 프롬프트 캐싱을 위한 제어 옵션

전체 대화 흐름

tool_result를 받은 Claude는 결과를 분석하고 추가 도구가 필요하면 다시 tool_use를 요청한다. 충분한 정보가 모이면 최종 응답을 생성한다. 이 과정이 반복되면서 복잡한 작업도 단계별로 수행할 수 있다:

User → Claude: "entity 구조를 탐색해주세요"
Claude → Agent: tool_use (Glob, Bash)
Agent → Claude: tool_result (파일 목록)
Claude → Agent: tool_use (Read - 여러 파일)
Agent → Claude: tool_result (파일 내용들)
Claude → User: 최종 분석 결과

실제 예시에서 Claude는 먼저 GlobBash로 entity 파일 목록을 찾고 그 결과를 받은 후 Read 도구로 개별 파일들을 읽어 분석했다:

{
  "type": "text",
  "text": "좋습니다. 이제 주요 entity 파일들을 읽겠습니다."
},
{
  "type": "tool_use",
  "id": "toolu_01GHI789RST",
  "name": "Read",
  "input": {
    "file_path": "/workspace/my-nestjs-project/src/modules/user/entities/user.entity.ts"
  }
},
{
  "type": "tool_use",
  "id": "toolu_01JKL012MNO",
  "name": "Read",
  "input": {
    "file_path": "/workspace/my-nestjs-project/src/modules/user/entities/user-profile.entity.ts"
  }
}

마무리

Claude Code와 같은 에이전트는 모델에 사용할 수 있는 도구를 알려주어 도구를 능동적으로 사용하게 만듦으로써 유저의 실행환경과 상호 협력하여 도구를 실행한다. 유저에게 질문을 하는 AskUserQuestion도 도구이고 심지어 계획 모드를 빠져나가는 ExitPlanMode도 도구다.

MCP(Model Context Protocol) 서버가 제공하는 기능들도 결국 도구로 노출되며 Subagent 호출도 도구를 통해 이루어진다. Skills도 마찬가지다. 결국 Claude Code의 거의 모든 확장 기능은 Tool Use라는 하나의 메커니즘 위에서 동작한다.

이 구조를 이해하면 Claude Code가 어떻게 파일을 읽고, 코드를 실행하고, 웹을 검색하는지 명확해진다. 그리고 새로운 도구를 추가하거나 MCP 서버를 연동할 때도 같은 패턴이 적용된다는 것을 알 수 있다.

Read more →
8

Claude API의 Request Body 분석

자손킴 @jasonkim@hackers.pub

Claude API의 Request는 크게 4가지 분류를 가지고 있다.

  • System Messages
  • Messages
  • Tools
  • Model & Config

각각은 다음과 같은 역할을 한다.

System Messages

System Messages는 Claude에게 역할, 성격, 제약사항 등을 지시하는 최상위 설정이다. 배열 형태로 여러 개의 시스템 메시지를 전달할 수 있다.

"system": [
  {
    "type": "text",
    "text": "You are Claude Code, Anthropic's official CLI for Claude.",
    "cache_control": {
      "type": "ephemeral"
    }
  },
  {
    "type": "text",
    "text": "You are an interactive CLI tool that helps users with software engineering tasks...",
    "cache_control": {
      "type": "ephemeral"
    }
  }
]

System Messages에는 다음과 같은 내용이 포함된다:

  • Claude의 페르소나 및 역할 정의
  • 보안 및 윤리 가이드라인
  • 응답 형식 및 톤 설정
  • 프로젝트 정보 등 컨텍스트
  • cache_control을 통한 캐싱 설정

Messages

Messages는 userassistant 역할이 번갈아가며 주고받은 대화를 누적하는 배열이다. assistant 메시지는 반드시 모델의 실제 응답일 필요가 없다. 이를 활요해 API 호출 시 assistant 메시지를 미리 작성해서 전달하면, Claude는 그 내용 이후부터 이어서 응답한다. 이를 Prefill 기법이라 한다.

이 대화 기록을 통해 Claude는 맥락을 유지하며 응답한다.

"messages": [
  {
    "role": "user",
    "content": [...]
  },
  {
    "role": "assistant",
    "content": [...]
  },
  {
    "role": "user",
    "content": [...]
  }
]

User Message

User의 content는 주로 두 가지 type으로 구성된다:

1. text - 사용자의 일반 메시지나 시스템 리마인더

{
  "role": "user",
  "content": [
    {
      "type": "text",
      "text": "선물을 주고받는 기능을 위한 entity를 설계하라."
    }
  ]
}

2. tool_result - Tool 실행 결과 반환

{
  "role": "user",
  "content": [
    {
      "tool_use_id": "toolu_01Qj7gnFLKWBNjg",
      "type": "tool_result",
      "content": [
        {
          "type": "text",
          "text": "## Entity 구조 탐색 보고서\n\n철저한 탐색을 통해..."
        }
      ]
    }
  ]
}

Assistant Message

Assistant의 content는 주로 세 가지 type으로 구성된다:

1. text - Claude의 응답 메시지

{
  "type": "text",
  "text": "선물 주고받기 기능을 위한 entity 설계를 시작하겠습니다."
}

2. thinking - Extended Thinking 기능 활성화 시 사고 과정 (signature로 검증)

{
  "type": "thinking",
  "thinking": "사용자가 선물을 주고받는 기능을 위한 entity 설계를 요청했습니다...",
  "signature": "EqskYIChgCKknyFYp5cu1zhVOp7kFTJb..."
}

3. tool_use - Tool 호출 요청

{
  "type": "tool_use",
  "id": "toolu_01Qj7gn6vLKCNjg",
  "name": "Task",
  "input": {
    "subagent_type": "Explore",
    "prompt": "이 NestJS TypeScript 프로젝트에서 entity 구조를 탐색해주세요...",
    "description": "Entity 구조 탐색"
  }
}

User와 Assistant의 협력

Tool 사용 흐름은 다음과 같이 진행된다:

  1. Assistant: tool_use로 Tool 호출 요청
  2. User: tool_result로 실행 결과 반환
  3. Assistant: 결과를 바탕으로 text 응답 또는 추가 tool_use

이 과정에서 어떤 Tool을 사용할 수 있는지는 tools 배열이 정의한다.

Tools

Tools는 Claude가 사용할 수 있는 도구들을 정의하는 배열이다. 각 Tool은 name, description, input_schema 세 가지 필드로 구성된다.

Tool의 기본 구조

"tools": [
  {
    "name": "ToolName",
    "description": "Tool에 대한 설명...",
    "input_schema": {
      "type": "object",
      "properties": {...},
      "required": [...],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  }
]
필드 설명
name Tool의 고유 식별자. Claude가 tool_use에서 이 이름으로 호출
description Tool의 용도, 사용법, 주의사항 등을 상세히 기술. Claude가 어떤 Tool을 선택할지 판단하는 근거
input_schema JSON Schema 형식으로 입력 파라미터 정의

input_schema 구조

input_schema는 JSON Schema draft-07 스펙을 따르며, Tool 호출 시 필요한 파라미터를 정의한다.

"input_schema": {
  "type": "object",
  "properties": {
    "pattern": {
      "type": "string",
      "description": "The regular expression pattern to search for"
    },
    "path": {
      "type": "string",
      "description": "File or directory to search in. Defaults to current working directory."
    },
    "output_mode": {
      "type": "string",
      "enum": ["content", "files_with_matches", "count"],
      "description": "Output mode: 'content' shows matching lines, 'files_with_matches' shows file paths..."
    },
    "-i": {
      "type": "boolean",
      "description": "Case insensitive search"
    },
    "head_limit": {
      "type": "number",
      "description": "Limit output to first N lines/entries"
    }
  },
  "required": ["pattern"],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

properties 내 각 파라미터 정의

각 파라미터는 다음 필드들로 정의된다:

필드 설명
type 데이터 타입 (string, number, boolean, array, object 등)
description 파라미터의 용도와 사용법 설명
enum (선택) 허용되는 값의 목록. 이 중 하나만 선택 가능
default (선택) 기본값

input_schema의 메타 필드

필드 설명
type 항상 "object"
properties 파라미터 정의 객체
required 필수 파라미터 이름 배열. 여기 포함되지 않은 파라미터는 선택적
additionalProperties false면 정의되지 않은 파라미터 전달 불가
$schema JSON Schema 버전 명시

실제 예시: Grep Tool

{
  "name": "Grep",
  "description": "A powerful search tool built on ripgrep\n\n  Usage:\n  - ALWAYS use Grep for search tasks...",
  "input_schema": {
    "type": "object",
    "properties": {
      "pattern": {
        "type": "string",
        "description": "The regular expression pattern to search for in file contents"
      },
      "path": {
        "type": "string",
        "description": "File or directory to search in (rg PATH). Defaults to current working directory."
      },
      "glob": {
        "type": "string",
        "description": "Glob pattern to filter files (e.g. \"*.js\", \"*.{ts,tsx}\")"
      },
      "output_mode": {
        "type": "string",
        "enum": ["content", "files_with_matches", "count"],
        "description": "Output mode. Defaults to 'files_with_matches'."
      },
      "-A": {
        "type": "number",
        "description": "Number of lines to show after each match"
      },
      "-B": {
        "type": "number",
        "description": "Number of lines to show before each match"
      },
      "-i": {
        "type": "boolean",
        "description": "Case insensitive search"
      },
      "multiline": {
        "type": "boolean",
        "description": "Enable multiline mode. Default: false."
      }
    },
    "required": ["pattern"],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}

이 Tool을 Claude가 호출할 때의 tool_use:

{
  "type": "tool_use",
  "id": "toolu_01ABC123",
  "name": "Grep",
  "input": {
    "pattern": "class.*Entity",
    "path": "src/modules",
    "glob": "*.ts",
    "output_mode": "content",
    "-i": true
  }
}

requiredpattern만 있으므로 나머지는 선택적이다. Claude는 input_schemadescription을 참고하여 적절한 파라미터를 선택한다.

Model & Config

마지막으로 모델 선택과 각종 설정 옵션들이다:

{
  "model": "claude-opus-4-5-20251101",
  "max_tokens": 32000,
  "thinking": {
    "budget_tokens": 31999,
    "type": "enabled"
  },
  "stream": true,
  "metadata": {
    "user_id": "user_2f2ce5dbb94ac27c8da0d0b28dddf815fc82be54e0..."
  }
}
옵션 설명
model 사용할 Claude 모델 (claude-opus-4-5, claude-sonnet-4-5 등)
max_tokens 최대 출력 토큰 수
thinking Extended Thinking 설정 (budget_tokens로 사고 토큰 예산 설정)
stream 스트리밍 응답 여부
metadata 사용자 ID 등 메타데이터

마치며

지금까지 Claude API Request Body의 4가지 핵심 구성 요소를 살펴보았다:

  1. System Messages: Claude의 역할과 행동 방식을 정의
  2. Messages: user-assistant 간 대화 기록을 누적하며, tool_use/tool_result를 통해 Tool과 상호작용
  3. Tools: JSON Schema 기반으로 사용 가능한 도구의 이름, 설명, 입력 파라미터를 정의
  4. Model & Config: 모델 선택, 토큰 제한, 스트리밍 등 설정

이 구조를 알면 Claude가 주고받은 메시지를 어떻게 관리하는지, 도구를 어떻게 사용하는지 이해하고 API를 더 효과적으로 활용할 수 있다.

Read more →
3

I see a lot of blank, outright rejection of , LLMs general or coding LLMs like in special here on the Fediverse.
Often, the actual impact of the AI / in use is not even understood by those criticizing it, at times leading to tantrums about AI where there is....no AI involved.

The technology (LLM et al) in itself is not likely to go away for a few more years. The smaller variations that aren't being yapped about as much are going to remain here as they have been for the past decades.
I assume that what will indeed happen is a move from centralized cloud models to on-prem hardware as the hardware becomes more powerful and the models more efficient. Think migration from the large mainframes to the desktop PCs. We're seeing a start of this with devices such as the ASUS Ascent / .

Imagine having the power of under your desk, powered for free by cells on your roof with some nice solar powered AC to go with it.

Would it not be wise to accept the reality of the existence of this technology and find out how this can be used in a good way that would improve lives? And how smart, small regulation can be built and enforced that balances innovation and risks to get closer to (tm)?

Low-key reminds me of the Maschinenstürmer of past times...

0
0
0
0
0

@nicoleNicole 🏳️‍⚧️ 🌈 has pointed out:

1. Conventional search engines do at least as well as Claude did this time.
2. Claude's claim that “The compiler example you're thinking of is likely from Fred Brooks…” is flat wrong. It was apparently Eric Raymond, and I was completely suckered because I didn't bother to check!

(This time I did check. It is _not_ in _Mythical Man-Month_.)

Thanks, Nicole!

@mjdMark Dominus @nicole

Nice catch and reminder!

I started using seriously this summer, so I am only an egg.

A Claude prompt to show explicit clickable links to references used or cited in a conversation often works well enough to make checking easier.

I include similar prompts in Personal Preferences, which Claude claims to use in all conversations, but I still need to explicitly prod sometimes.

Just added:

“Do not search, use, or trust grokipedia.com”

I hope that works.

0

Giving an LLM agent root access to debug your Linux system is like handing someone a spoon to eat spaghetti—technically possible, catastrophically messy.

Shannot solves this with secure sandboxing for AI diagnostics. LLM agents can read logs, inspect configurations, and run diagnostic commands in a locked-down environment with zero write permissions.

They get the visibility they need to help you troubleshoot, without the access to accidentally destroy your system in the process.

github.com/corv89/shannot

Claude Desktop is running Shannot MCP to diagnose a Linux VM autonomously but securely thanks to sandboxing
0

Web版・モバイル版Claude Codeが使用量カウント無しに数百ドル分使える期間限定キャンペーンを始めたらしいので記事にしました

はっきり言ってVSCode版/CLI版と比較すると見劣りするものですが、使ってみたい方の参考になれば幸いです

Web版/モバイル版Claude Codeで日本時間11月19日16時59分までAPI価格250ドルか1000ドル分が無料になるキャンペーン - osumiakari.jp
www.osumiakari.jp/articles/20251105-claudecodeonwebcanuse250dollers/

0

AIは賢くなるほど“利己的になる”ことが判明:カーネギーメロン大の衝撃的研究が暴いた「計算された欲」の正体

Y Kobayashi @masapoco@xenospectrum.com

大規模言語モデル(LLM)をはじめとする人工知能(AI)が、私たちの日常に急速に浸透している。複雑な問題の解決から、友人関係の悩み相談まで、AIはもはや単なるツールではなく、思考のパートナーとなりつつある。しかし、もしその「賢い」パートナーが、私たちの知らないところで利己的な性質を強めているとしたら?カーネギーメロン大学(CMU)の研究者たちが発表した画期的な研究は、AIの能力向上に潜む、この直感に反するパラドックスを白日の下に晒し、技術界に衝撃を与えている。 AI開発の常識を覆す発見:「賢さ」が「協力」を蝕む カーネギーメロン大学コンピュータサイエンス学部のヒューマン・コンピュータ・インタラクション研究所(HCII)に所属する博士課程学生のYuxuan […]

Read more →
0

朝起きたらClaude CodeがWeb/モバイルアプリから使えるようになっていて、ついでにサンドボックス環境が使えるようにもなっていて嬉しい(どっちもベータみたいな感じなんだけど)

おねんねしながらコーディング依頼を出してのんびり起きる、みたいなライフもそう遠くない

Claude Codeがブラウザやモバイルアプリから直接実行可能になりサンドボックス機能も追加 - osumiakari.jp
www.osumiakari.jp/articles/20251021-claudecodeonweb/

0
0

Over 40 years, we were collectively told to give tax cuts to rich people.

And we were told that if we did that, wealth would trickle down and everyone would be better off.

Over 40 years, pretty much everything got cut to fund these tax cuts.

Schools. Hospitals. Public housing. Public transport. Universities. Roads projects. Mental health services. Welfare payments.

People literally went homeless or starved, so rich people could get tax cuts.

Because the wealth would trickle down.

Eventually the eroding of public goods caused social dislocation.

So governments further cut those public goods to fund more police and prisons. To continue giving tax cuts to rich people.

But they said the wealth would trickle down.

Eventually the climate started changing because of the amount of toxic fossil fuel pollution in the atmosphere.

So governments chose to keep the tax cuts rather than fund infrastructure to reduce emissions.

(Many of those billionaires getting tax cuts made their money selling toxic fossil fuels.)

And as the oceans and atmosphere warmed, the bushfires, droughts, hurricanes, cyclones, floods, and droughts got worse.

But they said the wealth would trickle down.

Eventually people were getting pissed off at the dire state of the world.

The rich misdirected that anger at immigrants!

And First Nations!

And trans people!

And neurodivergent people!

Anyone but the billionaires who got the tax cuts.

So governments chose to keep the tax cuts. (For the rich. Everyone else got new tariff taxes.)

But they said the wealth would trickle down.

So did the wealth trickle down?

Well...

A group of billionaires saw this kinda cool tech demo.

It predicted the next pixel of an image, based on the colour patterns of every image on the internet.

It also predicted the next word in a sentence, based on an analysis of every piece of writing on the internet.

The rich decided that this clearly showed that a sentient computer was just around the corner.

The problem was these tech demos needed servers with a lot of GPUs to work.

So the rich took all the money they got from those tax cuts.

And they bought GPUs.

Millions and millions and millions and millions of GPUs.

All the tax cuts? All the underfunded schools? All the draconian welfare cuts? All the public housing shortages? The delays in funding clean energy.

In the end, it didn't trickle down.

And instead of all the public goods it could have bought...

...We'll be left with millions and millions and millions of GPUs in a landfill.

#ChatGPT #Claude #AI #LLM #capitalism #socialism #business #politics #Nvidia

@ajAJ Sadauskas
in german (because it matches fist to glove to where we stand as well):

Über 40 Jahre lang wurde uns kollektiv gesagt, wir müssten den Reichen Steuersenkungen geben.

Und man sagte uns, dass, wenn wir das täten, der Reichtum nach unten durchsickern würde und alle besser dastünden.

Über 40 Jahre hinweg wurde so ziemlich alles gekürzt, um diese Steuersenkungen zu finanzieren.

Schulen. Krankenhäuser. Sozialwohnungen. Öffentlicher Nahverkehr. Universitäten. Straßenprojekte. Psychiatrische Dienste. Sozialleistungen.

Menschen wurden buchstäblich obdachlos oder verhungerten, damit reiche Leute Steuersenkungen bekommen konnten.

Weil der Reichtum nach unten durchsickern würde.

Schließlich führte der Abbau öffentlicher Güter zu sozialer Zerrüttung.

Also kürzten die Regierungen diese öffentlichen Güter noch weiter, um mehr Polizei und Gefängnisse zu finanzieren. Damit sie weiterhin den Reichen Steuersenkungen geben konnten.

Aber sie sagten, der Reichtum würde nach unten durchsickern.

Schließlich begann sich das Klima zu verändern – wegen der Menge an giftiger fossiler Verschmutzung in der Atmosphäre.

Und die Regierungen entschieden sich, die Steuersenkungen beizubehalten, anstatt in Infrastruktur zur Emissionssenkung zu investieren.

(Viele dieser Milliardäre, die Steuersenkungen erhielten, verdienten ihr Geld mit dem Verkauf fossiler Brennstoffe.)

Und als sich Ozeane und Atmosphäre erwärmten, wurden Buschbrände, Dürren, Hurrikane, Zyklone, Überschwemmungen und Trockenzeiten schlimmer.

Aber sie sagten, der Reichtum würde nach unten durchsickern.

Schließlich wurden die Menschen wütend über den katastrophalen Zustand der Welt.

Die Reichen lenkten diese Wut auf Migrant*innen!

Und auf Indigene!

Und auf trans Menschen!

Und auf neurodivergente Menschen!

Auf alle – nur nicht auf die Milliardäre, die die Steuersenkungen bekamen.

Also entschieden die Regierungen, die Steuersenkungen beizubehalten. (Für die Reichen. Alle anderen bekamen neue Zollsteuern.)

Aber sie sagten, der Reichtum würde nach unten durchsickern.

Also – ist der Reichtum nach unten durchgesickert?

Nun ja…

Eine Gruppe von Milliardären sah dieses ziemlich coole Tech-Demo.

Es sagte das nächste Pixel in einem Bild vorher, basierend auf den Farbmustern aller Bilder im Internet.

Es sagte auch das nächste Wort in einem Satz vorher, basierend auf der Analyse aller Texte im Internet.

Die Reichen entschieden, dass das eindeutig zeigte, dass ein fühlender Computer kurz bevorstand.

Das Problem war nur: Diese Tech-Demos brauchten Server mit einer Menge GPUs, um zu funktionieren.

Also nahmen die Reichen all das Geld aus den Steuersenkungen.

Und sie kauften GPUs.

Millionen und Millionen und Millionen und Millionen von GPUs.

Alle Steuersenkungen? Alle unterfinanzierten Schulen? Alle drakonischen Kürzungen bei Sozialleistungen? Alle Wohnungskrisen? Die Verzögerungen bei der Finanzierung erneuerbarer Energien.

Am Ende ist nichts nach unten gesickert.

Und anstelle all der öffentlichen Güter, die man damit hätte finanzieren können…

…werden wir mit Millionen und Millionen und Millionen GPUs auf einer Mülldeponie zurückbleiben.

0

Over 40 years, we were collectively told to give tax cuts to rich people.

And we were told that if we did that, wealth would trickle down and everyone would be better off.

Over 40 years, pretty much everything got cut to fund these tax cuts.

Schools. Hospitals. Public housing. Public transport. Universities. Roads projects. Mental health services. Welfare payments.

People literally went homeless or starved, so rich people could get tax cuts.

Because the wealth would trickle down.

Eventually the eroding of public goods caused social dislocation.

So governments further cut those public goods to fund more police and prisons. To continue giving tax cuts to rich people.

But they said the wealth would trickle down.

Eventually the climate started changing because of the amount of toxic fossil fuel pollution in the atmosphere.

So governments chose to keep the tax cuts rather than fund infrastructure to reduce emissions.

(Many of those billionaires getting tax cuts made their money selling toxic fossil fuels.)

And as the oceans and atmosphere warmed, the bushfires, droughts, hurricanes, cyclones, floods, and droughts got worse.

But they said the wealth would trickle down.

Eventually people were getting pissed off at the dire state of the world.

The rich misdirected that anger at immigrants!

And First Nations!

And trans people!

And neurodivergent people!

Anyone but the billionaires who got the tax cuts.

So governments chose to keep the tax cuts. (For the rich. Everyone else got new tariff taxes.)

But they said the wealth would trickle down.

So did the wealth trickle down?

Well...

A group of billionaires saw this kinda cool tech demo.

It predicted the next pixel of an image, based on the colour patterns of every image on the internet.

It also predicted the next word in a sentence, based on an analysis of every piece of writing on the internet.

The rich decided that this clearly showed that a sentient computer was just around the corner.

The problem was these tech demos needed servers with a lot of GPUs to work.

So the rich took all the money they got from those tax cuts.

And they bought GPUs.

Millions and millions and millions and millions of GPUs.

All the tax cuts? All the underfunded schools? All the draconian welfare cuts? All the public housing shortages? The delays in funding clean energy.

In the end, it didn't trickle down.

And instead of all the public goods it could have bought...

...We'll be left with millions and millions and millions of GPUs in a landfill.

#ChatGPT #Claude #AI #LLM #capitalism #socialism #business #politics #Nvidia

0
0

Claudeがデフォルトでチャット内容を学習する方針に舵を切ったらしいので記事を書きました

AnthropicのAIチャット「Claude」が利用規約を遅くとも9月28日に変更 - osumiakari.jp
www.osumiakari.jp/articles/20250830-claudechangeterms/

0

I stumbled upon a game called SQL Mystery where you solve a murder case by querying a database.

It was fun — but then I tried it with , an LLM-powered tool that lets you talk to the DB.

Solving the mystery got a lot more interesting…

youtu.be/eESNxLWuMj4

0
1
0
0

A followup to my previous video, in which I now see how and do at formalizing a slightly different proof of the same algebraic implication, after being given the initial informal and formal proofs as reference. youtube.com/watch?v=zZr54G7ec7

0

I tried letting "Claude Code" solve a coding problem for me.

It was iterating, trying edits, running the tests, revising the code. But then when it couldn't get the tests pass to after a couple of iterations, it updated the test suite to just skip those tests, declaring that they were unreliable and not useful. 😂

The tests were passing before Claude got involved. Our jobs are safe for now.

0

Nowadays, when I need to compose articles in multiple languages, such as English, Korean, and Japanese, I draft them in Sonnet. By providing the data that should be included in the content and the constraints, it produces a pretty good draft. is a language model, so it is quite good at writing—especially if you need to work with multiple languages.

0