Skip to content

Latest commit

 

History

History
283 lines (221 loc) · 67 KB

development_ja.md

File metadata and controls

283 lines (221 loc) · 67 KB

開発ガむド

简䜓䞭文 | English | 日本語 | 한국얎 | РусскОй | Español | Português (Brasil)

゜ヌスからの実行、パッケヌゞ䜜成、開発ぞの参加を考えおいる方のためのガむドです。アプリを䜿うだけなら Releases からむンストヌラヌを入手しおください。README に手順がありたす。

  • ボットは圹割、既定のモデル、蚘憶から構成されたす。アカりントは蚭定 › チャットチャネルで党䜓管理し、党ボットで共有したす。サヌビスごずにいく぀でも远加できたす。䞀人での個人利甚を想定しおいたす。
  • モデルは Modelflare アカりントたたは自分の公匏 API キヌで利甚したす。Modelflare が提䟛したす。初回起動でログむンたたは登録するずモデル䞀芧が自動衚瀺されたす。リク゚ストは同梱の magpie ゲヌトりェむを通りたす。
  • 同じコヌドを デスクトップElectron、CLI npm start、Docker の 3 通りで実行できたす。

リポゞトリの構成

src/
  core/          共通メッセヌゞ型、セッションキュヌず重耇排陀、ランタむム/model /reset、ストリヌミング、再起動通知、利甚蚱可所有者+蚱可リスト、氞続送信キュヌ
  delivery/      プロアクティブなメッセヌゞの配信サむレント時間垯、1 日の䞊限、たずめ送信、WeChat の 24 時間りィンドりず曎新リマむンダヌ
  agent/         DSH ホストずブリッゞ、承認、暩限プリセット、蚘憶ずコンテキスト管理、DSH のセッションディレクトリ
    prompts/     モデルが読む党プロンプト圹割、䌚話ルヌル、蚘憶のガむド、区間の初回メッセヌゞ、スキル
  tools/         ゚ヌゞェントが䜿う機胜Web 怜玢search.ts、画像・動画生成media/、コンピュヌタヌ操䜜computer-use/、Windows PowerShellpwsh/、アプリを接続——内蔵アプリのコネクタずカスタム MCPapps/、既存の Notion・Feishu アカりントaccounts/
  llm/           OpenAI 互換クラむアントモデルぞのアクセス
  magpie/        管理プロセス隔離ディレクトリ、空きポヌト、秘密倀の生成、ヘルスチェック、異垞終了からの再起動、終了凊理
  channels/      feishu/持続接続+CardKit weixin/iLink、MIT 告知は LICENSE.openclaw-weixin messenger/Telegram・Slack・Discord 共通の送受信
  tasks/         バックグラりンドタスクずルヌル実行、段階、費甚、保持ず削陀、スケゞュヌル
  botkit/        カタログ Bot フレヌムワヌクパッケヌゞ圢匏、怜査、パックず眲名、カタログ、むンストヌル、UI の静的ルヌトdocs/bot-framework.md を参照
  skills/        ナヌザヌが自分で入れるスキルZIP パッケヌゞ
  store/         SQLitenode:sqlite、ネむティブビルド䞍芁
  domain/        玔粋なデヌタ型ずルヌルBot 蚭定、サむレント時間垯、スケゞュヌル、カタログ Bot の蚘録、゚ヌゞェントのステップ。I/O なし、䟝存は i18n のみ。store はこれだけに䟝存䟝存方向は test/architecture.unit.test.ts で怜査
  account/       ModelflarePKCE ルヌプバックログむン、トヌクン曎新、残高ず通知、ボット別予算キヌ、モデル機胜ず参考䟡栌
  web/           コン゜ヌルサヌバヌserver.ts が起動・認蚌・振り分け、routes/ に領域ごずの APIJSON API+SSE の䌚話ストリヌミング、http.ts は共通の小さな関数
  cli/           初回蚭定 init、weixin-login
  providers/     モデルの提䟛元modelflare.ts経路、キヌ怜蚌 GET /v1/models、モデル振り分けず出所衚瀺、modelflare-domains.ts経路の速床テスト、official.ts公匏 API の提䟛元䞀芧、アドレス固定
  updates/       曎新check.ts新しいバヌゞョンの確認、desktop.tsデスクトップ版のダりンロヌドず再起動
  guide.ts       初回ガむドの進捗
  i18n/          サヌバヌの倚蚀語化゚ラヌ、状態、トレむ、システムメッセヌゞmessages/<namespace>.ts
  diagnostics.ts 蚺断疎通テスト、ログ末尟、秘密情報を陀いたレポヌト
  version.ts     アプリのバヌゞョンpackage.json
  main.ts        CLI の゚ントリヌポむント
electron/        デスクトップのメむンプロセス起動ずトレむ
ui/              コン゜ヌル画面Preact+htm、ビルド䞍芁
  design/        デザむンシステムtokens/、base/、components/、ボットのキャラクタヌ bots/
  locales/       画面文蚀zh-CN/、en/ など、名前空間ごずのファむル
  css/ lib/ components/ screens/ assets/ main.js
dsh-runtime/     DSH ランタむムの䟝存関係ず AnyModelBot プラグむンplugins/
scripts/         setup / build-magpie / fetch-cua-driver / prepare-dsh / bundle-dsh / electron-smoke / check-readme など
vendor/          サブモゞュヌルmagpieビルド時にコンパむル、deepseek-harness、kimi-computer-use
site/            Web サむトAstro 静的サむト、site/README.md 参照
docs/            開発ガむド、プラむバシヌ、README の玠材docs/assets/

゜ヌスから実行するCLI

Node.js 22.13 以降ず、magpie をコンパむルするための Go 1.26.8 以降が必芁です。

npm install
npm run setup        # vendor/magpie を取埗し build/bin/ にコンパむル
npm run init         # 任意タヌミナルで初回蚭定Modelflare ログむン、Feishu 認蚌情報
npm start            # ゲヌトりェむ、ボット、http://127.0.0.1:3600/ のコン゜ヌルを起動

既定のデヌタ保存先は ./data ですAMB_DATA_DIR で倉曎可胜。そのほかの環境倉数は .env.example にありたす。

デスクトップアプリElectron

npm run electron:dev     # 開発モヌド
npm run electron:smoke   # スモヌクテスト画面のない Linux は自動で xvfb-run を䜿甚
npm run dist             # 珟圚の環境向けにパッケヌゞ化magpie は resources/magpie/
npm run dist:linux | dist:mac | dist:win
npm run test:dsh-bundle  # build/dsh の実ランタむムを Electron でテスト先に prepare:dsh ず bundle:dsh を実行
  • DSH ランタむムscripts/prepare-dsh.mjs が察象環境甚の dsh-runtime/ を甚意し、scripts/bundle-dsh.mjs が resources/dsh/dsh.asar党 JavaScript を 1 ファむルず resources/dsh/node_modules/ネむティブパッケヌゞのみ、玄 55 ファむルにたずめたす。Electron メむンプロセスず ELECTRON_RUN_AS_NODE の子プロセスは asar を盎接読み、初回展開はしたせん。むンストヌル時の展開察象が数癟ファむルに枛り、Windows で時間のかかる展開ずファむル別りむルス怜査を抑えたす。開発時は dsh-runtime/ を盎接䜿いたす。
  • Windows のコマンド甚 PowerShellサンドボックスでは Windows PowerShell 5.1 が 1 コマンドに 20〜30 秒、PowerShell 7 が玄 1 秒かかりたす。遞択順は、システムの動䜜する PowerShell 7DSH ず同じ起動方法で䞀床バックグラりンドテストし、ダりンロヌドはしない→アプリ専甚の 7→5.1 です。䜿える 7 がなく゚ヌゞェントが有効なら、公匏 PowerShell 7.6.9LTSの zip を %LOCALAPPDATA%\AnyModelBot\pwsh\ に取埗したす。管理者暩限、レゞストリ倉曎、PATH 倉曎は䞍芁で、既存の PowerShell に圱響したせん。バヌゞョンず x64・arm64 zip の SHA256 は src/tools/pwsh/private.ts で固定したす曎新は node scripts/pwsh-hashes.mjs <version>。取埗埌にハッシュ、展開埌に Microsoft Authenticode 眲名を怜蚌し、DSH 圢匏の詊運転バヌゞョン、仮ファむルの読み曞き、倖郚プログラムの起動を通過しおから䜿いたす。倱敗・未完了のものは䜿わず次回起動で掃陀したす。進捗は䌚話、蚭定 → 䞀般、/status に出し、準備が終わるたでは 5.1 を継続したす。埅機䞭の゚ヌゞェントが裏で切り替わり、アプリ再起動は䞍芁です。削陀、りむルス察策による隔離、ポリシヌで起動䞍胜になれば以前の遞択肢に戻しお理由を通知したす。蚭定 → トラブルシュヌティングでむンストヌル、再むンストヌル、システム既定倀ぞの埩垰が可胜です。Windows 10 1607 / Server 2016 より叀い環境では取埗したせん。デスクトップは Chromium のネットワヌク機胜でシステムプロキシを䜿い、CLI は Node fetch を䜿いたす新しい Node は NODE_USE_ENV_PROXY=1 で HTTPS_PROXY を反映。AMB_PWSH_MIRROR はミラヌの接頭蟞を倉えたすがハッシュ・眲名怜蚌は維持し、AMB_PWSH_AUTO_INSTALL=0 は自動取埗を止めたす。
  • ゚ヌゞェントのコマンドはネットワヌクを䜿えたすサンドボックスは曞き蟌みを制限。HTTP_PROXY / HTTPS_PROXY / ALL_PROXY / NO_PROXY ず小文字版、蚌明曞・パッケヌゞ取埗先の倉数SSL_CERT_FILE、REQUESTS_CA_BUNDLE、NODE_EXTRA_CA_CERTS、PIP_INDEX_URL、npm_config_registry、GOPROXY などをアプリから匕き継ぎたす。環境倉数にプロキシがなければ、デスクトップぱヌゞェント起動ごずにシステム蚭定ず PAC を調べ、http://host:port で枡したすsrc/agent/proxy-env.ts。ルヌプバックの 127.0.0.1、localhost、::1 は垞に NO_PROXY に远加し、プロキシを通したせん。
  • デヌタ保存先<userData>/datamacOS ~/Library/Application Support/anymodel bot/data、Windows %APPDATA%\anymodel bot\data、Linux ~/.config/anymodel bot/data。ログはその䞭の logs/app.log です。
  • 単䞀むンスタンスで動䜜し、閉じるず既定ではトレむに入りたす蚭定 → 䞀般で終了に倉曎可胜。トレむには開く、ブラりザヌで開く、ログむン時に起動macOS・Windows、デヌタフォルダヌを開く、終了がありたす。
  • macOS はタむトルバヌなしで、りィンドり操䜜ボタンをサむドバヌ䞊郚に眮きたす。最小幅は 860 です。
  • コン゜ヌルは 127.0.0.1 のみで埅ち受け、毎回ランダムなトヌクンを䜜り、他のロヌカルプログラムによる管理 API の盎接利甚を防ぎたす。
  • 終了はチャネルを先に止め、その埌 magpie を止めたす。匷制終了で残った magpie は次の起動時に凊理したすLinux/macOS。

リリヌスでは CHANGELOG.md、CHANGELOG_en.md、CHANGELOG_ja.md、CHANGELOG_ko.md、CHANGELOG_ru.md、CHANGELOG_es.md、CHANGELOG_pt.md に圓該版の項目を曞きたす。察象はナヌザヌが気付くアプリの倉曎であり、サむトや内郚実装ではありたせん。英語サむトでは WeChat・Feishu に蚀及する行を陀倖したす。package.json の version を曎新、コミットし、v<version> タグをプッシュしたす。倉曎履歎がないずワヌクフロヌは最初に倱敗し、あれば GitHub Release のノヌトずサむトに反映したす。アプリの「曎新内容」ダむアログも同じ倉曎履歎を読みたす。CHANGELOG*.md はむンストヌラヌず Docker むメヌゞに同梱されsrc/changelog.ts、未むンストヌルの新バヌゞョンの内容は、ナヌザヌが開いたずきにそのバヌゞョンのタグから読み蟌みたす。.github/workflows/release.yml は OS・アヌキテクチャ別の 6 ランナヌでビルドし、むンストヌラヌず SHA256SUMS を公開したす。眲名・公蚌甚のシヌクレットは同ファむル冒頭のコメントを参照しおください。同じタグで .github/workflows/docker.yml も動き、x64+arm64 むメヌゞを ghcr.io/modelflare-ai/anymodel-bot に <version>、latest タグで公開したす。 タグでのリリヌスでは macOS 版に Developer ID 眲名ず公蚌が必須で、パッケヌゞ埌に .app ず DMG 内の .app を spctl などで怜蚌し、通らなければ倱敗したす。正匏版では開発者ツヌルを無効にしおいたす。デバッグ版が必芁なずきは npm run dist:debug、たたは Release を手動実行するずきに debug_build を遞びたすファむル名に -debug- が付き、タグでは䜿えず、scripts/check-build-flavor.mjs がパッケヌゞ結果を確認したす。

リリヌスごずに、公匏サむト、関連ドキュメント、党蚀語の README を曎新したす。npm --prefix site run sync でサむトの内容を同期し、GitHub Release ず Docker むメヌゞの公開埌、サむトのデプロむ手順に埓っお本番サむトを曎新したす。/download、/changelog、/bots のバヌゞョン、ダりンロヌドリンク、説明が䞀臎しおいるこずを確認し、本番サむトの曎新たで完了しお初めおリリヌス完了ずしたす。

アプリ内曎新は 0.1.29 から、パッケヌゞ枈みの macOS、Windows、Linux AppImage で electron-updater を䜿いたす。ui.autoDownloadUpdates は暙準で true で、「蚭定 → 䞀般」で倉曎できたす。ダりンロヌド埌は通知のみで、通垞の終了では曎新したせん。再起動前に実行䞭のチャットずバックグラりンドタスクを確認したす。0.1.28 以前のナヌザヌは䞀床手動むンストヌルが必芁です。GitHub は macOS の DMG ず曎新甚 ZIP、アヌキテクチャ別の latest-${arch} メタデヌタず blockmap を生成し、すべおのファむルのアップロヌド埌に Release を公開したす。CLI、Docker、未パッケヌゞの開発実行は手動曎新です。

Docker

利甚者向けコマンドは docker run -d --name amb -p 3600:3600 -v amb-data:/data ghcr.io/modelflare-ai/anymodel-bot です。゜ヌスからビルドする堎合

git submodule update --init --depth 1 vendor/magpie
docker build -t anymodel-bot .
docker run -d --name amb -p 3600:3600 -v amb-data:/data anymodel-bot
docker exec amb cat /data/ui-token     # http://<host>:3600/?token=<token> を開く

コンテナヌ内では 0.0.0.0 で埅ち受けるためトヌクン必須です。ポヌト 3600 をむンタヌネットぞ盎接公開しないでください。WeChat の QR ログむンは蚭定 › チャットチャネルにありたす。

モデルModelflare

  • 初回は Modelflare ぞのログむン・登録ボタンを衚瀺したす。暙準ブラりザヌでログむンたたは登録しお認可し、アプリに戻るず専甚 API キヌを発行・接続したす。既定モデルを遞べば䌚話を始められたす。Docker・リモヌト環境はブラりザヌのコヌルバックを受けられないため、ログむン埌に移動する開けない 127.0.0.1 アドレスのリンクを初回画面に貌り付けたすPOST /amb/api/account/login/complete、state ず PKCE の怜蚌は同じ。以前のバヌゞョンで API キヌを入力しログむンしおいない堎合、アップグレヌド時にキヌを端末から削陀し、ログむンが必芁になりたす。 ブラりザヌのコヌルバックペヌゞは最初に「ログむンを完了しおいたす」ず衚瀺し、トヌクン亀換・アカりント読み取り・専甚キヌ発行・ゲヌトりェむ接続がすべお成功しおから「ログむンしたした」を衚瀺したす倱敗時は理由を衚瀺。デスクトップ版は anymodelbot:// リンクを登録し、ペヌゞは読み蟌み時に䞀床アプリを開こうずしたす。「AnyModelBot を開く」で再詊行でき、アプリが実際にそのリンクを受け取ったずきだけ「戻りたした」ず衚瀺したす。自分の API キヌのペヌゞからも Modelflare アカりントで盎接ログむンできたす。初回接続でグロヌバルの既定モデルが空のずきは、src/account/first-model.ts の芏則ツヌル呌び出し察応、1 回の予玄額ず代衚的なタスクの費甚がお詊し枠内、DeepSeek 優先で初回甚モデルを䞀床だけ遞びたす。該圓がなければ遞ばず、ナヌザヌが遞びたす。
  • 認蚌方匏RFC 8252 に沿うネむティブアプリの OIDC 認可コヌド+PKCERFC 7636。公開クラむアントclient_id は anymodel-botで、クラむアントシヌクレットは持たず䞍芁です。結果は 127.0.0.1 の䞀時ポヌトぞ返したす。Modelflare プロフィヌルの認可枈みアプリから取り消すず、アプリが怜知しおログむン画面に戻りたす。
  • リフレッシュトヌクンはデヌタ内の modelflare-account.jsonモヌド 600に保存し、内蔵ゲヌトりェむの API キヌず同じくファむル暩限だけで保護したす。OS キヌチェヌンは䜿いたせん0.1.30 以前のデスクトップ版が暗号化したファむルは、初回の読み蟌み時に平文で曞き盎したす。画面にはアカりント名だけを枡したす。ログアりトは端末の認可を取り消し、ログむン時に端末ずボットぞ発行したキヌを Modelflare が削陀したす。
  • 残高は垞時衚瀺せず、巊䞋のアバタヌか蚭定 → モデル で確認したす。いずれもりォレット残高を衚瀺したす。チャヌゞは Modelflare を開き、アプリぞ戻るず残高を曎新したす。既定 1 米ドルの通知基準倉曎・無効化可胜を䞋回るず䞀床知らせ、WeChat・Feishu にも送れたす。
  • 掚論の匷さモデル遞択パネルたたは蚭定 → モデル で遞びたす自動 / 䜎 / äž­ / 高。党䜓で 1 ぀の蚭定で、次のタヌンから適甚されたす。自動ではパラメヌタヌを送らず、モデルの既定倀を䜿いたす。察応モデルにのみ適甚されたす。Responses API の掚論モデルず、モデルプロファむルで掚論察応ずされた Chat ず Claude ですClaude 4.6 以降は adaptive ず output_config.effort、それ以前は budget_tokens。
  • ログむンするず蚭定 → モデル に日別・モデル別䜿甚量、Modelflare の通知、招埅リンクも出たす。
  • ボットの予算ログむン必須ボット蚭定 → 予算で有効にするず、指定額を䞊限ずする専甚キヌゲヌトりェむの別 providerを䜿い、無効にするず共有キヌぞ戻りたす。
  • 画像・動画゚ヌゞェントに media_modelsモデル、既定倀、匕数範囲、参考䟡栌、media_docsdocs.modelflare.dev からリク゚スト圢匏を取埗、generate_image、generate_video ず内蔵スキルを提䟛したす。モデル別の圢匏を文曞で確認しおリク゚スト本文を䜜り、ワヌクスペヌスの参考画像は workspace:path ず衚したす。キヌはアプリから出さず、アプリがボットのキヌで呌び出し、結果を media/ に保存しお䌚話ぞ届けたす。
  • 生成前の確認既定では盎ちに生成したす。既定以倖のモデルや曖昧な䟝頌を理由に質問せず、劥圓に解釈しお䜜成し、䜿った条件を䞀行で述べたす。芋積もりが 0.5 米ドルを超えるずきだけ、モデル、プロンプト、条件、参考䟡栌、確認理由を提瀺したす。画像枚数、動画時間・解像床で蚈算し、費甚䞍明の動画も確認察象です。承認・倉曎・䞭止ができ、WeChat は番号・モデル名、Feishu ず Web はクリックで回答したす。10 分応答がなければ生成したせん。毎回確認するには、ボット蚭定 → 画像・動画 → 生成前に確認で垞に確認する蚭定を遞びたす。
  • Web 怜玢web_search は DeepSeek キヌが必芁な内蔵怜玢を䜿わず、amb-web-search がアプリぞ委譲したす。初期蚭定䞍芁で、Exa 公開 MCP、Bing、DuckDuckGo を詊し、前回成功したものを優先したす。倱敗制限、ボット確認、無関係な Bing 結果したものは 10 分避けたす。蚭定 → ネットワヌクずアクセス → Web 怜玢でキヌ付きの Tavily・Exa・Bocha・Zhipu、たたは独自 SearXNG を指定するず最初に䜿い、倱敗時は無料怜玢ぞ戻したす。キヌはロヌカル DB に保存し、゚ヌゞェントぞ枡したせん。デスクトップはシステムプロキシ、CLI は Node fetchNODE_USE_ENV_PROXY=1 なら HTTPS_PROXYを䜿いたす。
  • チャネルアカりントsrc/core/routes.tsWeChat、Feishu、Telegram、Slack、Discord も蚭定 › チャットチャネルで党䜓管理し、別名を付けられたす。送信者が /bot で遞んだボット→アカりントの既定→先頭のボットの順で決定したす。/bot は䞀芧、/bot name は遞択を蚘憶したす。各ボットのシステムプロンプトに他のボットず切り替え方を茉せ、質問に答えられるようにしたす。所有者・蚱可リストはアカりント単䜍なので、蚱可された人は党ボットず話せたす。アカりントキヌは名前空間で、旧チャネルは旧ボット ID を維持し、ログむン、䞊限、蚱可、キュヌ、既定ボットを匕き継ぎたす。ボット削陀はアカりントに圱響したせん。
  • アプリを接続src/tools/apps/service.tsグロヌバルに 1 ぀アバタヌメニュヌ › アプリを接続。既定ではすべおのボットが接続枈みのアプリを䜿え、ボットごず・ツヌルごずに絞り蟌めたすボット蚭定 › アプリ。アプリはアプリペヌゞで 1 枚のカヌドになり、耇数のアカりントを持おたす。「1 ぀目ず 2 ぀目の Feishu を調べお」ず頌めお、アカりントはツヌルの account 匕数番号たたは名前で遞びたす。
    • 内蔵アプリcatalog.tsFeishu、Tencent Docs、DingTalk、Amap、Yuque、Notion、GitHub、Linear、Atlassian、Canva。認蚌方匏はカスタムコネクタず共通ですログむンしお認可OAuth、動的登録、oauth.ts、リク゚ストヘッダヌ、ク゚リパラメヌタ、専甚 URL。Yuque はアプリに同梱したロヌカルプログラムvendor/yuque-mcp、scripts/vendor-yuque-mcp.mjs で生成で、ナヌザヌはトヌクンを貌り付けるだけです。
    • カスタムコネクタリモヌトの Streamable HTTP぀ながらなければ旧匏 SSEたたはロヌカルコマンド、最倧 20 個。貌り付けの認識ずフォヌム ⇄ JSON の倉換は ui/lib/connector-config.js。ロヌカルコマンドはログむンシェルの PATHshell-path.tsで実行し、初回にパッケヌゞをダりンロヌドするものnpx、uvxは長めに埅ちたす。
    • 接続はメむンプロセスが行いたすmcp-client.ts、公匏の @modelcontextprotocol/client認蚌情報はメむンプロセスだけが持ち、app-secrets.json暩限 600、デヌタベヌスの倖、secrets.tsに保存したす。amb-connections プラグむンが各ツヌル呌び出しを bridge 経由でアプリに枡したす。MCP 接続のツヌルは 1 ぀ず぀登録せず、モデルには固定の 3 ぀のツヌルを枡したすapp_toolsツヌルを探す、app_tool_schemaパラメヌタを芋る、app_call実行。加えお app_connect でナヌザヌに接続を䟝頌できたすチャットにカヌドが出お、接続埌にタスクを続けたす。
    • 承認service.ts の gate、ナヌザヌぞの確認は agent/manager.ts読み取りはそのたた実行。曞き蟌みはボットの暩限レベルに埓いたす読み取り専甚ボットには枡さず、既定のレベルでは先に確認しお「今埌このツヌルは垞に蚱可」を遞べ、フルアクセスではそのたた実行。削陀ず倖郚ぞの送信は毎回確認し、「芳察のみ」のルヌルは曞き蟌めたせん。ツヌルの皮類は classify.ts内蔵アプリは内蔵の䞀芧ず公匏の泚釈を䜿い、カスタムコネクタの泚釈は初期倀にすぎずナヌザヌが倉曎できたす。
    • 既存の Notion・Feishu アカりントsrc/tools/accounts/アップグレヌド前に接続したものは再認可なしでそのたた䜿え、トヌクンは初回起動時にデヌタベヌスから app-secrets.json ぞ移されたす。Notionnotion.tsはワンクリック認可たたはトヌクントヌクンは REST API、ワンクリック認可は OAuth + PKCE + 動的登録でロヌカルの /oauth/notion/callback に戻り、公匏リモヌト MCPmcp.notion.comを呌びたす。モデルに芋えるのは匕き続き notion_search、notion_read_page、notion_query_database、notion_create_page、notion_update_page で、削陀はありたせん。Feishufeishu.tsの既存アカりントはナヌザヌずしおメッセヌゞを読み取るだけですfeishu_list_chats、feishu_read_chat、feishu_search_messages。新しく接続する Feishu アカりントは公匏リモヌト MCPクラりドドキュメントの読み曞きメッセヌゞの読み取りを䜿い、既存アカりントも再認可するずこちらに切り替わりたす。
  • 既定の画像・動画モデルは初回にテキストモデルず䞀緒に遞び、埌から蚭定 → モデル で倉曎できたす。自動では、掚奚順のうち参考玠材が䞍芁な最初のモデルを䜿いたす。
  • モデル遞択にはコンテキスト長、画像認識・ツヌル・掚論機胜、公開料金衚の入力・出力 100 䞇トヌクン圓たりの最䜎参考䟡栌を出したす。最終的な金額は請求曞が基準です。
  • コストず品質ログむン必須アプリのキヌ端末キヌず予算キヌには Modelflare Smart Key の routing_strategy を付けたす。䜎コスト low_cost は最䜎倍率から、バランス balanced は䞭間から既定、品質 stable は最高倍率から詊したす。蚭定 → モデル、たたはモデル遞択の最初のスラむダヌで倉えるず、既存キヌも PATCH /api/connected-app/api-keys/<id> で曎新し、DB の account.routing に保存したす。未遞択の既存ナヌザヌには最初のキヌ怜査で䞀床だけバランスを適甚したすログは applied the default key routing strategy。応答に routing_strategy が返る堎合だけ察応ず刀定したす。400/422 で拒吊されたらそのフィヌルドなしで再発行し、キヌ発行・怜査・予算を倱敗させたせん。無芖された堎合も未察応ずし、蚭定を隠しお 1 日埌に再怜査したす。
  • 知胜2 番目のスラむダヌ利甚可胜か぀ Artificial Analysis デヌタのあるモデルから、知胜指数高いほど良いずタスク単䟡䜎いほど良いのパレヌト境界を求めたす。最倧 5 段階で、最安ず最高知胜を必ず含めたす。実際の掚論匷床に合わせ、Responses API の掚論モデルは既定 medium なので AA の medium、ほかは既定行を䜿いたすsrc/account/model-quality.ts。費甚は AA の公匏䟡栌でのタスク単䟡×珟圚の品質蚭定での䟡栌係数公開グルヌプの倍率×販売倍率です。䜎コストは最䜎、品質は最高、バランスは䞭間、䌁業専甚グルヌプは陀倖し、未ログむン・未察応時はバランスずみなしたす。スラむダヌでモデルを切り替え、名前を抌すず党䞀芧が開き、段階にないモデルはカスタム衚瀺です。2 段階未満なら䞀芧だけになりたす。蚈算は ui/lib/frontier.js です。
  • AA デヌタは assets/model-quality.jsonupdatedAt、source、必芁フィヌルドのみ、Modelflare ID に倉換枈みで配垃したす。node scripts/update-model-quality.mjs は https://artificialanalysis.ai/leaderboards/models ず Modelflare の公開料金衚を取埗したす。AA_API_KEY があれば公匏 API を䜿いたすが、その応答フィヌルドはキヌ付きでは未怜蚌です。--html <file>、--pricing <file> は保存枈みデヌタ、--dry-run は衚瀺のみです。列欠萜、行圢匏倉曎、数倀の解釈倱敗、行数・察応モデル䞍足では理由を出しお終了コヌド 1 で止たり、既存スナップショットを倉曎したせん。芏則で察応付けできないモデル名は OVERRIDES に入れたす。出兞は遞択画面の䞋に衚瀺したす。
  • 出所衚瀺Modelflare のリク゚ストには X-Modelflare-Skill: anymodel-bot/<version>、リンクには utm_source=anymodelbot&utm_campaign=amb_<placement> を付けたす。アプリ内は amb_signup、amb_topup、amb_console など、README・リポゞトリ文曞は amb_readme、サむトは amb_homepage です。圢匏を test/utm.unit.test.ts で固定したす。
  • API ドメむン蚭定 → モデル → API ドメむンで https://modelflare.dev/v1、https://origin.modelflare.dev/v1、https://cf.modelflare.dev/v1 を遞べたす。手動テストは実行䞭の端末から 3 ドメむンの /v1/models に認蚌なしで 3 回ず぀接続し、䞭倮倀ず成功数を衚瀺したす。HTTP 401 は応答ずしお数えたすが、キヌの有効性や生成速床の蚌明ではありたせん。自動切り替えはありたせん。旧蚭定 auto / global はメむン、cn は origin、cf は cf を遞びたす。これらは互換倀で、地域や品質の意味はありたせん。
  • 蚭定 → モデル ではアカりント、残高ずチャヌゞ、残高通知、䜿甚量、通知、招埅、費甚察効果、掚論の匷さ、既定モデル、䞀芧曎新を扱いたす。
  • 入力欄の右偎のモデルボタンで珟圚のセッションのモデルを倉え、ボットの既定倀にもできたす。/model、/reset、/new、/status、/stop、/help も䜿えたす。
  • アクティビティモデルのリク゚スト時間・トヌクン、ツヌル匕数・結果、再詊行、サブ゚ヌゞェントなど党手順を返信䞊の時間衚瀺に折りたたみ、クリックで開けたす。WeChat・Feishu は情報パネルの最近のセッションから進行䞭の凊理を芋お䞭止できたす。
  • 停滞したメッセヌゞ党チャネルの /stop、たたは情報パネルの停止で珟圚のタヌンを盎ちに終えたす。10 分進捗がない堎合モデル応答もツヌルもなく再詊行だけ。承認・回答埅ちは陀倖や 1 タヌン 30 分の䞊限で自動䞭止したすAMB_AGENT_IDLE_TIMEOUT_MS、AMB_AGENT_TURN_TIMEOUT_MS。プロセス内の amb-control プラグむンがそのタヌンだけを取り消し、同ボットの他の䌚話は続きたす。10 秒AMB_STOP_GRACE_MS以内に止たらなければプロセスを再起動したす。/status で珟圚の手順ず最埌の進捗からの時間を芋られたす。Web でボットを切り替えたり再読み蟌みしおも進行䞭の凊理は止たらず、戻るず送信内容、途䞭の返信、アクティビティを埩元したす。キュヌ埅ち、゚ヌゞェント起動䞭、承認埅ち、通垞䌚話でも停止できたす。
  • 远加指瀺゚ヌゞェント皌働䞭に送った文章・画像・ファむルは珟圚のタヌンに入り、次の手順でモデルが読み、䞀぀の返信にたずめたす。先に短い受信通知を送信キュヌ経由で送り、10 分以内に送れなければ砎棄したす。通垞ず同じ利甚蚱可を怜査し、未蚱可の人のメッセヌゞは远加したせん。前のメッセヌゞを゚ヌゞェントが受け取る前や終了凊理䞭、たた /model・/reset などのコマンドは埓来どおりキュヌに入れたす。Web でも返信䞭に入力を続けられたす。
  • 長いコマンドはバックグラりンドぞ30 秒Windows PowerShell は 60 秒を過ぎおも動くコマンドは、タヌンを塞がないバックグラりンドゞョブに移し、実行䞭だず回答したす。終了時に結果で゚ヌゞェントを起こし、同じ䌚話に新しい返信を送りたす。Web はリアルタむム、WeChat・Feishu は通垞の送信キュヌを䜿いたす。ID をセッションずタヌンから䜜り䞀床だけ送り、WeChat の時間・件数制限は送信時に怜査したす。Feishu は DB に保持した最新受信メッセヌゞ ID に返信したす。アクティビティ、/status、停止、監芖タむマヌも通垞のタヌンず同様です。
  • 䌚話ごずのモデル䞀぀のプロセス内でも各䌚話が独自のモデルず API を䜿いたす。API ごずに provider、モデルごずにコンテキストず最倧出力を持ちたす。切り替えで再起動せず、初期パッチにないモデルは実行䞭に远加したす。
  • プロセスの入れ替えDSH SDK はセッションを閉じられず、タスク・ルヌルのセッションが再起動たで残りたす完了しお埅機䞭の 1 セッション圓たり実枬玄 0.25〜0.45 MB。100 個を超えるず、完党な埅機状態で亀換したす。䌚話タヌン、実行・終了凊理䞭のタスクやルヌル、承認埅ち、圧瞮、バックグラりンドゞョブがないこずが条件です。セッションはそのたた継続し、凊理を䞭断せずナヌザヌにも衚瀺したせん。蚺断状態の taskSessions ず recycles に珟れ、しきい倀は AMB_DSH_RECYCLE_SESSIONS で倉えられたす。
  • 再起動埌の通知終了・クラッシュ時に凊理䞭だったメッセヌゞには䌚話別の DB マヌカヌを保持し、完了で消したす。次回起動時にその䌚話で䞀床だけ「前のメッセヌゞはアプリの再起動で完了したせんでした。もう䞀床送信しおください」ず知らせたす。自動再送はしたせん。Web は履歎に蚘録し、WeChat は保存枈み context_token ず同じ返信䞊限を䜿いたす。時間・件数制限が尜きおいれば次のメッセヌゞぞの返信の前に通知したす。Feishu は元の䌚話に送りたす。
  • ゚ヌゞェント APIModelflare の公開カタログで遞択したす。Responses 察応モデルGPT-5.4 以降、Grok 4.5 以降、DeepSeek V4、GLM-5、Kimi K3 などは /v1/responses掚論匷床は既定 medium、暗号化された掚論を履歎ず再送、Responses 非察応で Anthropic Messages 察応の Claude は /v1/messages、その他・カタログ取埗䞍胜・倖郚゚ンドポむントは Chat Completions です。プロセスが初めおモデルを䜿う際に決め、蚺断に盎前タヌンの api ずモデル䞀芧を出したす。AMB_AGENT_API=chat で党䜓を Chat Completions に固定できたす。通垞䌚話は匕き続き Chat Completions です。䞊流が Responses/Messages を拒吊した堎合HTTP 400/404/405/415/422、たたは unsupported parameter/endpoint、そのモデルを 24 時間 Chat Completions に切り替えたす。レヌト制限、残高、暩限、䞊流障害、コンテキスト超過は察象倖です。dsh/api-fallback.json に蚘録し、ログに譊告、状態に openai-completions (fallback: reason) を出したす。ただツヌルを呌んでいなければ再起動なしで珟圚の䌚話を Chat でやり盎し、既に呌んでいれば゚ラヌを返し次タヌンから倉曎したす。
  • 内蔵ゲヌトりェむmagpie はデヌタ内の独自 HOME・蚭定ディレクトリを䜿う --gateway モヌドです。既存の Claude/Codex サブスクリプション認蚌情報は読たず、゚ヌゞェント蚭定も倉曎したせん。自動曎新・アカりント怜出は無効です。アプリのプロセス内郚からだけ呌び、コン゜ヌルは magpie のペヌゞや /v1 を䞭継したせん。
  • API キヌは隔離したゲヌトりェむ蚭定だけに保存し、コマンドラむンやログに茉せたせん。画面には末尟だけを枡したす。
  • 開発・テストAMB_MAGPIE_BASE_URL で任意の OpenAI 互換先を指定するず、ゲヌトりェむを起動せず接続枈みずしお扱い、アカりント機胜は䜿えたせん。AMB_MODELFLARE_BASE_URL は Modelflare、AMB_MODELFLARE_ISSUER はログむン・アカりント API をロヌカルのモックに向けたす。

公匏 API キヌ

  • 初回画面の「自分の API キヌを䜿う」ず「蚭定 → モデル」で入力できたす。察応する提䟛元ずアドレスは src/providers/official.ts に固定され、APIGET /amb/api/official、PUT/DELETE /amb/api/official/<id>は䞀芧の ID だけを受け付け、アドレスは指定できたせん。
  • それぞれ内蔵ゲヌトりェむの provider で、ID は official-<提䟛元>、モデル ID は official-<提䟛元>/<モデル> です。Modelflare の同名モデルずは区別されたす。キヌはコマンドラむン匕数を通らず、ゲヌトりェむのロヌカル API のリク゚スト本文で隔離された蚭定に曞き蟌たれたす。
  • 確認にはゲヌトりェむのモデル䞀芧を䜿いプロキシや提䟛元ごずの認蚌方匏はゲヌトりェむ偎にありたす、通過した堎合のみ保存したす。モデルは 1 時間ごずに提䟛元の䞀芧ず照合し、䌚話できないモデル音声、画像、埋め蟌みなどは遞択肢に入れたせん。
  • ゚ヌゞェントの API は提䟛元で決たりたす。OpenAI は Responses、Anthropic は Messages、その他は Chat Completions です。コンテキスト長、䟡栌、掚論の察応はゲヌトりェむのモデルカタログ/v1/modelsから取埗したす。公匏キヌのみのずきは Modelflare のカタログずアカりントを読み取りたせん。
  • 公匏 API のモデルには X-Modelflare-Skill を付けず、サヌバヌ偎の圧瞮も行わず圧瞮゚ンドポむントは Modelflare のカタログ由来、ボットの予算の察象にもなりたせん予算は Modelflare キヌの枠です。画像・動画の生成は Modelflare 接続時のみ利甚できたす。
  • テストAMB_OFFICIAL_BASE_URL ですべおの提䟛元をロヌカルのモックに向けたすtest/official-providers.integration.test.ts。

むンタヌフェヌス

  • グルヌプチャットsrc/core/groups.ts、ui/screens/group.jsボットが 2 䜓以䞊あるず  から䜜れたす。各メンバヌは <bot>:web:group:<group> ずいう䌚話を持ち、モデル、暩限、蚘憶、承認、費甚は個別䌚話ず同じ凊理を䜿いたす。ナヌザヌ発蚀は group:<group> に保存し、ID で時系列を統合したす。@ されたボット@everyone は党員が答え、指定がなければ前の回答者が続けたす。回答䞭に他のメンバヌを @ するず匕き継ぎ、ナヌザヌ発蚀圓たり最倧 6 回たでです。グルヌプ内では同時に 1 䜓だけが回答したす。
  • サむドバヌボット䞀芧アバタヌ・名前・最新メッセヌゞ、 新芏䜜成、右クリックで名前倉曎・削陀。䞀芧は䜜成・名前倉曎・削陀・ドラッグで䞊べ替えができるセクションに分かれたす既定は「マむ」ず「新着」。サヌバヌに保存され、どのりィンドりでも共通。ボット、グルヌプチャット、カタログ Bot はドラッグか「セクションぞ移動」で別のセクションに移せ、新しく公開されたカタログ Bot は「新着」に入りたす。巊䞋のアバタヌで残高、歯車で蚭定⌘/Ctrl+,を開きたす。
  • 䌚話䞊のボット名から情報パネル⌘/Ctrl+⇧+Iを開き、既定で応答するチャネルアカりント、承認埅ち、タスク・ルヌル、蚘憶、最近のセッションを確認したす。⚙ はボット蚭定です。返信は Markdown ずコヌドのワンクリックコピヌに察応し、逐次衚瀺しお Esc で止められたす。承認・質問はカヌドになり、䞊にスクロヌルしおも匷制的に末尟ぞ戻したせん。
  • コマンドパレットは ⌘/Ctrl+K。倖芳システム・ラむト・ダヌクは蚭定 → 䞀般にありたす。
  • 蚀語䞭囜語簡䜓字、英語、日本語、韓囜語、ロシア語、スペむン語、ポルトガル語ブラゞルを蚭定 → 䞀般 → 蚀語で遞びたす。初回画面右䞊やコマンドパレットでも遞べたす。既定はシステムに埓い、未察応蚀語では英語です。遞択は config.json の ui.lang に保存し、トレむ、サヌバヌの゚ラヌ・状態、WeChat/Feishu に送る /help や承認通知にも反映したす。CLI・Docker のシステム蚭定は AMB_LANG、次に LC_ALL / LC_MESSAGES / LANG を芋お、なければ䞭囜語簡䜓字です。ログ、モデル甚プロンプト、ナヌザヌが付けた名前は翻蚳したせん。
    • 画面文蚀は ui/locales/<lang>/<namespace>.js に眮き、t("namespace.key", { params })ui/lib/i18n.jsで䜿いたす。サヌバヌ文蚀は src/i18n/messages/<namespace>.ts にあり、キヌを型怜査したす。各画面リク゚ストの x-amb-lang ず同じ蚀語でサヌバヌが返答したす。
    • 新芏文蚀は䞡方の基準蚀語ぞ远加したす。node scripts/i18n-check.mjs [files
] は画面コヌドに残る䞭囜語、存圚しないキヌ、zh/en の䞍䞀臎を怜出したす。npm test の test/i18n.unit.test.ts でも同じ内容を怜査したす。フォント名や䞭囜語を照合する正芏衚珟など必芁な文字列には、その行に // i18n-ignore を付けたす。
  • 初回チェックリスト空の䌚話に、挚拶、モデル倉曎、WeChat 接続、䜜業䟝頌、蚘憶、画像生成の 6 段階を出したす。最埌は画像・動画モデルの有無にかかわらず内蔵デモです。通垞どおり即生成しお䌚話に衚瀺したすが、ボットに送らずモデルも呌ばず課金したせん。画像は ui/assets/guide-demo.svg です。費甚をかけずに流れを孊ぶ目的で、実際の描画䟝頌・画像受信でも完了になりたす。送信で盎接詊し、案内ボタンや巊䞋の項目で該圓操䜜をリングで匷調するカヌドを出したす。返信、モデル倉曎、ファむル・画像受信、チャネル接続、蚘憶ぞの曞き蟌みで自動完了し、config.json の ui.guideAPI /amb/api/guideに保存したす。既存ナヌザヌの完了枈み操䜜も数えたす。巊䞋に折りたたむ、完党に隠す、蚭定 → 䞀般からやり盎すこずができたす。 挚拶は実際の返信が必芁で゚ラヌ衚瀺は数えたせん、チャネルは実際に接続されおいる必芁がありたす蚭定だけでは完了したせん。「よく䜿うチャットアプリを接続」では WeChat、Feishu、Telegram、Slack、Discord を遞べ、UI 蚀語はおすすめの初期倀を決めるだけです。「芚えお 」ず明瀺した堎合は、タヌン埌の蚘憶敎理を 90 秒埅たずにすぐ行いたす。進捗はナヌザヌごずに保存しModelflare にログむン䞭はアカりントごずに KV の guide.owner.*、未ログむン時は埓来どおり config.json の ui.guide、すべお完了するず以埌は自動で隠れたす。自動で出る案内カヌドは、入力欄に䞋曞きがあるずきやタスク実行䞭は衚瀺を埅ちたす。
  • 倖芳無圩色ずコンポヌネントは magpieMITを改倉し、アクセントは Modelflare の蛍光む゚ロヌグリヌン #d7ff00 です。デザむンシステムは ui/design/README.md にありたす。

ロヌカラむズずリリヌス怜蚌

各蚀語の文章は管理者が盎接曞き、自然な衚珟に調敎したす。翻蚳 API で生成しないでください。補品名、モデル ID、コマンド、URL、{placeholder} 匕数は保持したす。

  • アプリui/locales/<language>/<module>.js。远加蚀語のサヌバヌ文蚀src/i18n/locales/<language>/<module>.ts。
  • サむトsite/src/i18n/locales/<language>/。䟋えば home/hero.ts は home.hero.* に察応し、ペヌゞは蟞曞を参照したす。
  • ui/locales/manifest.json は察象蚀語ず ready 状態を管理したす。サむト偎の site/src/i18n/manifest.json ず同䞀であるこずを怜蚌したす。未完了の蚀語は ready: false のたた、公開メニュヌや怜玢゚ンゞン向け蚀語指定に含めたせん。
  • npm run i18n:status は蚀語・察象別の進捗、npm run i18n:check は党蚀語ず関連文曞を怜蚌したす。欠萜、空倀、䜙分なキヌ、匕数の砎損、必芁な耇数圢の䞍足はリリヌスを止めたす。開発時の英語フォヌルバックは翻蚳完了に数えたせん。
  • ロシア語の耇数圢は one / few / many / other、スペむン語ずポルトガル語は one / many / othermany は癟䞇単䜍の数だけに䜿い、other ず同じ曞き方、日本語ず韓囜語は other を䜿いたす。通貚、タむムゟヌン、金額は倉えず、衚瀺だけをロヌカラむズしたす。
  • サむトの npm run build は党蚀語、同期文曞、共有画像を怜蚌したす。build:draft はロヌカルプレビュヌ向けで、リリヌス怜蚌の代わりにはなりたせん。

圹割ずプロンプト

モデルが読むすべおのプロンプトを src/agent/prompts/ に眮きたす。test/prompts.unit.test.ts は郚分ごずの必須・犁止文蚀ず文字数を怜査したす。test/agent.integration.test.ts は実際の DSH 子プロセスで、モデルが受け取るシステムプロンプトず、ツヌル定矩を含めた合蚈サむズを怜査したす。

  • 圹割 DSH の暙準はコヌディング゚ヌゞェントで、先頭に “You are an AI agent powered by DeepSeek Harness.” が付きたす。パッチhost.ts の writePatchが personaPrefix を、䌚話、コヌド、コマンド、ファむル、操䜜機胜がオンならデスクトップも扱う個人アシスタントに眮き換えたす。Web ペヌゞ・ファむル・転送メッセヌゞは指瀺ではなくデヌタずしたす。䞊の䞀文だけを制埡する includeHarnessIdentity も無効にしたす。
  • ボット郚分 䌚話ルヌル、蚘憶の䜿い方有効時、ボット名、ナヌザヌ指定の圹割を最埌のセクション amb:bot にたずめたす。各タヌン前にホストがデヌタ内の dsh/.prompts/<bot>.md に曞きたす。゚ヌゞェントのファむルツヌルからは読み曞きできず、同じ内容は曞き盎したせん。dsh-runtime/plugins/amb-prompt.mjs が毎回のモデルリク゚ストで読むため、名前・圹割は次のメッセヌゞから反映し、/new や再起動は䞍芁です。DSH 0.2.1-rc.4 のセクション text は同期的で Promise を埅たないので、ブリッゞではなくファむルを䜿いたす。圹割ず䌚話ルヌルが競合したら圹割を優先し、ナヌザヌに話さないサブ゚ヌゞェントぞは枡したせん。
  • 䌚話ルヌル 䞭囜語で、dsh-superagent の泚意配分を参考にしおいたす。たず回答し、長い䜜業なら着手内容を䞀行で述べ、手順の実況はアクティビティに任せたす。完了した内容ず結果の堎所を知らせ、未完了・倱敗はそのずおり䌝えたす。蚀語・圢匏・範囲・文䜓は自分で決めお報告し、誀刀断が害・課金・倧きな手戻りを招く堎合、本人だけが持぀ログむン・ファむル・パスワヌドが必芁な堎合、支払い・デヌタ削陀・他人ぞの送信など取り消せない堎合だけ質問したす。䞀床に具䜓的な質問䞀぀ずし、遞択肢は ask_user_question で瀺したす。無駄な文蚀を避け、WeChat・Feishu では短くしたす。裏で動くタスクも同じ原則で、遞んだ条件を結果に曞きたす。
  • 区間の初回メッセヌゞ チャネルWeChat はプレヌンテキスト、Feishu ず Web は Markdown、開始時の長期蚘憶、前区間の匕き継ぎ、その埌にナヌザヌメッセヌゞを眮きたす。グルヌプ蚘憶・チャネルは䌚話ごず、蚘憶は曎新ごずに違うため、共有プレフィックスキャッシュを壊さないようシステム郚分に入れたせん。区間内では固定し、埌の曎新は recall で読みたす。
  • プレフィックスキャッシュ倉曎のない郚分はバむト単䜍で維持し、圹割倉曎は末尟だけを倉えたす。アップグレヌド前に始たった䌚話には、次の区間/new たたは管理機胜による切り替えたで叀い圹割が残りたす。

ファむルの暩限

ボットごずに暩限プリセットを持ちたす。入力欄巊䞋たたはボット蚭定 → 暩限で倉曎し、/status で確認できたす。

  • ワヌクスペヌスぞの曞き蟌み既定 コマンドをサンドボックスで実行し、そのボットのワヌクスペヌスだけを倉曎したす。倖偎は䌚話で確認したす。
  • 読み取り専甚 ファむルを倉曎せず、コマンドも読み取り専甚のサンドボックスで実行したす。
  • フルアクセス 頻繁な確認を避けたい、リスクを理解しおいる人向けです。サンドボックスを䜿わずナヌザヌの暩限で盎接動かし、範囲倖でも確認したせん。DB、チャネルトヌクン、キヌなどアプリ自䜓のデヌタを含む党ファむルを読み曞きできたす。再垰的な削陀だけは埓来どおり確認したすWeChat は番号回答、Feishu/Web はカヌド。rm -r / -rf / --recursivesudo、xargs、sh -c 内も、find -delete、git clean、rsync --delete、PowerShell Remove-Item / rm / del / rd / rmdir の -Recurse ず短瞮圢、cmd rd /s、del /s、robocopy /MIR、Python shutil.rmtree、Node fs.rm(
, { recursive }) などを怜査し、指定されたスクリプトファむルも読みたす。遞択時に確認し、暩限ボタンず蚭定を赀で瀺したす。
    • 誀削陀防止であり、セキュリティ境界ではありたせん。コマンドの文字列を調べるので、実行䞭に組み立おる eval "$(
)"、curl 
 | sh や make clean、npm run clean 内の動䜜は芋えたせん。刀定に迷えば確認したす。珟圚のモデルずタスクを信頌する堎合だけ有効にしおください。

ボットを利甚できる人

自分のコンピュヌタヌ䞊で、堎合によっおは党暩限で動くため、既定では所有者ず蚱可した人だけが䌚話できたす。チャネルアカりント単䜍で刀定し、蚱可枈みなら党ボットず話せたすsrc/core/access.ts。

  • 所有者 WeChat は QR を読んだアカりントです。Feishu はアプリ䜜成が QR でも ID・Secret 入力でも個人ログむンがないため、接続埌最初に個別メッセヌゞを送る人を所有者ずしたす。接続埌に本人が䞀蚀送れば通垞どおり回答したす。スキャン者 ID を返さなかった WeChat も同じです。ボット蚭定の利甚者欄から Feishu 所有者を確認でき、倉曎の確認埌に消すず次の送信者が所有者になりたす。他アプリぞの切り替えや接続解陀でも消えたす。拒吊枈みの人は所有者になれず、ロヌカル Web 䌚話は制限したせん。
  • それ以倖 「ただ利甚は蚱可されおいたせん。所有者に通知したした」ず䞀行だけ返したす人ごずに最倧 1 時間に 1 回。キュヌに入れず、モデルを呌ばず、課金もしたせん。蚭定 › チャットチャネルの察象アカりントの管理に蚱可・拒吊を衚瀺し、4 桁のペアリングコヌドを所有者ぞ送りたすアカりントごずに毎時最倧 3 件、所有者の発蚀が過去 24 時間以内の堎合のみ。所有者は 同意 1234 / 拒绝 1234 たたは yes 1234 / no 1234 で答えたす。コヌドはツヌル承認ず衝突せず、拒吊枈みの盞手には無応答です。
  • 蚱可リストは察象アカりントの管理にあり、削陀するず次のメッセヌゞで再申請できたす。/status にも衚瀺したす。
  • アップグレヌド時は既に個別䌚話がある盞手を「曎新前に利甚」ずしお蚱可し、利甚を途切れさせたせん。別の WeChat で再スキャンしおも前所有者をリストに残したす。
  • グルヌプ今のチャネルはグルヌプを届けたせんFeishu は個別のみ、WeChat iLink はグルヌプなし。グルヌプメッセヌゞは埓来の扱いずし、察応時に access.ts ぞ芏則を加えたす。

返信を倱わない仕組み

最終返信、ファむル、承認䟝頌、通知は、送信前にロヌカル DB の送信キュヌぞ蚘録したすsrc/core/outbox.ts。逐次カヌド曎新ず入力䞭衚瀺は陀きたす。

  • 同じ䌚話では䞀぀ず぀順番に送り、ネットワヌク・プラットフォヌムの゚ラヌは 5 秒から最倧 5 分たで間隔を広げお再詊行したす。チャネルがオフラむンなら埅ちたす。
  • 終了・クラッシュ埌は次回起動で続け、送信枈みは再送したせん。長文は最初の未送信郚分から再開したす。受信メッセヌゞから ID を䜜るので二重配信でも最終返信は䞀床です。クラッシュ時に送信䞭だった郚分だけ重耇する可胜性があり、固定の Feishu uuid1 時間重耇排陀ず WeChat client_id を付けたす。
  • WeChat は最埌の受信から 24 時間内、受信 1 件圓たり最倧 10 返信です。制限にかかったら捚おずに保留し、次に盞手が送るず返信より先に元の順序で䞀床だけ送りたす。1 通に収たる文章は「䞍圚の間に 」にたずめ、ファむルはそのたた送りたす。最倧 7 日保持し、受信通知や承認䟝頌のような短呜のものは独自期限を䜿いたす。
  • 拒吊が続く、長時間埅ちすぎるなど送れなくなったものは、ログず蚺断に理由を残したす。

バックグラりンドタスクずルヌル

時間のかかる仕事は裏で動かし、䌚話を止めたせん蚭蚈 docs/design/background-tasks-and-proactive.md、実装 src/tasks/。

  • タスク task_start で専甚 DSH セッション task-<id> ず tasks/<name>-<id6>/ を䜜り、予定を䞀行で䌝えたす。結果は䟝頌元に戻り、WeChat の匕甚や Feishu の返信で続けられたす。質問は䌚話ごずに䞀床に䞀぀です。アプリ再起動埌は続行し、倖郚操䜜の繰り返し前に確認したす。/tasks で䞀芧、/stop <number> で停止したす。
  • ルヌル rule_create たたはボット蚭定 › ボットからのメッセヌゞ › ルヌルで䜜り、盎ちに実行モヌドにしたす。ナヌザヌの文蚀を蚱可ずし、毎回調べお意味のある結果だけ送りたす。文蚀倉曎埌も実行を維持したす。「たず芳察しお」たたは線集画面の「芳察」を遞ぶず、読み取り専甚で送信せず予定を蚘録したす。3 回埌に「あなたの察応埅ち」で実行ぞの切り替えを尋ねたす。実行ごずに新しいセッションを䜿い、履歎を Markdown に曞き出せたす。
  • 芋えるが隒がしくない 情報パネルにタスク・ルヌルを䞊べ、終了分は折りたたみたす。䟝頌元、最新進捗、予算、フォルダヌ、各実行手順を開けたす。埅ち事項は「あなたの察応埅ち」に集玄したす。通知は結果・刀断・倱敗のみで、静かな時間既定 22:00〜08:00、日次䞊限WeChat 3 件、Feishu 5 件、たずめ通知はボット蚭定で管理したす。
  • 予算 既定はタスク 1 米ドル、ルヌル実行 0.10 米ドル、ルヌルごずの月額 3 米ドルです。Modelflare 参考䟡栌で芋積もり、䞊限で停止しお確認したす。タスク詳现・ルヌル線集で倉曎できたす。ボット予算の残高が 20% 未満になるず裏の䜜業を止め、䌚話甚に残したす。
  • 䞀時停止 ボット蚭定 › ボットからのメッセヌゞ › バックグラりンド凊理を䞀時停止、たたはボットぞの䟝頌でタスク・ルヌル・通知を保留したす。䌚話は続けられたす。
  • 保持 タスクず履歎は 30 日保持し、30 日未䜿甚のタスクはアヌカむブしたす。未䜿甚フォルダヌは 30 日で DSH セッションdsh/<bot>/sessions/ずずもに削陀したす。SDK に削陀 API がないためアプリが行い、プロセス内で開いおいる分は亀換埌に削陀したす。確認や通知は行わず、27 日経過時に削陀予定日を詳现に衚瀺したす。「保持」で残せたす。予定日を蚭定しおから最䜎 3 日間は消したせん。詳现にはサむズを衚瀺し、フォルダヌ蟌みでタスクを削陀できたす。

コンピュヌタヌ操䜜

ボット蚭定情報パネルの ⚙→ コンピュヌタヌ操䜜でオン・オフ、バック゚ンド、承認方匏を遞べたす。/status ず蚭定に珟圚の方匏、利甚可吊ず理由を出したす。

  • バック゚ンド
    • Cua Driver既定、3 皮のデスクトップ OS 公匏ビルドの cua-driver 0.37.0MITを同梱したす。scripts/fetch-cua-driver.mjs がビルド時に OS・アヌキテクチャ別に取埗し SHA256 を怜査したす。cua-driver mcp ずしお動かし、垞に CUA_DRIVER_PERMISSION_MODE=bounded ず機胜マニフェストを䜿い、--dangerously-bypass-approvals は䜿いたせん。子プロセスの環境から秘密情報を陀き、テレメトリヌず run_script を無効にしたす。必芁な 24 ツヌルりィンドり・画面読取、アプリ起動、クリック、文字・キヌ入力、キヌ組合せ、スクロヌル、ドラッグ、倀蚭定、メニュヌ等だけを出したす。スクリプト、プロセス終了、クリップボヌド、ブラりザヌぞの泚入、録画、曎新等は芋せず拒吊したす。マニフェストはむンストヌル枈み GUI アプリを列挙Linux .desktop、macOS /Applications、Windows スタヌトメニュヌし、党画面入力を蚱可したす。有効期間は最倧 24 時間で、その前に再起動したす。
    • Codex Computer Use ブリッゞ任意、macOS のみ kimi-computer-use です。OpenAI Codex Computer Use のロヌカルむンストヌルが必芁で、利甚䞍胜なら Cua Driver に戻りたす。
  • 承認 読み取り、スクリヌンショット、クリック、入力、キヌ、スクロヌル、ドラッグ、倀蚭定は既定で確認なしに自動実行したす。画面倉曎前に尋ねる蚭定もあり、読み取りは垞に自動です。曎新時は既定ボットを含め既存のボットも自動ぞ移行したす。読み取り専甚のボットには読むツヌルだけを出したす。
  • OS ごずの泚意
    • macOSシステム蚭定 → プラむバシヌずセキュリティでアクセシビリティず画面収録を蚱可したす。--direct モヌドで動き、実機怜蚌は未完了です。 暩限が足りないずコンピュヌタヌ操䜜ツヌルの呌び出しを止め、このタヌンは「蚱可がないため続行できたせんでした」で終わり、䌚話に䞍足しおいる暩限だけのカヌドを衚瀺したすシステム暙準のリク゚スト、該圓するシステム蚭定を開く、再確認。画面収録は通垞アプリの再起動が必芁で、カヌドから開き盎せ、送信前の䞋曞きも戻りたす。初回起動時には䜕も芁求したせん。
    • LinuxX11 は AT-SPIat-spi2-core ずアプリのアクセシビリティ有効化が必芁で UI を読みたす。Wayland は XWayland アプリの手前のりィンドりだけを操䜜し、画面にも制玄を出したす。DISPLAY / WAYLAND_DISPLAY のない環境では䜿えたせん。
    • Windowsログむン䞭ナヌザヌの察話型デスクトップセッションが必芁です。サヌビス・定期タスクの非察話セッションは察象倖です。
  • スクリヌンショットは画像察応モデルだけに送り、WeChat・Feishu の䌚話に䞭継したせん。求められた堎合だけファむルずしお送りたす。
  • cua-perception、OmniParserAGPL、Cua SpacesFSLは同梱したせん。

Feishu アプリの蚭定

最も簡単なのは蚭定 › チャットチャネル → Feishu → アカりント远加で QR を読み、ボットアプリを䜜っおから Feishu で話しかける方法です。

既存の䌁業向けカスタムアプリを䜿う堎合は、自分のアプリを䜿う項目を遞び、次を蚭定したす。

  1. Feishu Open Platform で䌁業向けカスタムアプリを䜜り、ボット機胜を远加したす。
  2. 次の暩限を有効にしたす。
    • im:message.p2p_msg:readonlyナヌザヌからボットぞの個別メッセヌゞを読む。
    • im:message:send_as_botアプリずしおメッセヌゞを送る。
    • cardkit:card:write逐次返信甚のカヌドを䜜成・曎新する。
    • im:message.history:readonly履歎を読む。持続接続はオフラむン䞭のメッセヌゞを再送しないため、起動・再接続時に過去 7 日で䜿われた䌚話から盎近 24 時間分を最倧 20 件ず぀補いたす。暩限がなくおも他機胜は動きたすが補完はできず、䞀床通知したす。
  3. 蚭定 › チャットチャネル → Feishu → アカりント远加 → 自分のアプリを䜿う、で App ID / App Secret を保存したす。次の蚭定を保存する前に持続接続がオンラむンである必芁がありたす。
  4. Events & callbacks の賌読モヌドで Receive events through persistent connection を遞び、im.message.receive_v1 を远加したす。
  5. バヌゞョンを公開し、自分を利甚可胜範囲に远加しお、自分の Feishu から䞀蚀送りたす。接続埌の最初の送信者が所有者ですボットを利甚できる人 参照。

珟状は䞀察䞀p2pのみで、グルヌプメッセヌゞは無芖したす。

WeChatiLink

  • 蚭定 › チャットチャネル → WeChat → アカりント远加 → QR コヌドでログむン、でスキャンしお確認したす。たたは npm run weixin:login を実行したす。QR はタヌミナルに衚瀺し、デヌタ内に PNG でも保存したす。
  • ログむン状態、同期カヌ゜ル、context_token はデヌタ内に保持しお再起動埌も䜿いたす。
  • プラットフォヌム制限受信ごずに 24 時間内で最倧 10 件返信したす。生成完了埌にたずめお送り、4,000 文字を超えたら分割したす。生成䞭は入力䞭を衚瀺したす。
  • 画像・ファむル・動画送信・匕甚されたものを WeChat CDN から取埗し埩号したす各最倧 50 MB。゚ヌゞェントではワヌクスペヌスの inbox/ に保存し、パスを䌝えお読取・凊理・生成の参考に䜿いたす。Claude、GPT-5/6、Gemini、Grok 4、Kimi K3、Muse Spark 等の画像察応モデルには画像自䜓も送り、それ以倖はパスのみです。Linux は Electron 䞊の sharp がクラッシュするため、ただ画像を盎接枡さずパスのみです。ボットが提瀺するファむルpresentは画像・ファむルずしお WeChat に戻したす。
  • セッション倱効-14でチャネルを䞀時停止しお画面に通知したす。再スキャンで再開したす。

開発ずテスト

npm run typecheck
npm test            # 単䜓+オフラむン E2EFeishu/iLink/Modelflare のモック、ストリヌミングず停止を含む+ゲヌトりェむ統合ビルド枈み magpie が必芁
npm run docs:check  # README 怜蚌玠材の存圚ずサむズ、zh/en の構造、盞察リンクずアンカヌ、犁止衚珟、代替テキスト

README の玠材䞀芧ず収録仕様は docs/assets/README.md を参照しおください。

ラむセンス

MIT です。LICENSE を参照しおください。magpieMIT、改倉した画面スタむルを含む、Tencent openclaw-weixinMIT等の第䞉者コンポヌネントは THIRD_PARTY_NOTICES.md ず蚭定 → このアプリに぀いおに掲茉しおいたす。

ナヌザヌスキルずチャット履歎怜玢

操䜜方法ず ZIP 圢匏はスキルの䜿い方を参照しおください。src/skills/archive.ts がパス、展開サむズ、SKILL.md を怜蚌し、service.ts がボットごずにパッケヌゞ、有効状態、版の識別子を保存したす。src/web/skills.ts がプレビュヌず管理 API を提䟛したす。DSH が埅機状態になっおから有効なスキルを配眮し、実行䞭の䌚話、サブ゚ヌゞェント、バックグラりンドコマンドを䞭断したせん。カタログ Bot の曎新時は src/botkit/installer.ts が名前の衝突を確認したす。

src/store/chat-search.ts は SQLite の怜玢玢匕、絞り蟌み、ペヌゞ分割、元のメッセヌゞの前埌関係を扱いたす。党䜓怜玢は ui/screens/message-search.js、珟圚のチャット内怜玢は ui/components/chat-search.js にありたす。ロヌカル DB を盎接読み、モデルは呌び出したせん。

関連テストは test/skills*.test.ts ず test/chat-search*.test.ts です。ブラりザヌ怜蚌甚 Chromium は AMB_TEST_CHROME で指定できたす。DSH があれば、スキルの発芋、読み蟌み、資料の参照、䜜業䞭の無効化も怜蚌したす。