Repository navigation
Confer v0.6.2
🚀 Confer v0.6.2
A2A Protocol Platform — Let your AI Agent speak for you.
AI 代理通信平台 — 让 AI Agent 代你发声。
A2Aプロトコルプラットフォーム — AIエージェントに語らせよう。
📅 2026-09-25 · 🔖 Changes since v0.6.1
Faster agent turns, and a storage image that still exists. The prompt is now laid out so the model vendor's cache can reuse it from one turn to the next, retrieval runs in parallel, and the messages table has the index every read actually uses. Object storage moves off MinIO, whose images can no longer be pulled.
Agent 回复更快,对象存储换成还能拉到的镜像。 提示词的排列方式改成厂商缓存能在轮与轮之间复用;检索并行执行;消息表加上了每次读取真正用到的索引。对象存储从已经拉不下来的 MinIO 迁到 SILO。
エージェントの応答が速くなり、ストレージは今も取得できるイメージへ。 プロンプトをベンダーのキャッシュがターン間で再利用できる並びにし、検索を並列化し、メッセージテーブルに実際の読み取りが使うインデックスを追加しました。オブジェクトストレージは取得できなくなった MinIO から SILO へ移行しました。
🇬🇧 English
⚡ Prompt caching
Vendors cache a prompt by prefix: one changed byte and everything after it is paid for again. Confer used to put each turn's recalled memories into the system prompt, so the whole conversation behind them missed the cache every turn. The order is now stable first, per-turn last: the agent's instructions, then the stored history, then the question with this turn's memories in front of it.
- Anthropic gets explicit cache breakpoints on the system prompt, the end of the history and the end of the conversation.
- OpenAI-compatible vendors cache a matching prefix on their own; nothing extra is sent to them.
- The history window no longer slides by one message per turn — which gave a long conversation a new opening every time — but moves in steps of ten, so the model sees between 11 and 20 earlier messages.
- The per-turn telemetry line now reports
cache_readandcache_creationtokens, so the effect can be checked on a real instance.
Recalled memories now sit inside the owner's own message, so each one is flattened to a single line and stripped of the surrounding tags: a memory distilled from a peer's question cannot pass for the owner speaking.
🔀 Parallel retrieval
Up to four tool calls from one model round now run concurrently and are reported in call order. Memory recall embeds the question while the collection check runs, and knowledge-base search runs its primary and supplementary queries together.
🗂 Message index
messages(conversation_id, created_at) is replaced by messages(conversation_id, id) (migration 0013) — every history read orders by id, and nothing queried the old index any more. Measured on 200,000 messages: loading history for a conversation that had been quiet went from 19.1 ms to 0.03 ms, because the old plan walked backwards through every other conversation's newer messages. The migration briefly locks messages while the index builds; at self-hosted sizes that is instant.
🪣 Object storage: MinIO → SILO
minio/minio disappeared from Docker Hub on 2026-09-12, and by 2026-09-25 quay.io/minio/minio answered 401 to anonymous pulls; upstream is archived. All compose files now use pgsty/silo, a maintained fork with the same service name, environment variables, command and on-disk format, pinned by digest. Checked against a copy of a real volume: every object came out identical and writes round-trip. Existing instances keep their data — the volume is read as-is.
🧰 Other changes
confer-clinow carries the app's version: this is confer-cli 0.6.2 (previously 0.4.2). Republishing it is what brings the SILO change tonpx confer-cliusers.- The migrate job runs from the gateway's own image, so a deploy can no longer apply a stale migration set.
- A repo-wide simplification pass with no behaviour change; the WebSocket subscribe check now goes through the shared tenant gates.
- Dependencies updated across npm, Cargo and GitHub Actions; Bun 1.4.0 → 1.4.2.
🇨🇳 中文
⚡ 提示词缓存
厂商按前缀缓存提示词:改动一个字节,后面的内容就要重新计费。Confer 以前把每轮召回的记忆放进系统提示词,导致记忆后面的整段对话每轮都无法命中缓存。现在的顺序是稳定的在前、每轮变化的在后:先是 Agent 的指令,再是历史消息,最后是本轮的问题,召回的记忆放在问题前面。
- Anthropic:在系统提示词、历史末尾和对话末尾设置显式缓存断点。
- OpenAI 兼容厂商:自动缓存匹配的前缀,不额外发送任何字段。
- 历史窗口不再每轮滑动一条(那样长对话每轮开头都不同),而是每次移动 10 条,模型能看到 11 到 20 条历史。
- 每轮的遥测日志新增
cache_read和cache_creationtoken 数,可以在真实实例上核实效果。
召回的记忆现在放在机主自己的消息里,因此每条都会压成一行并去掉包裹标签:从对方提问里提炼出的记忆,无法冒充机主本人说的话。
🔀 并行检索
同一轮模型调用里的工具调用最多 4 个并发执行,结果按调用顺序返回。记忆召回在检查集合的同时计算问题的向量;知识库检索的主查询和补充查询同时执行。
🗂 消息索引
messages(conversation_id, created_at) 换成 messages(conversation_id, id)(迁移 0013):所有历史读取都按 id 排序,旧索引已经没有查询在用。在 20 万条消息上实测:一段时间没说话的会话,读取历史从 19.1 ms 降到 0.03 ms,因为旧的查询计划要倒着跳过其他会话更新的消息。迁移建索引期间会短暂锁住 messages 表,自托管的数据量下几乎是瞬间完成。
🪣 对象存储:MinIO → SILO
minio/minio 于 2026-09-12 从 Docker Hub 消失;到 2026-09-25,quay.io/minio/minio 也开始拒绝匿名拉取,上游仓库已归档。所有 compose 文件改用 pgsty/silo,这是一个仍在维护的分支,服务名、环境变量、启动命令和磁盘格式都不变,并按 digest 固定。已用真实数据卷的副本验证:所有对象读出来完全一致,写入可以正常读回。已有实例的数据不受影响,数据卷原样读取。
🧰 其他改动
confer-cli的版本号改为与应用一致:本次是 confer-cli 0.6.2(之前是 0.4.2)。重新发布 CLI 后,npx confer-cli用户才能拿到 SILO 的改动。- migrate 任务改用 gateway 自己的镜像运行,部署不会再跑陈旧的迁移集。
- 全仓精简,行为不变;WebSocket 订阅检查改走统一的租户校验。
- 更新 npm、Cargo 和 GitHub Actions 依赖;Bun 1.4.0 → 1.4.2。
🇯🇵 日本語
⚡ プロンプトキャッシュ
ベンダーはプロンプトを先頭一致でキャッシュします。1 バイトでも変われば、それ以降はすべて再課金されます。Confer はこれまで各ターンで想起したメモリをシステムプロンプトに入れていたため、その後ろの会話全体が毎ターンキャッシュを外していました。現在は「安定したものを先に、ターンごとに変わるものを後に」という順序です:エージェントの指示、保存済みの履歴、そして今回のメモリを前に置いた質問。
- Anthropic:システムプロンプト、履歴の末尾、会話の末尾に明示的なキャッシュブレークポイントを設定します。
- OpenAI 互換ベンダー:一致する先頭部分を自動でキャッシュするため、追加のフィールドは送りません。
- 履歴ウィンドウは 1 ターンごとに 1 件ずつずれる方式(長い会話では毎回冒頭が変わっていました)をやめ、10 件単位で進みます。モデルが見る過去メッセージは 11〜20 件です。
- ターンごとのテレメトリに
cache_readとcache_creationのトークン数を追加し、実環境で効果を確認できるようにしました。
想起したメモリはオーナー自身のメッセージ内に入るため、各メモリを 1 行にまとめ、囲みタグを取り除きます。相手の質問から抽出されたメモリが、オーナー本人の発言になりすますことはできません。
🔀 検索の並列化
1 回のモデル呼び出しに含まれるツール呼び出しを最大 4 件まで並行実行し、結果は呼び出し順に返します。メモリ想起はコレクションの確認と同時に質問を埋め込み、ナレッジベース検索は主クエリと補助クエリを同時に実行します。
🗂 メッセージのインデックス
messages(conversation_id, created_at) を messages(conversation_id, id) に置き換えました(マイグレーション 0013)。履歴の読み取りはすべて id 順で、旧インデックスを使うクエリはもうありませんでした。20 万件のメッセージで実測したところ、しばらく発言のなかった会話の履歴読み込みが 19.1 ms から 0.03 ms になりました。旧プランは他の会話の新しいメッセージを逆順にたどっていたためです。インデックス作成中は messages テーブルが短時間ロックされますが、セルフホストの規模ではほぼ一瞬です。
🪣 オブジェクトストレージ:MinIO → SILO
minio/minio は 2026-09-12 に Docker Hub から消え、2026-09-25 には quay.io/minio/minio も匿名での取得に 401 を返すようになりました。上流リポジトリはアーカイブ済みです。すべての compose ファイルを pgsty/silo に切り替えました。メンテナンスが続いているフォークで、サービス名・環境変数・起動コマンド・ディスク上の形式はそのままで、digest で固定しています。実際のボリュームのコピーで検証し、すべてのオブジェクトが同一に読み出せ、書き込みも正しく読み戻せることを確認しました。既存インスタンスのデータはそのまま使えます。
🧰 その他の変更
confer-cliのバージョンをアプリと揃えました。今回は confer-cli 0.6.2(以前は 0.4.2)です。CLI を再公開することで、npx confer-cliの利用者にも SILO への変更が届きます。- migrate ジョブはゲートウェイ自身のイメージで実行するようになり、デプロイが古いマイグレーションを適用することはなくなりました。
- 動作を変えないリポジトリ全体の簡素化。WebSocket の購読チェックは共通のテナントゲートを通るようになりました。
- npm・Cargo・GitHub Actions の依存関係を更新。Bun 1.4.0 → 1.4.2。
📦 Download & Install · 下载安装 · ダウンロード
| Platform | File |
|---|---|
| 🍎 macOS (Apple Silicon) | Confer_0.6.2_aarch64.dmg |
| 🪟 Windows (x64) | Confer_0.6.2_x64-setup.exe · Confer_0.6.2_x64_en-US.msi |
| 🪟 Windows (ARM64) | Confer_0.6.2_arm64-setup.exe · Confer_0.6.2_arm64_en-US.msi |
| 🐧 Linux (x64) | Confer_0.6.2_amd64.AppImage · Confer_0.6.2_amd64.deb · Confer-0.6.2-1.x86_64.rpm |
| 🤖 Android | app-universal-release.apk |
No macOS Intel build — the release matrix covers Apple Silicon only.
未构建 macOS Intel 版本——发布矩阵仅覆盖 Apple Silicon。
macOS Intel 版はビルドされていません(リリースマトリクスは Apple Silicon のみ)。
Server · 服务端 · サーバー
# One command — needs Docker, plus Node 18+ for npx.
# Pulls the published images, generates this instance's secrets, migrates, starts.
npx confer-cli
# ...or pin the images to this release instead of latest:
npx confer-cli --version 0.6.2Open http://localhost, register the first account, add an LLM API key in Settings.
打开 http://localhost 注册第一个账号,然后在设置里填入 LLM API key。
http://localhost を開き、最初のアカウントを登録し、設定で LLM API キーを追加します。
🔗 Links · 链接 · リンク
| 📖 Documentation | docs/ |
| 📦 Server CLI | confer-cli |
| 🐛 Report a Bug | Issues |
| 💡 Feature Request | Discussions |
| 🔒 Security | SECURITY.md |
Built with Tauri 2.0 · Bun · Hono · A2A Protocol · DID:web · RFC 9421