登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

検索結果 便利作業
便利作業 コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
便利作業 を含む検索結果
何事もなかったかのように更新を再開します。雪が降ってきてますうううう寒い! 除雪作業のことを石川県では雪すかしと言いますよね。これが方言だって知りませんでした…。 #除雪# #雪すかし# #便利屋# #便利作業# #方言#
もっと見る
農作業や家庭菜園にも便利! 作物が健康に育つための環境を整えたり、発育や収穫時期の管理にご使用いただける測定器をご用意しています。 #シンワ測定 #農作業# #管理#
もっと見る
# Claude Agent SDKの便利だけど知られていない機能 🌍 エージェントの作業ディレクトリ外のファイルにもアクセスを許可できる additionalDirectories オプションをご紹介します。 モノレポや共有ライブラリなど、複数ディレクトリにまたがるプロジェクトで威力を発揮します。 📌 タイトル:作業ディレクトリ外への追加アクセス許可 🔗 URL: 🧩 概要 `additionalDirectories` は `query()` のオプションで、エージェントが作業ディレクトリ(cwd)以外のパスにアクセスすることを許可する機能です。通常、エージェントは cwd 内のファイルのみを操作できますが、このオプションで追加のディレクトリを指定すると、そのパス内のファイルも読み書きできるようになります。`acceptEdits` パーミッションモードでは、追加ディレクトリ内の編集も自動承認されます。モノレポの別パッケージや共有ライブラリのディレクトリにアクセスする場合に特に有用です。 🛠 使い方 `query()` のオプションに `add_dirs`(TypeScript では `additionalDirectories`)を渡します。 ```python from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage # モノレポ内の複数パッケージにアクセスを許可 async for message in query( prompt="Update the shared utility functions and fix the imports in the web app", options=ClaudeAgentOptions( # cwd はデフォルトでプロセスの現在ディレクトリ add_dirs=[ "/path/to/monorepo/packages/shared-utils", "/path/to/monorepo/packages/web-app", ], permission_mode="acceptEdits", # 追加ディレクトリ内の編集も自動承認 allowed_tools=["Read", "Edit", "Write", "Grep", "Glob"], ), ): if isinstance(message, ResultMessage) and message.subtype == "success": print(message.result) # 共有ライブラリとメインプロジェクトを同時に操作 async for message in query( prompt="Check the shared library API and update our integration code", options=ClaudeAgentOptions( add_dirs=[ "/path/to/shared-library", ], allowed_tools=["Read", "Edit", "Grep", "Glob"], ), ): if isinstance(message, ResultMessage) and message.subtype == "success": print(message.result) ``` 🏗 本番システムへの組み込み方 ・モノレポ構成では、関連するパッケージのパスを `add_dirs` に列挙することで、パッケージ間の依存関係を考慮した変更が可能になります ・`acceptEdits` モードと組み合わせると、追加ディレクトリ内のファイル編集(Edit、Write)やファイルシステム操作(mkdir、rm、mv、cp)も自動承認されます ・保護対象のパスへの書き込みは追加ディレクトリに含めても依然としてプロンプトが表示されます 💡 ユースケース 📦 モノレポ開発:共有パッケージと個別アプリの両方を同時に変更する 📚 共有ライブラリ参照:外部ライブラリのソースを読み取り、正しいAPI使用法を確認しながらコーディングする 🔧 設定ファイルの集中管理:プロジェクト外の設定ディレクトリにアクセスして設定を更新する ⚠️ 注意点 ・追加ディレクトリ外のパスへのアクセスは引き続きブロックまたはプロンプトが表示されます ・`bypassPermissions` モードでは全パスが許可されるため、`add_dirs` の設定とは無関係に動作します ・エージェントのセキュリティ境界を広げることになるため、必要最小限のパスのみを指定してください ・`acceptEdits` での自動承認は cwd と追加ディレクトリの範囲内に限定されます ✨ additionalDirectories を活用することで、複数ディレクトリにまたがるプロジェクトでもエージェントがシームレスに作業できるようになります。 #ClaudeAgentSDK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 会話履歴の管理を手動でやるのはもう終わりです! Sessionを使えば、履歴の自動管理、ユーザーごとの分離、エージェント間の共有が簡単に実現できます。 📌 タイトル:Sessions – Overview 🔗 URL: 🧩 概要 OpenAI Agent SDKのSession機能は、会話履歴の自動管理を提供します。これまで手動で`to_input_list()`を呼んで履歴を構築していた作業が不要になります。セッションIDによる整理されたユーザー/スレッド別履歴管理、異なるエージェント間でのセッション共有、`pop_item()`による直前の質問のやり直しなど、実践的な機能が揃っています。 🛠 使い方 まず `Agent`, `Runner`, `SQLiteSession` をインポートし、`Agent(name="assistant", instructions="丁寧に回答してください")` でエージェントを作成します。`SQLiteSession("conversation_123")` でセッションを生成し(`db_path` を省略するとインメモリになります)、`await "Pythonについて教えて", session=session)` で最初の質問を実行、続けて `await "もっと詳しく", session=session)` で追加質問すると、履歴が自動的に引き継がれます。`await session.pop_item()` で最後のやり取りを削除し、`await "別の角度から説明して", session=session)` でやり直しができます。 `db_path` を指定すれば永続化も簡単です。`SQLiteSession(session_id="user_12345/thread_abc", db_path="sessions.db")` でユーザー/スレッド別セッション、`SQLiteSession(session_id="ticket_456", db_path="sessions.db")` でチケット別セッションを作成できます。異なるエージェント間での共有も可能で、`shared_session = SQLiteSession(session_id="user_12345/current")` を作り、`await "請求について質問があります", session=shared_session)` の後に `await "詳細を教えてください", session=shared_session)` を呼べば、サポートから請求エージェントへ履歴を引き継いだエスカレーションが実現できます。 🏗 実践的な使い方 セッションIDの命名規則を統一することで、履歴の検索と管理が容易になります。`user_{id}/thread_{id}`のように階層的なIDを使えば、あるユーザーの全スレッドや特定のスレッドの履歴を効率的に取得できます。 `pop_item()`は「やり直し」機能の実装に最適です。ユーザーが質問を修正したい場合、直前のやり取りを削除して新しい質問で再実行できます。 異なるエージェント間でセッションを共有するパターンは、サポート→請求→技術のようなエスカレーションフローで強力です。ユーザーが同じ説明を繰り返す必要がなくなり、引き継ぎがスムーズになります。 `session`パラメータを使うことで、従来の`to_input_list()`による手動履歴管理が不要になります。これだけでもコードが大幅にシンプルになります。 💡 ユースケース 💬 チャットボットでのユーザーごとの会話履歴管理 🔄 「やり直し」ボタンによる直前の質問の修正 🤝 サポート→請求→技術のエスカレーション時の履歴共有 📋 チケットIDごとの対応履歴の記録と参照 ⚠️ 注意点 - セッションIDは一意になるよう設計してください。衝突すると異なるユーザーの履歴が混ざります - 長期間のセッションではコンテキストが肥大化します。後述のhistory制御と組み合わせてください - セッションを共有する場合、全てのエージェントが相手の出力を理解できる前提が必要です ✨ Session機能により、会話の継続性が自動化され、マルチターン・マルチエージェントの会話がシンプルに実装できます! #OpenAIAgentSDK# #AIAgent#
もっと見る
# ADKの便利で実践的な使い方 エージェントの「今の状態」を管理するState機能。動的プロンプトやスコープ付きデータ管理で、賢い対話を実現します🎯 📌 **タイトル**: State 🔗 **URL**: ## 🧩 概要 Stateは `session.state` としてアクセスできる、会話中の作業メモリです。ショッピングカートの中身や、予約フローで段階的に集めた情報など、「今この会話で必要なデータ」を保持します。 Stateの大きな特徴は**プレフィックスによるスコープ管理**です。 - `app:` - アプリ全体で共有されるデータ(全ユーザー共通設定など) - `user:` - ユーザー単位で共有されるデータ(ユーザーの好み設定など、セッションをまたいで保持) - `temp:` - 現在のセッション内でのみ有効な一時データ - プレフィックスなし - 通常のセッションスコープ さらに、`{state_var}` の形式でエージェントのインストラクションに埋め込むことで、動的プロンプトを実現できます。 ## 🛠 使い方 `session.state` に辞書形式で値を設定します。例えば `session.state["booking_date"] = "2026-07-15"`、`session.state["party_size"] = 4`、`session.state["seat_type"] = "window"` のように通常のセッションスコープで保存します。スコープ付きステートとして、`"user:preferred_language"` のように `user:` プレフィックスでユーザー単位の永続データを、`"temp:search_results"` のように `temp:` プレフィックスでセッション終了時に消える一時データを、`"app:maintenance_mode"` のように `app:` プレフィックスで全ユーザー共通のデータを設定できます。さらに、`Agent` の `instruction` に `{booking_date}` や `{party_size}`、`{user:preferred_language}` のようにプレースホルダーを埋め込むことで、ステートの値を動的にインストラクションへ反映できます。 ## 🏗 実践的な使い方 **レストラン予約フローでの活用:** 会話の中で段階的に情報を収集し、Stateに蓄積していきます。 1. 「明日の夜、4人で予約したいです」→ `booking_date`, `party_size` をStateに保存 2. 「窓際がいいです」→ `seat_type` を追加 3. 「アレルギーはナッツです」→ `allergies` を追加 4. 最終確認時、Stateから全情報を取り出して確認メッセージを生成 インストラクションに `{booking_date}` を埋め込んでおけば、エージェントは常に最新の予約状況を把握した上で応答できます。 **ユーザー設定の永続化:** `user:` プレフィックスを使えば、セッションが変わっても「この人は日本語を好む」「この人はベジタリアン」といった情報を引き継げます。 ## 💡 ユースケース - 🛒 ECサイト: カートの中身をStateで管理。`temp:` で検索フィルタ、`user:` で配送先住所 - ✈️ 旅行予約: 日程・人数・座席タイプを段階的にState蓄積 - 🤖 パーソナライズ: `user:` スコープでユーザーの好みを学習・永続化 - 📊 ダッシュボード: `app:` でシステム全体のステータスを共有 ## ⚠️ 注意点 - Stateに大量のデータを保存するとパフォーマンスが低下します。大きなデータはArtifactsの利用を検討してください - `app:` スコープの変更は全ユーザーに影響します。慎重に使いましょう - `{state_var}` でインストラクションに埋め込む場合、値が未設定だとプレースホルダーがそのまま表示されることがあります。デフォルト値を用意してください - Stateのキー名は衝突しないよう、命名規則を決めておくことをお勧めします ✨ Stateのスコープ管理と動的プロンプトを活用すれば、文脈を理解した賢いエージェントが構築できます。予約フローやパーソナライズに最適です! #ADK# #AIAgent#
もっと見る
いよいよ明日は本が入荷し、棚に詰めていく作業が始まるのですが、そのための準備として今日は地味な作業をしておりましたー! 検索に便利な棚番シールをひたすら黙々と一人で貼り続けていました。
もっと見る
# ADK 2.0の便利だけど知られていない機能 🌍 Pythonコードを書かずに、YAMLファイルだけでAIエージェントを定義できたらと思いませんか? ADK 2.0のAgent Configは、YAML/JSON形式の宣言的な設定ファイルでエージェントを定義する機能です。コードなしでエージェントの構成・実行・変更が可能になります。 📌 タイトル:Agent Config(宣言的なエージェント定義) 🔗 URL: 🧩 概要 Agent Configでは、エージェントの名前、モデル、説明、指示をYAML/JSONで宣言的に記述します。ツール(google_searchなどの組み込みツールやカスタムツール)やサブエージェント(config_pathで別の設定ファイルを参照)も設定ファイル内で定義できます。LlmAgentをサポートしており、LangGraphAgentとA2aAgentは未サポートです。定義したエージェントは`adk web`、`adk run`、`adk api_server`、または`from_config()`で実行できます。 🛠 使い方 YAMLファイルでエージェントを定義し、ADK CLIで実行します。 ```yaml # root_agent.yaml name: research_assistant model: gemini-2.0-flash description: リサーチを支援するエージェント instruction: | ユーザーの質問に対して、検索ツールを使って 最新の情報を調査し、わかりやすく回答してください。 tools: - name: google_search sub_agents: - config_path: ./summarizer.yaml ``` ```bash # CLIで実行 adk web # ブラウザUIで対話 adk run # ターミナルで実行 ``` プログラムから利用する場合は`from_config()`でエージェントオブジェクトを生成できます。 🏗 本番システムへの組み込み方 ・エージェント定義をYAMLファイルとしてGitで管理し、変更履歴を追跡する ・環境ごと(開発/ステージング/本番)に設定ファイルを分離して管理する ・sub_agentsのconfig_pathを活用し、再利用可能なエージェントモジュールを構築する ・`adk api_server`を使って、設定ベースのエージェントをAPIとしてデプロイする 💡 ユースケース 📝 非エンジニアでもYAMLを編集するだけでエージェントの振る舞いを変更 🔄 CI/CDパイプラインでのエージェント定義のバージョン管理とデプロイ自動化 🧩 共通サブエージェントを複数のプロジェクトで再利用 🚀 プロトタイプからプロダクションまで、同じ設定ファイルで一貫した構成管理 ⚠️ 注意点 この機能は現在実験的(Experimental)なステータスです。Geminiモデルのみに対応しており、LangGraphAgentやA2aAgentは未サポートです。複雑なカスタムロジックやコールバックが必要な場合は、従来のPythonコードベースのアプローチの方が適切です。今後のバージョンで仕様が変更される可能性があるため、本番導入時は最新のドキュメントを確認してください。 ✨ Agent Configにより、エージェントの定義と運用のハードルが大きく下がります。特にチームでの共同作業や設定管理の効率化に効果を発揮します。 #ADK# #AIAgent#
もっと見る
# Claude Agent SDKの便利だけど知られていない機能 🌍 複雑なタスクの進捗、見失っていませんか?構造化タスクトラッキングで可視化できます! Claude Agent SDKには、エージェント実行中のタスク管理と進捗表示を行う組み込み機能があります。 📌 タイトル:構造化タスク(Todo)トラッキング 🔗 URL: 🧩 概要 `TaskCreate`、`TaskUpdate`、`TaskGet`、`TaskList` の4つのツールを使って、エージェント実行中の構造化タスク管理が可能です。これらのタスクトラッキングツールは Claude 3.x 系、Opus 4〜4.7、Sonnet 4〜4.6、Haiku 4.5 でのみデフォルトで提供され(Claude Code v2.1.268 以降、TypeScript SDK は v0.3.268 以降がこの既定を同梱)、それ以外のモデルではオプトインが必要です。エージェントは複数ステップの作業を自動的にタスクとして登録し、`pending` → `in_progress` → `completed` のライフサイクルで進捗を管理します。従来の `TodoWrite` は全リストを毎回上書きしていましたが、新しい Task ツールでは個別のタスク単位で作成・更新できるため、より細かい進捗追跡が実現できます。 🛠 使い方 ```python # Python - TaskCreate/TaskUpdate のストリームを監視 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock async for message in query( prompt="React アプリのパフォーマンスを最適化してください", # 既定で Task ツールが提供されないモデルでも有効化する options=ClaudeAgentOptions(env={"CLAUDE_CODE_ENABLE_TODO_TOOLS": "1"}), ): if not isinstance(message, AssistantMessage): continue for block in message.content: if not isinstance(block, ToolUseBlock): continue if == "TaskCreate": print(f"+ {block.input['subject']}") elif == "TaskUpdate" and block.input.get("status"): # ストリーム上のキー名は修復前の生の形(id / task_id の場合がある) task_id = ( block.input.get("taskId") or block.input.get("id") or block.input.get("task_id") ) print(f" {task_id} -> {block.input['status']}") ``` ```typescript // TypeScript - タスクの作成と更新をリアルタイム表示 import { query } from "@anthropic-ai/claude-agent-sdk"; for await (const message of query({ prompt: "Optimize my React app performance", // 既定で Task ツールが提供されないモデルでも有効化する options: { env: { ...process.env, CLAUDE_CODE_ENABLE_TODO_TOOLS: "1" } }, })) { if (message.type !== "assistant") continue; for (const block of message.message.content) { if (block.type !== "tool_use") continue; if ( === "TaskCreate") { console.log(`+ ${block.input.subject}`); } else if ( === "TaskUpdate") { // ストリーム上のキー名は修復前の生の形(id / task_id の場合がある) const taskId = block.input.taskId ?? ?? block.input.task_id; if (taskId && block.input.status) console.log(` ${taskId} -> ${block.input.status}`); } } } ``` 🏗 本番システムへの組み込み方 ・タスクの進捗をUIのプログレスバーやチェックリストに反映して、ユーザーに作業状況を可視化します ・`TaskCreate` の結果から `taskId` を取得し、マップで管理することで完全なタスク一覧を構築できます ・`TaskList` のツール結果を監視してスナップショットを取得し、ダッシュボードに表示します ・3ステップ以上の複雑なタスクで自動的にタスクが作成されるため、長時間実行の監視に活用できます 💡 ユースケース 📋 大規模リファクタリングの進捗をリアルタイムでチームに共有する 🔄 CI/CDパイプラインでエージェントの各ステップの完了状況を追跡する 📊 マルチステップのコード分析で、どの分析が完了したかをダッシュボードに表示する ⚠️ 注意点 ・`TaskCreate` の入力には `taskId` は含まれません。対応する `tool_result` ブロックから `{ task: { id, subject } }` として取得する必要があります ・既定でツールが提供されないモデルでは、`allowed_tools` にツール名を挙げる、`tools` オプションに列挙する、`env` で `CLAUDE_CODE_ENABLE_TODO_TOOLS=1` を設定する、のいずれかでオプトインが必要です(オプトインしないと該当の `tool_use` ブロックはストリームに現れません)。逆に `CLAUDE_CODE_ENABLE_TASKS=0` を設定すると、4つの Task ツールの代わりに旧 `TodoWrite` が提供されます ・`status` を `"deleted"` に設定するとタスクを削除できます ✨ 複数ステップの作業を「何をやっているか分からない」状態で待つのはストレスフルです。タスクトラッキングを活用して、エージェントの作業をガラス張りにしましょう! #ClaudeAgentSDK# #AIAgent#
もっと見る
# Claude Agent SDKの便利だけど知られていない機能 🌍 システムプロンプトをゼロから書く必要はありません。claude_code プリセットに append で追記する方式を使えば、安全性やツールガイダンスを維持したまま独自の指示を追加できます。 さらに excludeDynamicSections で複数マシン間のプロンプトキャッシュ共有も可能です。 📌 タイトル:システムプロンプトのプリセット+追記方式 🔗 URL: 🧩 概要 Claude Agent SDK のシステムプロンプトには3つの出発点があります。(1) ミニマルデフォルト(`systemPrompt` 未設定時、ツール呼び出しのみカバー)、(2) `claude_code` プリセット(Claude Code CLI と同じフルプロンプト)、(3) カスタム文字列(完全に独自のプロンプト)。特に便利なのが `claude_code` プリセット + `append` の組み合わせで、プリセットが提供するツール使用ガイダンス、安全性ルール、コーディング規約をすべて維持しつつ、末尾に独自の指示を追加できます。CLAUDE.md はシステムプロンプトではなく会話に注入される点も重要です。 🛠 使い方 `system_prompt` に dict 形式でプリセットと append を指定します。 ```python from claude_agent_sdk import query, ClaudeAgentOptions async for message in query( prompt="Help me write a Python function to calculate fibonacci numbers", options=ClaudeAgentOptions( system_prompt={ "type": "preset", "preset": "claude_code", "append": "Always include detailed docstrings and type hints in Python code.", } ), ): pass # メッセージを処理 # excludeDynamicSections でキャッシュ共有を有効化 async for message in query( prompt="Triage the open issues in this repo", options=ClaudeAgentOptions( system_prompt={ "type": "preset", "preset": "claude_code", "append": "You operate Acme's internal triage workflow.", "exclude_dynamic_sections": True, # 環境依存部分を除外 }, ), ): pass ``` 🏗 本番システムへの組み込み方 ・コーディングエージェントを構築する場合は `claude_code` プリセット + `append` を基本形とし、セキュリティルールやツールガイダンスの再実装コストを削減できます ・`exclude_dynamic_sections: True` を指定すると、作業ディレクトリやOS情報などの動的コンテキストがシステムプロンプトからユーザーメッセージに移動し、異なるマシン間でプロンプトキャッシュを共有できます ・CLAUDE.md は `setting_sources` に `"project"` を含めることで自動読み込みされ、システムプロンプトとは独立して機能します 💡 ユースケース 🏢 社内コーディング標準の適用:プリセットの安全性を維持しつつ、社内規約を append で追加する 🌐 多拠点展開のコスト削減:excludeDynamicSections でプロンプトキャッシュを全マシンで共有する 🤖 特化型エージェント:データ分析やサポートボットなど、コーディング以外の用途にはカスタム文字列を使用する ⚠️ 注意点 ・カスタム文字列を使う場合、ツールガイダンスや安全性ルールは自分で記述する必要があります ・`excludeDynamicSections` を有効にすると、環境情報がユーザーメッセージに移動するため、指示としての重みがわずかに低下する可能性があります ・SDK デフォルト(`systemPrompt` 未設定)は Claude Code CLI のデフォルトとは異なります。CLI からの移行時は明示的にプリセットを設定してください ✨ プリセット+追記方式は「安全な既定値を壊さずにカスタマイズする」最もリスクの低い方法です。 #ClaudeAgentSDK# #AIAgent#
もっと見る