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

検索結果 SQLite
SQLite コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
SQLite を含む検索結果
Cursorチームが、公式ドキュメントだけからSQLiteをRustでゼロから実装させる実験を行った。 以前はエージェントが暴走して途中で破綻したが、今のシステムでは見事にテストを100%通過した。 で、そのやり方を書いている詳細だった。 以下、個人的に面白かったとこだけ。 ・毎秒1,000コミットを捌くために独自のバージョン管理システムを作った ・マージコンフリクトが起きた際は、中立な第三者エージェントが介入して解決する ・肥大化したファイルを検知して自動で分割する仕組みも導入されている ・また、興味深いのが、モデルの組み合わせによるコストの違い ・GPT-5.5単体では開発に約10,000ドルかかった ・しかし、Opus 4.8とComposer 2.5の分業では約1,300ドルで済んだ ・それでいて、どの構成でも最終的なコードの品質はほぼ同じだったとのこと
もっと見る
GrokをCodexに繋げると Xの「リアルタイムで伸びている投稿」を 毎日自動で収集できる オラはこんなSkillを作って運用してる 👇 ✅ 2026年7月以降に500いいね以上を獲得した投稿を毎日収集 ✅ 新しく見つかった投稿だけをSQLiteデータベースへ追記保存 ✅ キーワード・言語・いいね数などで検索できるダッシュボードを自動生成 さらに強力なのが 言語を横断してトレンドを分析できること。 英語だけでなく、中国語やアラビア語圏で話題になっているAIトピックまで 抽出できるので、日本では まだ知られていないネタを 先回りしてキャッチできる 毎日ダッシュボードを開くだけで、「次に何を発信すれば伸びるか」の候補が蓄積されていく仕組みです
もっと見る
漠然と「やろうと思えばアプリからClaude Codeを呼べるんだろうな~」と思ってたけど試せてよかった。エラー時の出力大事。あとNode.jsで組み込みSQLiteが使えることを初めて知った。Podcastも楽しく聞いてます! マヂカル.fm | 90分で作ってわかる AI Agent 入門 #技術書典#
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 無制限に膨らむ履歴はコストとレイテンシの敵です! 履歴の制御と圧縮機能を使って、コンテキストサイズを最適に保ちましょう。 📌 タイトル:Sessions – Control history / Compaction 🔗 URL: 🧩 概要 長期間のセッションでは会話履歴が肥大化し、トークンコストの増大やレイテンシの悪化を招きます。SessionSettingsの`limit`で直近N件に制限したり、`session_input_callback`でカスタムのトリミング・並び替えを行ったりできます。OpenAIResponsesCompactionSessionを使えば自動圧縮も可能で、手動の`run_compaction()`でアイドル時に最適化することもできます。 🛠 使い方 最もシンプルな方法は `SessionSettings(limit=50)` です。`Agent(name="assistant", instructions="丁寧に回答してください")` でエージェントを作り、`SQLiteSession("user_12345")` でセッションを生成したうえで、`await "最新の話題は?", session=session, run_config=RunConfig(session_settings=SessionSettings(limit=50)))` のように `RunConfig` の `session_settings` に渡せば、取得する履歴が直近50件に制限されます。 より高度な制御には `session_input_callback` を使います。例えば `custom_history_filter(history, new_input)` 関数を定義し、`h.role == "system"` のシステムメッセージは常に保持、通常のやり取りは `history[-20:]` で直近20件に絞り、`return filtered + new_input`(`new_input` はリストです)で新しい入力と合わせて返すロジックが書けます。`await "...", session=session, run_config=RunConfig(session_input_callback=custom_history_filter))` のように設定します。 自動圧縮には `OpenAIResponsesCompactionSession` を使います。`underlying = SQLiteSession("user_12345")` を用意し、`OpenAIResponsesCompactionSession(session_id="user_12345", underlying_session=underlying)` でセッションを作り、`await "これまでの議論をまとめて", session=session)` を実行すると、長い会話が自動的に要約・圧縮されます。 手動で圧縮を実行する場合は、`OpenAIResponsesCompactionSession(session_id="user_12345", underlying_session=underlying, should_trigger_compaction=lambda _: False)` で自動圧縮を無効化したセッションを作り、`await "force": True})` を呼び出します。ユーザーのアイドル時間に実行すれば、次回リクエスト時のレイテンシが改善されます。 🏗 実践的な使い方 `SessionSettings(limit=50)`は最もシンプルなコスト制御です。セッションから取得する履歴が直近50件に絞られ、それより古い履歴はモデルへの入力に含まれません(既定の`limit=None`では全件取得します)。カスタマーサポートのように直近のやり取りが重要なケースに適しています。 `session_input_callback`は、より高度な制御が必要な場合に使います。例えば、システムメッセージやVIP顧客のフラグは常に保持しつつ、通常のやり取りは直近20件に絞るといったロジックが書けます。ストレージ自体は変更せず、LLMに送る入力だけをフィルタリングする点がポイントです。 `OpenAIResponsesCompactionSession`は自動圧縮を行います。長い会話を要約して短い表現に置き換えることで、コンテキスト窓を効率的に使います。 Streaming重視のアプリケーションでは、ユーザーのアイドル時間に`run_compaction()`を手動実行するパターンが有効です。次のリクエスト時には圧縮済みの履歴から開始できるため、初回トークンまでのレイテンシが改善されます。 💡 ユースケース 💰 limit設定によるトークンコストの上限管理 🔧 カスタムコールバックで重要なコンテキストだけを選択的に保持 📦 自動圧縮による長時間セッションのコンテキスト最適化 ⚡ アイドル時のcompactionによるStreaming-firstレイテンシ改善 ⚠️ 注意点 - `limit`は取得件数の制限であり、セッションに保存された履歴自体は削除されません。ただしlimitを超えた情報はモデルに渡らないため、値は慎重に設定してください - `session_input_callback`はリクエストごとに呼ばれるため、重い処理は避けてください - 自動圧縮は要約精度に依存します。正確な数値や固有名詞が失われる可能性があります - `run_compaction()`はAPIコールを伴うため、頻繁に呼ぶとコストが増加します ✨ 適切な履歴制御により、長時間セッションでもコストとレイテンシを最適に保てます! #OpenAIAgentSDK# #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#
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 個人情報を含む会話にはセキュリティが必要です! EncryptedSessionとAdvancedSQLiteSessionで、PIIの保護と会話のブランチ分岐を実現しましょう。 📌 タイトル:Sessions – Encrypted / Advanced SQLite 🔗 URL: 🧩 概要 EncryptedSessionは会話履歴を暗号化して保存し、TTL(有効期限)で自動削除する機能を提供します。個人情報を含むチャットに最適です。AdvancedSQLiteSessionは会話のブランチ分岐(`create_branch_from_turn`)やトークン使用量の記録(`store_run_usage`)を提供し、実験的な会話管理や分析に活用できます。 🛠 使い方 `EncryptedSession` は他のセッションをラップする実装なので、`underlying_session` に実体となるセッション(例:`SQLAlchemySession.from_url("user_12345", url="sqlite+aiosqlite:///conversations.db", create_tables=True)`)を渡します。`EncryptedSession(session_id="user_12345", underlying_session=underlying_session, encryption_key="your-secret-key", ttl=600)` で暗号化セッションを作成します。`ttl=600` は10分で自動削除される設定です。`Agent(name="medical_assistant", instructions="医療相談に丁寧に回答してください")` でエージェントを作り、`await "田中太郎、生年月日1990年1月1日、症状は頭痛です", session=session)` のように個人情報を含む会話を安全に処理できます。 `AdvancedSQLiteSession(session_id="experiment_001", db_path="./advanced_sessions.db", create_tables=True)` でセッションを作成し(`create_tables` の既定値は `False` です)、`await "AIの未来について議論しましょう", session=session)` と `await "楽観的な視点を教えて", session=session)` で会話を進めます。`branch_id = await session.create_branch_from_turn(2, branch_name="pessimistic")` で2ターン目から会話を分岐し(戻り値はブランチIDです)、`await session.switch_to_branch(branch_id)` で切り替えてから `await "悲観的な視点を教えて", session=session)` で別の方向に展開できます。`await でトークン使用量を記録し、`await session.get_session_usage()` で `requests`・`input_tokens`・`output_tokens`・`total_tokens`・`total_turns` を確認できます(ターン単位は `await session.get_turn_usage(user_turn_number)`)。 🏗 実践的な使い方 EncryptedSessionは、医療相談、法律相談、金融サービスなど、個人情報(PII)を含む会話で必須です。暗号化キーは環境変数やSecret Managerで管理し、コードにハードコードしないでください。 TTLの設定は規制要件に合わせます。例えば、医療相談では10分、カスタマーサポートでは24時間、法律相談では7日間など、業務に応じた有効期限を設定できます。TTL経過後はデータが自動削除されるため、データ保持規制への準拠が容易になります。 AdvancedSQLiteSessionの`create_branch_from_turn`は、「もしこう聞いたら?」という実験的な会話分岐に最適です。プロンプトエンジニアリングの検証や、A/Bテスト的な会話比較に使えます。元のセッションは変更されないため、安全に実験できます。 `store_run_usage`によるトークン使用量の記録は、コスト分析や利用傾向の把握に役立ちます。ユーザーごと、機能ごとのトークン消費を可視化し、最適化の判断材料にできます。 💡 ユースケース 🏥 医療相談チャットのPII保護(TTL: 10分) ⚖️ 法律相談の機密会話暗号化(TTL: 7日) 🔬 プロンプトエンジニアリングの会話ブランチ比較 📊 ユーザーごとのトークン使用量分析とコスト最適化 ⚠️ 注意点 - 暗号化キーを紛失するとセッションデータは復元できません。キー管理を厳格に行ってください - TTLは厳密なタイミングでの削除を保証するものではありません。クリティカルな要件では追加のデータ削除ジョブを検討してください - AdvancedSQLiteSessionはSQLiteベースのため、大規模な本番環境には向きません。開発・分析用途で使用してください - ブランチを大量に作成するとストレージが肥大化します。不要なブランチは定期的に削除してください ✨ セキュリティと実験性を兼ね備えたセッション管理で、規制準拠と開発効率の両立が可能です! #OpenAIAgentSDK# #AIAgent#
もっと見る
Claude CodeやCodex、Cursorを「研究エージェント」に変えてしまうOSSワークスペースが登場しました。文献レビューから実験実施まで、複数の仮説を並行して走らせられます。 タイトル: alphaXiv/OpenResearch URL: 概要としては、Rust製でローカルSQLiteにデータを保持する「ローカルファースト」設計のワークスペースで、既存のコーディングエージェントの上に研究サイクルを自動化する層を被せています。 🌳 注目ポイント1: 並列探索と実験の追跡可能性 研究の方向性ごとに独立したエージェントセッションと分離されたgitワークツリーを割り当て、実験のバリアントをコミット履歴として記録します。実行ごとに不変のアーカイブが残るため、後から何を試したか完全に追跡できます。 🔍 注目ポイント2: 証拠の文脈管理 ログ・差分・ファイル・実行結果・成果物を、それらを生み出した作業内容と結び付けて保存する仕組みを持ちます。これにより実験結果の再現性と検証性が大きく向上します。 🔁 注目ポイント3: 自律的な研究ループとマルチエージェント対応 アイデア提案から実験実施、証拠検査、次のステップ決定までを自律的に繰り返すループを備え、Claude Code・Codex・OpenCode・Cursorから好みのエージェントを選べます。ローカル実行だけでなくSlurmやKubernetes、Ray、Hugging Face Jobsなどの実行環境にも対応しています。 研究者がデータの所有権を保ちながらAIエージェントを並列活用できる、実用的な基盤だと感じました。 #AIエージェント# #研究DX#
もっと見る
# OpenAI Agent SDKの便利だけど知られていない機能 🌍 エージェントが長時間タスクの途中でクラッシュしたとき、最初からやり直しになっていませんか? 永続実行統合を使えば、障害を跨いでエージェントの進行状況を保持し、中断したところから再開できます。 📌 タイトル:永続実行統合 🔗 URL: 🧩 概要 OpenAI Agent SDKは、複数の永続実行オーケストレーターとの統合をサポートしています。**Temporal**(永続的な長時間ワークフロー)、**Dapr**(CNCFベンダー中立オーケストレーター、自動障害回復)、**Restate**(軽量な永続エージェントフレームワーク、プロセス/コンテナ/サーバーレス対応)、**DBOS**(SQLite/Postgresベースのエージェント進行状況保存)の4つが公式に統合されています。いずれも標準の `Runner` インターフェースと連携し、Human-in-the-Loopパターン(一時停止・承認・再開)をサポートします。 🛠 使い方 ```python # Temporal統合の例 # pip install temporalio from temporalio.contrib.openai_agents import openai_workflow # Dapr統合の例 # Dapr CLIとランタイムをセットアップ後 # dapr run -- python agent_workflow.py # Restate統合の例 # pip install restate-sdk # Restateのドキュメントに従いエージェントをデプロイ # DBOS統合の例 # pip install dbos from dbos import DBOS # 各オーケストレーターの詳細は公式ドキュメントを参照: # Temporal: # Dapr: # Restate: # DBOS: ``` 🏗 本番システムへの組み込み方 ・長時間実行エージェント(リサーチ、データ処理)の障害耐性を確保する ・Human-in-the-Loopパターンで、承認待ちの間エージェントを一時停止し、承認後に再開する ・既存のオーケストレーション基盤(Temporal/Dapr)がある場合は、その上でエージェントを実行する ・サーバーレス環境ではRestateやDBOSで軽量にエージェントの永続性を実現する 💡 ユースケース 🔄 障害時の自動再開が必要な長時間リサーチエージェント ✅ 人間の承認ステップを含むワークフロー自動化 🏗 マイクロサービスアーキテクチャでのエージェントオーケストレーション 💾 エージェントの進行状況のチェックポイント保存 ⚠️ 注意点 各オーケストレーターは独自のインフラ要件(Temporalサーバー、Daprランタイム、Restateサービス、DBOSのDB)を持つため、運用コストと複雑さを考慮して選択してください。ベンダー中立を重視するならDapr(CNCF)やRestate、既存のワークフロー基盤があるならTemporal、最小構成で始めるならDBOSが適しています。統合の成熟度はそれぞれ異なるため、本番導入前に十分な検証を行ってください。 ✨ 永続実行統合で、エージェントを「落ちても止まらない」堅牢なシステムに進化させましょう。 #OpenAIAgentSDK# #AIAgent#
もっと見る
# Hermes Agentの機能と実践的な使い方 🚀 「昨日の続きから」が一言で始められる。Hermes Agentのセッションは、すべての会話を自動で記録・再開・検索できる長期運用の土台です。 📌 タイトルと機能のURL タイトル: Sessions URL: 📝 概要 セッションは、CLI・Telegram・Discord・Slackなどあらゆる入口での会話を自動保存する仕組みです。完全なメッセージ履歴をSQLiteに永続化し、後から再開したり全文検索で過去のやり取りを掘り出したりできます。プラットフォームごとに文脈が分かれるため、「チャットごとに別の話題」を自然に保てます。 🔧 機能の説明 ・履歴は `~/.hermes/state.db`(SQLite、WAL モード)に保存され、メタデータ・全メッセージ・トークン数・FTS5 全文検索インデックスを管理します。 ・アクティブなコンテキストには現在の会話ウィンドウだけを読み込み、過去の全バイトは展開しません。画像は説明文に、音声は文字起こしに、文書は要約に変換して扱います。 ・最初のやり取りの後、バックグラウンドの補助モデルが3〜7語の説明的なタイトルを自動生成します(遅延なし)。 ・セッションはソースごとに決定論的なキーで識別され、DM・グループ・スレッドで形式が分かれます。 🛠 実践的な使い方 ・直近のCLIセッション再開: `hermes --continue`(または `-c`)。タイトル指定なら `hermes -c "project name"`、ID指定なら `hermes --resume `。 ・一覧・検索・管理: `hermes sessions list --limit 50 --source telegram` / `hermes sessions export backup.jsonl` / `hermes sessions prune --older-than 90 --yes` / `hermes sessions stats`。 ・手動命名: チャット内で `/title my project`、または `hermes sessions rename "new title"`。 ・エージェント自身も `session_search` ツールでFTS5検索を行い、「前にやった件」と言うと自動で過去会話を参照します。 ・`/handoff telegram` でCLIの会話を全文と共にメッセージング先へ引き継げます。 🎯 ユースケース ・昨日のリファクタ作業をそのまま再開し、中断前の文脈を引き継ぐ。 ・「あのとき何を決めたか」を全文検索で素早く参照する。 ・Telegram・Discordなど入口ごとに文脈を分離し、混線を防ぐ。 ・長期運用エージェントの作業履歴データベースとして活用する。 ⚠️ 注意点 ・自動タイトル付けはセッションごとに1回のみで、既にタイトルがあればスキップされます。 ・メディアのバイト列は再送されず、派生テキストやファイルパスのみが後続の文脈に残ります。 ・自動プルーニング(` ・スレッド非対応プラットフォームの共有ホームチャンネルでは、本来共有したいグループ会話の扱いが理想的でない場合があります。 #HermesAgent# #AIAgents#
もっと見る
# OpenAI Agent SDKの便利だけど知られていない機能 🌍 エージェントの会話履歴に機密情報が含まれているのに、平文で保存していませんか? EncryptedSessionを使えば、会話データをFernet暗号化で保護し、TTLによる自動失効も設定できます。 📌 タイトル:暗号化セッション (EncryptedSession) 🔗 URL: 🧩 概要 `EncryptedSession` は、任意のセッションバックエンドを `underlying_session` としてラップし会話データを暗号化するドロップインラッパーです。Fernet暗号化を採用し、HKDF(info 文字列 `"agents.session-store.hkdf.v1"`、salt は session_id)によるセッションごとの鍵導出でセッション間の暗号分離を実現します。`ttl`(既定 600 秒)を超えた項目は取得時に自動的にスキップされます。マスターキーには `Fernet.generate_key()` などの高エントロピーな値を使います(生の文字列も互換性のため受け付けますが、パスワードのような低エントロピーの秘密は不適切です)。 🛠 使い方 ```python import os from cryptography.fernet import Fernet from agents import SQLiteSession from agents.extensions.memory import EncryptedSession # 基底セッションを暗号化でラップ base_session = SQLiteSession("chat-001", "sessions.db") # マスターキーは Fernet.generate_key() などの高エントロピーな値を使う encryption_key = Fernet.generate_key().decode("ascii") encrypted = EncryptedSession( session_id="chat-001", underlying_session=base_session, encryption_key=encryption_key, ttl=3600, # 1時間で失効(既定は 600 秒) ) # 永続化する場合は同じキーを Secret Manager 等から読み込んで再利用する encrypted = EncryptedSession( session_id="chat-001", underlying_session=base_session, encryption_key=os.environ["SESSION_ENCRYPTION_KEY"], ttl=7200, ) # 通常のセッションと同じインターフェースで利用可能 items = await encrypted.get_items() ``` 🏗 本番システムへの組み込み方 ・医療・金融など規制業界のコンプライアンス要件に対応する ・HKDFによりセッションごとに異なる暗号鍵が導出されるため、1セッションの漏洩が他に波及しない ・TTLを設定して、一定期間後に復号不能にする「暗号学的データ消去」を実現する ・既存のSQLiteSession / RedisSession等をそのままラップでき、移行コストが極めて低い 💡 ユースケース 🏥 医療情報を含む会話の暗号化保存 🏦 金融データを扱うエージェントのセキュリティ強化 🔐 GDPRの「忘れられる権利」対応(TTL失効) 🛡 マルチテナント環境でのセッション間データ分離 ⚠️ 注意点 利用には `pip install 'openai-agents[encrypt]'` で `encrypt` extra をインストールしてください。暗号化されたデータに対しては `find_turns_by_content()` などの内容検索が機能しません。検索が必要な場合は検索用のインデックスを別途管理する必要があります。また、暗号鍵を紛失するとデータが復元不能になるため、鍵の安全な管理(Secret Manager等)が必須です。`encryption_key` を変更しても既存レコードは再暗号化されないため、古いデータの復号には元のキーが必要です。 ✨ EncryptedSessionで、会話データの保護をコード1行で実現しましょう。 #OpenAIAgentSDK# #AIAgent#
もっと見る