ネットワークと運用
HTTPS / LAN アクセス
同じネットワークの他デバイス(スマホ、タブレット、PC)からアクセスできます。HTTPS は、 非ローカルホストのオリジンで音声入力やクリップボードに必要なブラウザの Secure Context を有効にします。
APP_HOST=0.0.0.0
APP_SSL_CERTFILE=.certs/cert.pem
APP_SSL_KEYFILE=.certs/key.pem
mkcert を使う手順:
- mkcert をインストールし
mkcert -installを実行 - 証明書を発行:
mkcert -cert-file .certs/cert.pem -key-file .certs/key.pem <your-ip> localhost 127.0.0.1 - 上記の環境変数を
.envに設定 - ファイアウォールでポートを許可(本番 8000、開発 5173)
- 各クライアント端末に CA 証明書(
rootCA.pem)をインストール
LAN から は https://<your-ip>:8000 でアクセス。SSL 未設定なら従来どおり HTTP モードで
動作します(破壊的変更なし)。
社内ネットワーク(TLS 傍受プロキシ)
社内プロキシ(Zscaler, Netskope, オンプレ機器)配下では、Python 同梱の certifi が
社内ルート CA を知らないため、最初の外向き HTTPS 通信が失敗することがあります:
httpx.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed: self-signed certificate in certificate chain
推奨対処は、TLS 検証を OS の証明書ストア経由にする任意の corp extras です:
pip install "chatwalaau[corp]"
ソース変更も環境変数変更も不要で、非社内環境への影響もありません。あるいは明示的な CA バンドルを指定します:
export SSL_CERT_FILE=/path/to/corp-root-ca.pem
export REQUESTS_CA_BUNDLE=/path/to/corp-root-ca.pem
0.163.0 までは DEVUI_* 設定でバックエンドが Microsoft Agent Framework の DevUI を
別ポートに起動できました。0.164.0 で削除しました。 DevUI が提供していたデバッグ用
エージェントは、製品が実際に動かすエージェントとは別物でした(MCP ツールなし、
rag_search なしで構築されるため、そこで見えるものはチャットの挙動ではありません)。
その役割は、チャット画面そのもの、OpenAI 互換 API、ワークフロー、ハーネスエージェント、
使用量ダッシュボードが担っています。既存の .env に DEVUI_* が残っていても無視される
ため起動には影響しません。都合のよいときに削除してください。
プロンプトダンプ(モデルが実際に受け取った内容)
回答がおかしいのに設定は正しく見える、というとき、本当に知りたいのは「モデルに実際 何が送られたか」です。プロンプトダンプを有効にします:
PROMPT_DUMP_ENABLED=true
# PROMPT_DUMP_DIR=.prompts # 既定値
run ごとにタイムスタンプ付き Markdown ファイルが書かれ、組み立て済みシステムプロンプト (初回ターンのみ。セッション中は凍結されるため)、流れる会話、そして ツールサーフェス が記録されます。プロンプト内容はファイルにのみ出力され、ログにはメタデータのみが残ります。
システムプロンプト内では、各ツールの使い方ガイダンスがツールごとに
<tool-guide name="weather">、<tool-guide name="rag"> … のラベル付きブロックに
まとめられるため、どの指示がどのツールに属するか一目で分かります。
用が済んだら無効化してください。ファイルは蓄積し、会話内容を含みます。
ツールサーフェス
ツールサーフェスのセクションは、組み込み関数・MCP サーバとツール・Skills を、 そこに無いものも理由付きですべて列挙します:
### Built-in functions (4 active / 13 excluded)
- file_write ACTIVE
- bash_execute EXCLUDED allowlist
- rag_search EXCLUDED settings (CHROMA_DIR unset or no embeddings offering)
- manage_cron EXCLUDED settings (CRON_ENABLED=false)
### MCP (1 active server / 1 excluded / 1 warning)
- github ACTIVE 2/14 tools
- create_issue ACTIVE
- delete_repo EXCLUDED mcp override
- filesystem EXCLUDED allowlist (server not selected)
- slack WARNING not connected; allow-list not applied
理由は、そのゲートを所有している画面を指しています:
| 理由 | どこで直すか |
|---|---|
settings | .env。行に変数名または不足しているモデル offering が示されます |
allowlist | Declarative Agent エディタのツール選択 |
mcp override | MCP Servers 画面(そこで無効化) |
skills override | Skills マネージャ |
not connected | MCP サーバが未接続。接続後に Reload してください |
MISMATCH の行は、ビルドされたエージェントと設定が説明のつかない形で食い違っている
ことを示します(あるはずのツールが無い、または逆)。これは設定の問題ではなく不具合です。
ダンプを保存して報告してください。
WARNING not connected の行は別の意味で重要です。サーバが未接続の間はツール名が不明
なため、ツール単位の許可リストを適用できず、接続された時点でそのサーバの全ツールが
公開されます。
このセクションはシステムプロンプトと異なり毎ターン書かれます。MCP マネージャ、Skills
マネージャ、Declarative Agent の切り替えによって、セッション途中でもツール構成が変わり
うるためです。digest 行を見れば、どのターンで変化したかが一目で分かります。
チャットの返信が "network error" で終わる
チャットの返信に出る Error: network error は、ストリーミング中に応答が切れたときのブラウザの
メッセージで、サーバがエラーを返したわけではありません。Azure App Service や Azure Container Apps
の背後では、フロントエンドのアイドル上限が主な原因です。データが約 4 分流れない接続は閉じられます。
-
v0.197.1 以降、すべてのチャットターンは、出力のない 15 秒ごとに SSE コメント (
: keep-alive)を送ります。処理中だが無音のターン(遅いツール、Web 検索、長い推論)も切られ ません。ChatWalaʻau の前に別のプロキシを置く場合は、text/event-streamの応答をバッファしない ことを確認してください(サーバはX-Accel-Buffering: noとCache-Control: no-cacheを既に 送っています)。 -
返信が終わる前にブラウザがチャットのストリームを閉じると、サーバは警告を 1 行出します:
AG-UI stream closed by the client before the run ended: thread=<id> run=<id>lane=prompt elapsed=231.4s silent_for=3.2s keepalives=14silent_forは最後の実イベントからの秒数です。4 分近くでkeepalives=0なら 、キープアライブが ブラウザに届いていません(バッファする中継があります)。小さい値なら、利用者が Stop、再読み込み、 タブを閉じる、ネットワークの切り替えのいずれかをしています。この行にメッセージ本文は含まれません。 -
利用者には、受け取り済みのテキスト、返信が保存されていないという通知、Retry が表示されます (メッセージ操作 を参照)。