「値は計算されていた。ただ届いていなかっただけ」— LLMエージェントプロンプトのハードコード問題

TL;DR 自律型トレーディングシステムで、投資目標の進捗に応じてリスクパラメータを動的に調整する機能を実装した。計算ロジックは正しく動いていたが、計算結果がエージェントのプロンプトに届いていなかった。プロンプト内の数値がプレーンテキストでハードコードされていたため、エージェントは常に保守的な固定値に従い続けていた。 背景 trader は日本株・ビットコインの自律型トレーディングシステムで、Claude をマルチエージェントとして使い、日次の投資提案を生成する。 システムには安全規約があり、エクスポージャー上限(60%)や現金比率下限(30%)などのリスクパラメータが定義されている。投資目標(goal)システムを導入し、目標への進捗ペースに応じてこれらのパラメータを動的に調整する機能を実装した。 何が起きたか 期待していた動作 1 2 3 goal 評価: behind(目標に遅れている) → AdjustmentProposal: exposure_limit=70%, cash_ratio_min=20% → エージェント: 「エクスポージャー70%以内、現金比率20%以上」で提案作成 実際の動作 1 2 3 goal 評価: behind(目標に遅れている) → AdjustmentProposal: exposure_limit=70%, cash_ratio_min=20% → エージェント: 「エクスポージャー60%以内、現金比率30%以上」で提案作成 ← 固定値のまま! goal の評価は正しく行われ、propose_adjustment() は適切な調整値を返していた。しかしエージェントが参照するプロンプトには、値がハードコードされていた: 1 2 3 <!-- portfolio.md --> - 総エクスポージャー60%以内 - 現金比率30%以上を維持 一方、同じプロンプト内の max_position_pct(1取引あたりポジション上限)は既にテンプレート変数化されていた: ...

2026年3月27日 · 2 分

Anthropic の3エージェント・ハーネス設計: Claude が6時間でフルアプリを自律構築する仕組み

Anthropic の研究者 Prithvi Rajasekaran 氏が、Claude を使ってフルスタックアプリケーションを自律的に構築する「3エージェント・ハーネス」アーキテクチャを公開しました。人間の介入なしに6時間でプレイ可能なゲームエディタを完成させた事例とともに、その設計思想を解説します。 「ハーネス設計」とは何か 「ハーネス(harness)」とは、AI モデルを単体で走らせるのではなく、モデルの外側に構築する制御構造・オーケストレーションロジック全体を指します。具体的には、どのエージェントがどの順番で何を担当するか(役割分離)、エージェント間でどう情報をやり取りするか(契約の交渉)、いつ次に進みいつやり直すか(判定ループ)、何を使ってテストするか(ツール選択)といった設計要素が含まれます。 モデル自体の性能向上とは別の軸で、この制御層をどう設計するかが自律開発の品質を左右します。 背景: AI は自分に甘すぎる このアーキテクチャが生まれた核心的な課題は、AI モデルが自分の出力に対して甘い評価をしがちであるという点です。 「自分が生成した成果物を評価させると、エージェントは自信を持ってそれを称賛する傾向がある —— 人間の目から見れば明らかに品質が低い場合でさえ」(Rajasekaran 氏) この問題は、デザインのような正解/不正解が明確でない領域で特に顕著です。コードにおいても、理論上は正しさを検証できるはずですが、AI エージェントは自分のエラーをスルーしてしまいがちです。 解決策として採用されたのが、GAN(Generative Adversarial Network: 敵対的生成ネットワーク)に着想を得た分離アプローチ —— 「作る役割」と「評価する役割」を完全に分けるという設計です。 3エージェント・アーキテクチャ 最終的に構築されたハーネスは、以下の3つの専門エージェントで構成されるアーキテクチャになっています。 エージェント 役割 Planner 1〜4文のアイデアを完全な製品仕様に展開 Generator 機能ごとにスプリント方式で実装 Evaluator 実行中のアプリを Playwright でテスト・採点 flowchart TD A["ユーザー\n1〜4文のアイデア"] --> B["Planner\n製品仕様に自動展開"] B --> C["スプリント契約の交渉\n終了条件の事前合意"] C --> D["Generator\nReact/Vite/FastAPI で実装"] D --> E["Evaluator\nPlaywright MCP で実アプリテスト"] E -->|"採点: 製品深さ・機能性\nデザイン・コード品質"| F{合格?} F -->|"不合格\nバグ報告 + 改善指示"| D F -->|"合格"| G{次のスプリント?} G -->|"あり"| C G -->|"なし"| H["完成アプリ"] Planner: 仕様の自動展開 初期バージョンでは、生のプロンプトを渡すとモデルがタスクを過小評価する問題がありました。十分に考える前にビルドを開始してしまい、機能の薄いアプリが生成されていたのです。Planner はこの問題を解決するために追加されたエージェントで、短いアイデアを詳細な製品仕様に自動展開します。 ...

2026年3月27日 · 2 分

OpenClaw で YouTube 運用を全自動化? 「月1000万円」の主張を技術的に検証する

「1ヶ月後のYouTubeはOpenClawが全て運用し『月1000万円』収益を上げるアカウントが大量発生する」——こんな投稿が X(旧 Twitter)で話題になっています。本当にそこまでできるのか、OpenClaw の技術的な能力と YouTube 運用の現実を照らし合わせて検証します。 元の主張の要約 X ユーザー @gagarot200 の投稿では、以下のような主張がなされています: 海外では既に 2000 万円を稼いでいるケースがある 勝負のポイントは編集技術ではなく「企画設計」「視聴維持率」「CTR改善」「投稿導線の最適化」 OpenClaw で競合分析→台本生成→素材選定→動画編集→サムネイル量産→投稿→数値分析を一気通貫で回せる 個人でもチーム運用レベルの全自動化が可能 OpenClaw とは OpenClaw は、GitHub で 34 万スター以上を獲得しているオープンソースの AI エージェントフレームワークです。ローカルマシン上で動作し、ブラウザ操作・ファイル読み書き・シェルコマンド実行・cron ジョブなどを自律的に実行できます。WhatsApp、Telegram、Slack、Discord など多数のメッセージングプラットフォームに対応しています。 技術的に「できること」と「できないこと」 OpenClaw で実現可能な部分 OpenClaw の Skills(プラグイン)機能とブラウザ自動化を組み合わせると、以下のタスクは技術的に実現可能です: タスク 実現方法 実用度 競合チャンネル分析 YouTube Data API + ブラウザスクレイピング ◎ 台本生成 LLM による構成生成 ◎ サムネイル量産 画像生成 AI + テンプレート自動適用 ○ 投稿スケジューリング YouTube Data API / ブラウザ自動化 ○ 数値分析・レポート YouTube Analytics API からのデータ取得・分析 ◎ CTR / 視聴維持率の改善提案 分析データを LLM にフィードバック ○ 現状では難しい部分 一方で、以下の部分には大きなハードルがあります: ...

2026年3月27日 · 2 分

opencli-rs: Rust製の爆速Webスクレイピングツールで55以上のサイトをCLI化する

opencli-rs は、55以上の主要サイトに対応したRust製のCLIツールです。サイトごとにAPIやスクレイピング方法が異なる煩雑さを解消し、1つのコマンドで各プラットフォームの情報を取得できます。 opencli-rs とは opencli-rs は、元々TypeScriptで実装されていた OpenCLI をRustで完全に書き直したツールです。X (Twitter)、YouTube、Reddit、Hacker News、Bilibili、Zhihu、Xiaohongshu(小紅書)など多数のプラットフォームに対応しています。Chromeのログインセッションを再利用するため、APIキーなしでデータを取得できます。 出力形式はテーブル、JSON、YAML、CSV、Markdownに対応しており、用途に応じて使い分けが可能です。また、Electronベースのデスクトップアプリをコマンドラインから制御する機能も備えており、GUIアプリの操作をスクリプト化できます。 主な特徴 処理速度が最大12倍に向上 — TypeScript版と比較して大幅な高速化(例: Bilibili Hot の取得が20.1秒から1.66秒に) メモリ使用量を10分の1に削減 — 95-99MBから9-15MBへ シングルバイナリで動作 — わずか4.7MB、追加のランタイム不要でどの環境にも導入可能 インストール インストールスクリプトが用意されており、システムとアーキテクチャを自動検出してバイナリをダウンロードします。 1 curl -fsSL https://raw.githubusercontent.com/nashsu/opencli-rs/main/scripts/install.sh | sh Rustの開発環境がある場合はソースからビルドすることもできます。 1 2 3 git clone https://github.com/nashsu/opencli-rs.git cd opencli-rs cargo build --release AIエージェントとの連携 opencli-rs はAIエージェントとの連携を前提に設計されています。Claude Code や Cursor などに組み込むことで、「Hacker Newsのトップ記事を取得して要約する」「競合のX投稿を定期的にチェックする」といったWeb情報収集の自動化が可能です。 AIエージェント向けのスキルパッケージ opencli-rs-skill も提供されています。 1 npx skills add https://github.com/nashsu/opencli-rs-skill これにより、AIエージェントが AGENT.md や .cursorrules の設定を通じて利用可能なツールを自動的に検出し、自然言語でWebスクレイピングを実行できるようになります。 ...

2026年3月27日 · 1 分

Prompt Engineering から Harness Engineering へ: AI エンジニアリングの進化と「仕組みの設計力」の時代

AI エンジニアリングの中心概念が急速に変化している。2022年の「Prompt Engineering」から2025年の「Context Engineering」を経て、2026年は「Harness Engineering」の年になった。Anthropic、OpenAI、そして Martin Fowler まで、業界のキープレイヤーが揃ってこの概念を公式に取り上げている。 3つの時代: プロンプトからハーネスへ Prompt Engineering(2022〜) ChatGPT の登場とともに広まった最初のパラダイム。LLM に対してどんな言葉で指示するかが品質を左右する、という考え方だ。Few-shot、Chain-of-Thought、Role Prompting といったテクニックが次々と開発された。 焦点は「1回のリクエストにおける入力テキストの最適化」にあった。 Context Engineering(2025〜) 2025年中盤、Shopify CEO の Tobi Lutke が X への投稿をきっかけに「Context Engineering」という用語が急速に広まった。LangChain や Anthropic も相次いで解説記事を公開し、業界標準の概念として定着した。 Prompt Engineering が「何を言うか」に注目していたのに対し、Context Engineering は**「LLM に何を見せるか」を動的に制御するシステム**を設計する。RAG(Retrieval-Augmented Generation)、ツール呼び出し、メモリ管理など、LLM の入力コンテキスト全体をエンジニアリングの対象とする発想だ。 Harness Engineering(2026〜) 2026年に入り、AI エージェントの実用化が本格化するなかで、Context Engineering をさらに拡張した「Harness Engineering」が登場した。 Context Engineering が「LLM に何を見せるか」を扱うのに対し、Harness Engineering はエージェントの実行環境全体 —— 役割分担、フィードバックループ、品質検証、セッション管理まで含めた制御構造を設計する。 「ハーネス(harness)」は馬具の意味で、強力な馬(= AI モデル)を制御し、安定した成果を引き出すための仕組み全体を指す。 業界キープレイヤーの動き OpenAI: Codex チームの実践(2026年2月) OpenAI は2026年2月、公式ブログで「Harness engineering: leveraging Codex in an agent-first world」を公開した。 ...

2026年3月27日 · 2 分

PyPI公式パッケージ telnyx がサプライチェーン攻撃で汚染 — TeamPCPによるWAVステガノグラフィ攻撃の全容

サプライチェーン攻撃とは、ソフトウェアの開発・配布の過程(サプライチェーン)に侵入し、正規のパッケージやツールに悪意あるコードを混入させる攻撃手法です。開発者が信頼して利用しているライブラリが攻撃の入口になるため、通常のセキュリティ対策では気づきにくいのが特徴です。 2026年3月27日、PyPIで月間74万ダウンロードを誇る通信プラットフォーム Telnyx の公式 Python SDK(telnyx)が、まさにこのサプライチェーン攻撃によって汚染されました。攻撃者グループ TeamPCP が悪意あるバージョン 4.87.1 および 4.87.2 を公開しました。これらは import するだけでマルウェアが実行される極めて危険なものです。 何が起きたのか タイムライン 2026年3月27日 03:51 UTC — 悪意あるバージョン 4.87.1 と 4.87.2 が PyPI に公開 同日 10:13 UTC — PyPI によって当該バージョンが隔離(quarantine) 約6時間にわたり、pip install telnyx を実行したユーザーは悪意あるバージョンをインストールする可能性がありました。 攻撃の仕組み 悪意あるコードは telnyx/_client.py に注入されていました。パッケージを import するだけで自動実行される仕組みです。攻撃は以下の手順で進行します: 初期実行: import telnyx だけでマルウェアコードが発動 ペイロード取得: リモートサーバーから WAV 音声ファイルをダウンロード ステガノグラフィ(データを別のファイルに隠す技術): WAV ファイルのオーディオフレーム内に実行ファイルが埋め込まれている 環境別の挙動: Windows: 永続的な実行ファイルをドロップ Linux/macOS: クレデンシャル(認証情報)を窃取 WAV ファイル内に実行ファイルを隠すステガノグラフィ手法は、通常のセキュリティスキャンやウイルス対策ソフトでは検出が困難です。音声ファイルという無害に見えるファイル形式を悪用している点が巧妙です。 TeamPCP のサプライチェーン攻撃キャンペーン 今回の telnyx 攻撃は単独の事件ではありません。TeamPCP は2026年3月20日以降、以下のような連鎖的なサプライチェーン攻撃を展開しています: 対象 種別 影響 Trivy セキュリティスキャナー CI/CD クレデンシャルの窃取 Checkmarx (KICS) セキュリティツール 同上 LiteLLM AI/LLM プロキシ 認証情報の窃取 telnyx 通信 API SDK クレデンシャル窃取 + マルウェアドロップ 攻撃パターンは一貫しています: ...

2026年3月27日 · 2 分

AI疲れへのアンサー: Claude Code のハーネス機能は本当に必要か

「AI疲れ」という言葉が広がる中、Claude Code のハーネス機能(Skill, Agent, MCP, Memory)は不要であり、シンプルな CLI で十分だという主張が話題になっている。この議論の論点を整理し、実際の開発現場での実用性を考察する。 話題の発端 Kai Aoki 氏(@kaixaoki)が X で投稿した「AI疲れしてる各位に贈るアンサー」が注目を集めた(2026年3月時点で 531 いいね、462 ブックマーク、約9.8万表示)。 主張は以下の4点: ドキュメントが全て — コードや設定よりもドキュメントが最重要 Skill, Agent, MCP, Memory 全て不要 — CLI で解決可能 ハーネス独自機能は全て不要 — 物理マシン/VM で隔離せよ 賢いモデルがいずれ全てを解決する — 機能追加より待つべき さらに「特に Claude Code はハーネスを複雑化してロックインし、虚業を生み出しているので Evil」と結論づけている。 各論点の検討 ドキュメントが全て これは多くの開発者が同意できる主張だ。CLAUDE.md や README に適切な情報を書いておけば、AI エージェントは文脈を理解して適切に動作する。実際、Claude Code の公式ドキュメントでも「CLAUDE.md に何を書くか」が最も重要な設定項目として紹介されている。 ただし、ドキュメントだけでは解決しづらい課題もある。繰り返しのワークフロー自動化や、外部サービスとの連携は、仕組みとして定義した方が効率的なケースがある。 Skill/Agent/MCP/Memory は不要か シンプルな使い方なら不要というのは正しい。1ファイルのバグ修正やコードレビューに Skill や Agent は必要ない。 一方、以下のようなケースではこれらの機能が実用的な価値を持つ: Skill: 定型作業(ブログ記事作成、PR レビュー、デプロイ手順)を毎回説明する手間を省く Agent: 並列タスク実行(ファクトチェックと SEO 分析の同時実行など) MCP: 外部 API やデータベースへのアクセスを安全に管理する Memory: プロジェクト固有の慣習やユーザーの好みを会話をまたいで保持する 要は「必要な人には必要、不要な人には不要」という当たり前の結論になる。問題は、これらの機能がオプトインであるかどうかだ。Claude Code ではいずれも使わなければ存在しないのと同じであり、強制されるものではない。 ...

2026年3月26日 · 1 分

AWS DMS Serverless の OOM 障害と監視の盲点 — 検知漏れの根本原因と対策

AWS DMS Serverless Replication(CDC モード)が OOM(Out of Memory)で failed 状態になり、自動再起動の仕組みが検知できずに長期間停止していた問題について、根本原因と対策をまとめます。 構成 RDS (MySQL) → DMS Serverless (CDC) → S3 (Parquet) DMS Serverless Replication で全テーブルの CDC(Change Data Capture)を実行 S3 に Parquet 形式で日付パーティション付きで出力 EventBridge + Lambda で DMS 停止を検知し自動再起動する仕組みを構築済み 発生した事象 症状 prod 環境の DMS Serverless Replication が failed 状態で停止 エラーメッセージ: Replication out of memory. Stop Reason FATAL_ERROR Error Level FATAL CDC が完全に停止し、S3 へのデータ同期が止まっていた 発覚の経緯 手動確認で発見。自動再起動 Lambda の最終実行は約2ヶ月前で、それ以降は検知されていなかった。 根本原因 原因 1: EventBridge ルールのイベントパターンが不完全 自動再起動用の EventBridge ルールが REPLICATION_TASK_STOPPED のみを監視していた。 ...

2026年3月26日 · 3 分

Claude Code で Laravel→Django 全自動移行をやってみた(1/3)計画編

業務管理システム(PHP/Laravel 6.20)を Python/Django 4.2 に移行するプロジェクトを、Claude Code の自律実行でほぼ全自動で完遂しました。 移行元: Laravel 6.20 / PHP 8.0 / MySQL 5.7 / Blade テンプレート 移行先: Django 4.2 LTS / Python 3.11+ / MySQL 8.0 / Django Templates 所要時間: 約 5.5 時間(準備フェーズ除く) 成果物: 17 モデル / 50+ テンプレート / 199 テスト / 15,000 行の Python コード 本記事は 3 部構成です。 計画編(本記事)— なぜやったか、どう計画したか 自動化基盤編 — Claude Code を自律実行させるフレームワークの設計 実行結果・教訓編 — 実際に何が起きたか、次回への教訓 プロジェクトの背景 移行対象は、ある業種特化の業務管理システムです。契約管理・マスタ管理・CSV インポート・Excel エクスポート・月次締処理・外部サービス連携(OAuth2 / REST / GraphQL)など、典型的な業務アプリの機能を一通り備えています。 ...

2026年3月26日 · 3 分

Claude Code で Laravel→Django 全自動移行をやってみた(2/3)自動化基盤編

前回の計画編では、移行の方針とフェーズ設計を紹介しました。本記事では、計画を実際に自律実行するためのフレームワーク設計を解説します。 全体アーキテクチャ 自律移行の仕組みは、大きく 3 つのレイヤーで構成されています。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ┌─────────────────────────────────────────────────────┐ │ オーケストレーション層: run-issue.sh │ │ - Issue 読み込み → ブランチ作成 → Claude 起動 │ │ - リトライ → Push → PR 作成 → マージ → Issue 閉じ │ └──────────────────┬──────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────┐ │ 実行層: Claude Code (claude -p) │ │ - ソースコード調査 → 設計 → 実装 → テスト │ │ - コミット(push はしない) │ │ - サブエージェント: explorer / architect / reviewer│ └──────────────────┬──────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────┐ │ 品質保証層: Hooks + CI + verify-phase.sh │ │ - Pre-commit: ruff format + check │ │ - PostToolUse: 編集時の即座リント │ │ - CI: lint → Django check → pytest │ │ - Phase 検証: ファイル存在 + 機能チェック │ └─────────────────────────────────────────────────────┘ 責務分離の原則 最も重要な設計原則は、ワークフロー制御と実装作業の責務分離です。 ...

2026年3月26日 · 5 分