プロンプト手法

主語を省略しない。指示語(こそあど)、程度語は具体的に。
指示と素材のセクションを分ける。タスクは分割する。

推論・思考の構造化

LLMの内部推論を制御し論理的飛躍を防ぐ手法。

Chain-of-Thought (CoT)

ステップバイステップで中間的な推論を出力させる 。より複雑な思考が必要な場合、答えに至る思考プロセスを1〜2個例示としてプロンプトに含める。
弱点として間違った方向に進むと修正できない。

※プロンプト
ステップバイステップで考えてください。
論理的に一歩ずつ順を追って説明してください​。

Tree-of-Thoughts (ToT)

複数の解決策を出し、それらを自己評価・選別し、最善の道筋を絞り込む手法。

プロンプト
1.複数の案を出させて思考を枝分かれさせる。
2.各案の欠点や利点を評価させる。
3.評価の高い案での思考を前進させる。
​4.全ての案を俯瞰して合理的な結論をださせる。

Graph-of-Thoughts (GoT)

思考をノード、関係性をエッジとしてグラフ構造化。複数の思考を統合したり再利用したりする 。ToTの進化版。

※プロンプト
1.複数の案を出させて思考を枝分かれさせる。
2.各案の欠点や利点を評価させる。
3.各案を相互の関係性(トレードオフや依存関係)を評価させる。
4.統合した案はステップ2から欠点や利点を評価させる。
5.評価の高い案での思考を前進させる。
​6.全ての案を俯瞰して合理的な結論をださせる。

​終了条件

※反復回数の明示
このプロセス(統合と再評価)は最大2回まで繰り返してください
※収束条件の設定(理論的なBreak)
評価スコアが全ての項目で4以上になったら終了してください
前回案と比較して改善点が見当たらない場合は結論を出してください
※ステップの直列化(Sequential Pipeline)
ステップをあらかじめ分散→統合→最終修正のように固定する。

Skeleton-of-Thought (SoT)

回答の骨組みを先に作らせ、その各項目を並列で埋めさせることで生成速度と構造化を両立する 。

※プロンプト​
まずアウトラインや箇条書きのポイントなどを生成。
それぞれを別のプロンプトで並列に実行。

Step-Back Prompting

具体的な問題から一歩引いて背後にある一般原理や概念を先に特定させてから回答させる 。そもそも何を目指しているのかという原則に立ち返ることで、ハルシネーションを抑制し精度を大幅に高めることができます

※プロンプト
​いきなりどうすればいい。ではなく基本的な仕組みは?原則は?と質問し、その答えを踏まえてどうすればいいか確認する。

精度の自己向上・検証

AIに自身の出力を検証・修正させ、回答の信頼性を高める手法。

Self-Consistency

同じ問題に対して複数の推論パスを実行し、最も多い回答を最終解とする(多数決)。複数の異なる推論をさせると、正しい答えは一致しやすく、間違いはバラバラになりやすいという特徴がある。

Chain-of-Verification (CoVe)

回答を生成した後、その回答に含まれる事実を確認するための質問を自ら作成し、検証した上で最終回答を修正する 。
1.回答を生成させる。
2.最初の回答が正しいか​確認するために検証用に自問自答させる。
3.最初の回答と自問自答を照合し、最終的な回答にする。

Self-Ask

複雑な質問に対し自分への追加の質問を繰り返し行い、その答えを積み上げて最終回答を導く 。

Reflexion

失敗やエラー結果をフィードバックとして受け取り、次の試行で修正する反復プロセス 。

動的コンテキストと外部連携

静的なプロンプトではなく、外部情報やツールと動的にやり取りする手法。

ReAct (Reason + Act)

思考と行動のループ。外部ツールの結果を観察して次の思考へ繋げる 。

RAG (Retrieval-Augmented Generation)

外部知識を検索し、プロンプトのコンテキストとして注入する 。

Automatic Reasoning and Tool-use (ART)

タスクに最適なツールを自動的に選択し、推論プロセスに組み込む 。

Prompt Chaining

タスクをサブタスクに分割し、Aの出力をBの入力にするパイプラインを組む 。

プロンプトのメタ最適化

プロンプトそのものを生成・評価・最適化するための手法。

Meta-Prompting

プロンプトの書き方や構造そのものをAIに定義させる、あるいはプロンプトを生成するためのプロンプト 。

APE (Automatic Prompt Engineer)

多数のプロンプト候補をAIに生成させ、テストデータに対するスコアが最も高いものを自動選択する 。

DSPy (Declarative Self-improving Language Programs)

プロンプトを文字列ではなく、最適化可能なプログラムのシグネチャとして記述し、自動で最適なプロンプトやデモンストレーション(Few-shot例)をコンパイルする 。

制御とフォーマット

出力の質や形式を厳密に制御する手法。

Few-shot / One-shot / Zero-shot

例示の数による学習制御 。

Rephrase and Respond (RaR)

AIにユーザーの質問をより理解しやすい形に「言い換え」させてから回答させる 。

Flipped Interaction

AIに先に質問をさせ、ユーザーがそれに答えることで必要な情報を揃えてからタスクを実行する 。

Temperature

0.0-0.3 決定的(正確性重視)
0.7-1.0 標準
1.2-1.5 ランダム・創造的

DockerDesktop + Dify

今回はローカルにDify環境を構築

インストール

DockerDesktopインストール
https://www.docker.com/ja-jp/get-started/

クローン
git clone –branch 1.11.1 https://github.com/langgenius/dify.git

cd dify\docker

環境設定
copy .env.example .env

起動
docker compose up -d

※ここまで実行して、アクセスできなかった。

トラブルシューティング

docker compose ps
全てのコンテナがupかどうか。

ポート競合しているようだった。
.env
を編集し、
EXPOSE_NGINX_PORT=8080
と変更する。

再起動
docker compose down
docker compose up -d

アクセス
http://localhost:8080/

これでOK

GeminiCLI インストール

今回はVSCodeのターミナルで利用予定

Node バージョンアップ

node -v
npm -v

https://nodejs.org/ja/download
からダウンロード、インストールする。

npmバージョンアップ
npm install -g npm@latest
※nodeのインストールでもnpmは更新されるが最新にはならない。

GeminiCLIインストール

npm install -g @google/gemini-cli

gemini -v

初期設定

gemini

・Do you want to connect VS Code to GeminiCLI?
>1. Yes

※Failed to install VS Code companion extension. Please try installing ‘GeminiCLI Companion’ manually from the VS Code extension marketplace.
となったので後ほど個別でインストール

・How would you like to authenticate for this project?
>1. Login with Google

※ChromeからGoogleアカウントでログインして完了

GeminiCLI Companion

VSCodeにインストールすることで、開いているファイルや選択範囲を自動認識。VS Codeネイティブの差分ビューで確認・承認。コマンドパレットからGeminCLIを起動可能。IDE経由で直感的にファイル編集を提案。など可能になる。

弥生会計NW バックアップエラー

事業所データの圧縮中にエラーが発生しました。
ユーザー名またはパスワードが正しくありません。
と表示された。

クライアントPCに、SQLServerのバックアップ共有フォルダの認証情報を登録してないのが原因だろうと気付いたが、ホスト名が必要でIPアドレスではダメという部分につまづいた。

Flutter HelloWorld

初回インストール

VSCodeでFlutter拡張機能をインストール。

Ctrl+Shift+P>Flutter: New Project>Download SDK
をクリック。

Add SDK to PATH
をクリック。

使用状況などを送信する旨が表示されるので、
OKをクリック。

※無効化する場合
dart –disable-analytics

通常プロジェクト作成

Ctrl+Shift+P>Flutter: New Project
ここでプロジェクトの種類が選べる。

実行

右下でデバイスを選ぶ。
メニュー>実行>デバックの開始

デプロイ

Chromeで開発用に起動(ホットリロード)
flutter run -d chrome

本番用ビルド
flutter build web –release

WebAssembly(実験的)
flutter run -d chrome –wasm

サーバーのみ起動
flutter run -d web-server

launch.json

version:変更不要
name:任意
request:launch、attach(すでに動いているプロセスに接続)
type:dart、chrome(サーバーは起動しない)など。どのデバッガーを使うか。
deviceId:chrome、windowsなど。どのデバイスを使うか。

{
    “version”: “0.2.0”,
    “configurations”: [
        {
            “name”: “Flutter (Chrome)”,
            “request”: “launch”,
            “type”: “dart”,
            “deviceId”: “chrome”
        }
    ]
}

起動が遅くなったプログラムの調査(.NET/SQLServer)

社内で利用しているのソフトの起動が遅くなった。ソースや詳細な仕様は手元になくSQLServer+.NETということと、サーバーへのアクセス情報だけ。

最初に表示される軽量なログイン画面の表示が遅い。ただ、ソフトを終了後、すぐに起動すると遅くならなかったりもする、維持が数秒と短いのでDBではなく、SMB+NTLMあたりが怪しい。

Process Monitor

https://learn.microsoft.com/ja-jp/sysinternals/downloads/procmon

Filter>Filter
ProcessName | Contains | xxx | Include
Add>OK

これでどのIOが遅いか明確につかめる場合もあるけど、今回はプログラムの中の処理で時間がかかっているようだった。

ILSpy

https://github.com/icsharpcode/ILSpy/releases

プログラムを開いたらエントリポイントを探す。
起動プロセスの中で、社内共有フォルダ(IPアドレス指定)にアクセス、SQLServerに接続をしていることがわかった。

これで名前解決は関係ないと分かる。

TCPView

https://learn.microsoft.com/ja-jp/sysinternals/downloads/tcpview

検索ボックスにプログラム名(または接続先IPアドレス)を入力し、プログラムを起動。接続が確立されるのはDBのみ。またタイミングからやはり共有フォルダが怪しいとなる。

どのタイミングで時間がかかっているか見づらいのでWiresharkを利用。

Wireshark

https://www.wireshark.org/

キャプチャ>開始
フィルタに
ip.src==192.168.1.xxx && ip.dst==192.168.2.xxx || ip.dst==192.168.1.xxx
このように入力した。

これで共有フォルダにアクセスにしているときが遅いことが分かった。

その他

その他に実施したこと。

・クライアント/サーバーのFirewall停止→効果無し。
・クライアント/サーバーで修復系コマンド実施→効果無し。
・該当のアドレスにpingを送信して時間確認。
・該当のアドレスのSQLSserverに接続して時間確認。
・該当のアドレスへの送信をFirewallでふさぐ→効果無し。
・ネットワーク系のキャッシュリセット→効果無し。
・ネットワーク セキュリティ: LAN Manager 認証レベルを変更→効果無し。
・ログ確認(eventvwr)
アプリケーションとサービスログ>Microsoft>Windows>SMBClient
アプリケーションとサービスログ>Microsoft>Windows>NTLM

最終的に、

gpedit.msc>コンピュータの構成>管理用テンプレート>ネットワーク>Lanmanワークステーション>暗号化が必要:無効

で解決することが判明した。

※追記

起動プロセスの中で存在しないIPアドレスへのアクセスがあり、こちらもボトルネックになっているようなので遮断することに。

Win+R>hdwwiz
一覧からインストール
ネットワークアダプター
Microsoft / Microsoft KM-TEST Loopback Adapter
Win+R>ncpa.cpl
IPv4>プロパティ
192.168.x.x / 255.255.255.255

 

YAMAHA RTX1210 拠点間接続

A拠点が固定IP、B拠点が動的環境。

B拠点(動的側)

実行前

IPsecに関する設定

GUI>簡単設定>VPN>拠点間接続>新規>IPSec
次へ

●ネットワーク環境:
接続先のみ固定のグローバルアドレスまたはネットボランチDNSホスト名を持っている

●自分側の設定
・設定名:任意
・自分側のID:test-branch(管理しやすい文字列)

●接続先の情報
・接続先のホスト名またはIPアドレス:A拠点のIPアドレス

●接続先と合わせる設定
・認証鍵:任意(大小英数字で20文字程度)
・認証アルゴリズム:HMAC-SHA(初期値そのまま)
・暗号アルゴリズム:AES-CBC(初期値そのまま)
次へ

経路に関する設定

・接続先のLAN側アドレス
192.168.1.0/255.255.255.0
次へ

実行後

A拠点(固定IP側)

IPsecに関する設定

GUI>簡単設定>VPN>拠点間接続>新規>IPSec
次へ

●ネットワーク環境:
自分側のみ固定のグローバルアドレスまたはネットボランチDNSホスト名を持っている

●自分側の設定
・設定名:任意

●接続先の情報
・接続先のID:test-branch(管理しやすい文字列)

●接続先と合わせる設定
・認証鍵:任意(大小英数字で20文字程度)
・認証アルゴリズム:HMAC-SHA(初期値そのまま)
・暗号アルゴリズム:AES-CBC(初期値そのまま)
次へ

経路に関する設定

経路を設定しない
次へ

PPPoE/CGNAT

・PPPoE(従来IPv4)

CPEにグローバルのIPv4が割り当てられる。CPEでNAPT44を行う。
任意ポート解放、着信が可能。

※NAPT44
IPv4アドレスとTCP/UDPのポート番号の両方を変換して、複数の内部IPv4ホストが1つの外部IPv4アドレスを同時共有できるようにするアドレス・ポート変換方式

・MAP‑E(v6プラス等)

CPEでNAPT44を行い、そのIPv4パケットをIPv6でカプセル化して事業者網へ送る。(IPv4overIPv6)
契約者ごとに割り当てられたIPv4アドレス+固定ポート範囲を加入者にマッピングして分離する。
理論上、任意ポートの解放、着信は可能だけど実装上は不可能。
※NUROはこの方式に移行中。

・DS‑Lite(transix等)

CPEからIPv4をIPv6にカプセル化してAFTRへ運び、AFTRでCGNAT(NAT44)する。(二重NATではない)
任意ポート解放、着信は不可。
※AFTRはISPのトンネル終端兼NAT装置。

・CGNAT

CPEの外側にISPでもう一度NATが入りIPv4を共有する(NAT444)
任意ポート解放、着信は不可。
※一般的なモバイル回線。

Graylog VSCode Copilot(MCP)

●Node更新

node -v
npm -v

https://nodejs.org/ja/download
からダウンロード、インストールする。

●GrayLogMCPインストール

https://github.com/lcaliani/graylog-mcp/releases/tag/0.1.0
からダウンロード、解凍する。

cd C:\Users\xxx\Documents\graylog-mcp
npm install

●VSCode

設定から
chat.mcp.access
が有効になっているか確認

コマンドパレットから
>MCP: Add Server
>コマンド(stdio)
>C:\Users\xxx\Documents\graylog-mcp\src\index.js

●トークン取得

System>Users and Teams>More>Edit tokens
トークン名と有効期限を入力
>Create Token

●mcp.json編集

 

Arcserve Backupメモ

●ソフトの種類

・Arcserve Backup

Arcserve Backup本体

・Arcserve Backup マネージャ

管理業務全般を行う管理用画面

・マネージャ

Arcserve製品群全体の管理

●Arcserve Backup

・ジョブステータスマネージャ

登録されているジョブ一覧管理

・バックアップマネージャ

バックアップジョブの新規作成・設定・実行

・アーカイブマネージャ

ファイルやフォルダなどデータの長期保管用ジョブの設定・管理

・リストアマネージャ

バックアップ済みデータの復旧

・サーバ管理

サーバ管理機能

・Dashboard

運用状況をレポート形式で可視化

・Infrastructure Visualization

構成を図式化しバックアップステータスや相互関係を視覚

●ドメイン

Arcserve Backup独自の管理単位であり、
1つのプライマリサーバと、複数のメンバサーバ(バックアップ対象サーバ)を登録する。

●削除

バックアップマネージャ>