Site updated: 2026-11-12 17:11:21

This commit is contained in:
qinglong committed 2026-11-12 17:11:23 +08:00
1 parent 5fc5bf1a77
commit d715e3265e
253 files changed
+508 -297

No files matched your search

+107 -19
View File
@@ -10,8 +10,8 @@
</author>
<description>天生我材必有用</description>
<language>zh-CN</language>
<pubDate>Sat, 04 Oct 2025 22:55:00 +0800</pubDate>
<lastBuildDate>Sat, 04 Oct 2025 22:55:00 +0800</lastBuildDate>
<pubDate>Thu, 12 Nov 2026 20:35:00 +0800</pubDate>
<lastBuildDate>Thu, 12 Nov 2026 20:35:00 +0800</lastBuildDate>
<category term="hito" />
<category term="無言" />
<category term="博客" />
@@ -20,6 +20,110 @@
<category term="心得体会" />
<category term="技术分享" />
<category term="踩坑" />
<item>
<guid isPermalink="true">https://hitoli.com/2026/11/12/AI%E5%8F%8D%E4%BB%A3%E5%A5%BD%E5%B7%A5%E5%85%B7-Agent2Api%E6%8E%A8%E8%8D%90/</guid>
<title>AI反代好工具-Agent2Api推荐</title>
<link>https://hitoli.com/2026/11/12/AI%E5%8F%8D%E4%BB%A3%E5%A5%BD%E5%B7%A5%E5%85%B7-Agent2Api%E6%8E%A8%E8%8D%90/</link>
<category term="技术分享" scheme="https://hitoli.com/categories/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/" />
<category term="Docker" scheme="https://hitoli.com/tags/Docker/" />
<category term="AI" scheme="https://hitoli.com/tags/AI/" />
<category term="反代" scheme="https://hitoli.com/tags/%E5%8F%8D%E4%BB%A3/" />
<category term="Agent2API" scheme="https://hitoli.com/tags/Agent2API/" />
<pubDate>Thu, 12 Nov 2026 20:35:00 +0800</pubDate>
<description><![CDATA[ &lt;h4 id=&#34;起因额度都锁在客户端里&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#起因额度都锁在客户端里&#34;&gt;#&lt;/a&gt; 起因:额度都锁在客户端里&lt;/h4&gt;
&lt;p&gt;现在手里能用的 AI 额度,一多半是跟着客户端走的:某个 IDE 送的、某个 CLI 登录后才有的、某个网页版账号每天签到的。这些额度要么只能在它自家的客户端里点,要么协议各说各话 ——OpenAI 的 Chat Completions、Responses,Anthropic 的 Messages,还有一堆只有自家才认的私有接口。&lt;/p&gt;
&lt;p&gt;想把这些额度接进 Cherry Studio、Open WebUI、LobeChat,或者接进自己的脚本里跑点自动化,就得有个东西站在中间,把客户端的登录态接过来,翻译成标准的 OpenAI 兼容接口。这就是所谓「AI 反代」。&lt;/p&gt;
&lt;p&gt;试过几个之后,这段时间一直在用的是 &lt;strong&gt;Agent2API&lt;/strong&gt;( &lt;code&gt;aimod-cc/agent2api&lt;/code&gt; ),记录一下。&lt;/p&gt;
&lt;h4 id=&#34;项目基本情况&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#项目基本情况&#34;&gt;#&lt;/a&gt; 项目基本情况&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;仓库:&lt;span class=&#34;exturl&#34; data-url=&#34;aHR0cHM6Ly9naXRodWIuY29tL2FpbW9kLWNjL2FnZW50MmFwaQ==&#34;&gt;https://github.com/aimod-cc/agent2api&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;定位:本地 AI 路由网关 + Agent 客户端接管&lt;/li&gt;
&lt;li&gt;协议:AGPL-3.0&lt;/li&gt;
&lt;li&gt;形态:桌面端(Windows /macOS/ Linux)、无头服务器(Windows Server / Linux)、Docker(amd64 /arm64)&lt;/li&gt;
&lt;li&gt;默认端口:3065,同一个端口既是管理面板也是 OpenAI 兼容网关&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一句话概括它的思路:&lt;strong&gt;复用各家客户端的登录态,用一个 base_url 调 50 多家模型额度,统一 OpenAI / Anthropic / 生图接口,多账号选路、签到、余额和请求报表全在一个面板里。&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id=&#34;功能介绍&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#功能介绍&#34;&gt;#&lt;/a&gt; 功能介绍&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;1. 统一模型接口&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;同时提供 OpenAI 的 Chat Completions、Responses、Images 和 Anthropic 的 Messages 接口,模型目录统一管理。也就是说 Cherry Studio 这种只认 OpenAI 的客户端,和 Claude Code 这种只认 Anthropic 的,可以共用同一个网关、同一个 key。生图和参考图编辑也在里面(小浣熊、Loomy、Antigravity、ModelScope、WorkBuddy、豆包工作台这些来源)。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. AI 路由&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;模型映射、账号优先级、负载均衡、会话粘性和故障切换放在一处配。实际用起来最舒服的是「会话粘性」—— 同一轮对话固定走同一个账号,缓存命中率会好看很多。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Agent 客户端接管&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这个是我觉得最省事的部分。它不只是给你一个 URL,还能管理本地客户端的多套连接配置:一键导入现有设置、预览将要写入的内容、在「走网关」和「走官方」之间切换。改完即时生效,不用手工去翻各个客户端的 json 配置文件。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Provider 插件化&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;50 多家 provider 不是全塞在主程序里,而是按插件独立安装、独立更新。主程序升级不会把 provider 的实现冲掉;自定义 provider 则不需要装插件。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. 出口代理&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;可以给每个账号单独选代理池出口。多账号场景下这点很关键 —— 同一个 IP 上挂一堆账号,风控基本躲不过。作者还和 ProxyLane 有合作,用优惠码 &lt;code&gt;AGENT2API25&lt;/code&gt; 首购 25% off(这个按需,不是必须)。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6. 网关安全&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;网关 key 支持作用域划分;面板登录可以开人机验证;没配 key 的时候模型请求默认直接拒绝,不会出现部署完就裸奔的情况。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7. 请求报表&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;请求量、成功率、token 消耗、&lt;strong&gt;缓存命中率&lt;/strong&gt;,还有账号和 provider 的排行、用量环形图、365 天活跃热力图。趋势页是双轴的:24 小时缓存命中率折线 + token 消耗面积图。排查「到底是谁在烧额度」比翻日志快多了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;8. 后台维护&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;模型目录定时刷新、凭证维护、更新检查,外加每日自动签到 —— 按 provider 各自的时间窗跑(Qoder 10:01,ZCode 19:01,其它按设定时间),之后还有一轮补签,只补没签到的账号。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;9. 手机端&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;浏览器打开 &lt;code&gt;http://&amp;lt;网关IP&amp;gt;:3065/m&lt;/code&gt; 就是移动端面板,可以「添加到主屏幕」当 PWA 用;也有独立的 apk /ipa(iOS 那个未签名,要自己签)。&lt;/p&gt;
&lt;h4 id=&#34;适合什么场景&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#适合什么场景&#34;&gt;#&lt;/a&gt; 适合什么场景&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;把 IDE / CLI 送的额度接进 Cherry Studio、Open WebUI、LobeChat、new-api 之类的地方统一用&lt;/li&gt;
&lt;li&gt;多账号轮着用,顺手看余额、签到、用量统计&lt;/li&gt;
&lt;li&gt;给自己的脚本、机器人、内部小工具提供一个稳定的统一入口&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;反过来,如果只是想把几个正规的 API key 聚合成一个入口做分发,那 one-api /new-api 更合适,不需要 Agent2API 这套「接管客户端」的机制。&lt;/p&gt;
&lt;h4 id=&#34;如何下载&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#如何下载&#34;&gt;#&lt;/a&gt; 如何下载&lt;/h4&gt;
&lt;p&gt;Release 页面:&lt;span class=&#34;exturl&#34; data-url=&#34;aHR0cHM6Ly9naXRodWIuY29tL2FpbW9kLWNjL2FnZW50MmFwaS9yZWxlYXNlcw==&#34;&gt;https://github.com/aimod-cc/agent2api/releases&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;按用途挑一个就行:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&#34;highlight gherkin&#34;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&#34;gutter&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;2&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;3&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;4&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;5&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;6&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;7&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;8&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;9&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;10&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;11&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#34;code&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;comment&#34;&gt;# 桌面端&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;Agent2API_&lt;span class=&#34;variable&#34;&gt;&amp;lt;版本&amp;gt;&lt;/span&gt;_x64-setup.exe &lt;span class=&#34;comment&#34;&gt;# Windows&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;Agent2API_&lt;span class=&#34;variable&#34;&gt;&amp;lt;版本&amp;gt;&lt;/span&gt;_universal.dmg &lt;span class=&#34;comment&#34;&gt;# macOS&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;Agent2API_&lt;span class=&#34;variable&#34;&gt;&amp;lt;版本&amp;gt;&lt;/span&gt;_amd64.deb / .AppImage &lt;span class=&#34;comment&#34;&gt;# Linux&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;comment&#34;&gt;# 服务器(无界面,注册成系统服务,开机自启)&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;agent2api-server-windows-amd64.zip&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;agent2api-server-linux-&lt;span class=&#34;variable&#34;&gt;&amp;lt;arch&amp;gt;&lt;/span&gt;.tar.gz&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;comment&#34;&gt;# Docker&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;aimodcc/agent2api:latest &lt;span class=&#34;comment&#34;&gt;# amd64 / arm64&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;桌面端的用法:添加自定义 provider 和账号 → 建一个网关 key → 到 Agent 页面应用连接配置,或者直接把客户端指向 &lt;code&gt;http://127.0.0.1:3065/v1&lt;/code&gt; 并填上 key。&lt;/p&gt;
&lt;p&gt;服务器版的安装:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&#34;highlight bash&#34;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&#34;gutter&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;2&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#34;code&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;comment&#34;&gt;# Linux&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;tar -xzf agent2api-server-linux-amd64.tar.gz &amp;amp;&amp;amp; &lt;span class=&#34;built_in&#34;&gt;cd&lt;/span&gt; agent2api-server-linux-amd64 &amp;amp;&amp;amp; sudo bash install.sh&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&#34;highlight powershell&#34;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&#34;gutter&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;2&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;3&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#34;code&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;comment&#34;&gt;# Windows Server(管理员 PowerShell)&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;built_in&#34;&gt;Expand-Archive&lt;/span&gt; agent2api&lt;span class=&#34;literal&#34;&gt;-server-windows-amd64&lt;/span&gt;.zip &lt;span class=&#34;literal&#34;&gt;-DestinationPath&lt;/span&gt; C:\agent2api&lt;span class=&#34;literal&#34;&gt;-pkg&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;built_in&#34;&gt;cd&lt;/span&gt; C:\agent2api&lt;span class=&#34;literal&#34;&gt;-pkg&lt;/span&gt;; .\&lt;span class=&#34;built_in&#34;&gt;install-service&lt;/span&gt;.ps1&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;h4 id=&#34;docker-安装&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#docker-安装&#34;&gt;#&lt;/a&gt; Docker 安装&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;方式一:一条命令跑起来&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&#34;highlight bash&#34;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&#34;gutter&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;1&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#34;code&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;docker run -d --name agent2api --restart unless-stopped -p 3065:3065 -v ./data:/data aimodcc/agent2api:latest&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;注意 &lt;code&gt;./data&lt;/code&gt; 建议换成绝对路径,比如 &lt;code&gt;-v /opt/agent2api/data:/data&lt;/code&gt; ,不然换个目录执行 compose/run 就找不到原来的数据了。ARM 的机器(群晖、树莓派、ARM 云主机)直接拉就行,镜像本身就是多架构的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方式二:docker compose(推荐)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&#34;highlight yaml&#34;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&#34;gutter&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;2&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;3&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;4&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;5&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;6&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;7&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;8&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;9&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;10&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;11&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;12&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;13&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;14&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;15&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;16&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;17&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;18&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;19&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;20&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#34;code&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;attr&#34;&gt;services:&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;attr&#34;&gt;agent2api:&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;attr&#34;&gt;image:&lt;/span&gt; &lt;span class=&#34;string&#34;&gt;aimodcc/agent2api:latest&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;attr&#34;&gt;container_name:&lt;/span&gt; &lt;span class=&#34;string&#34;&gt;agent2api&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;attr&#34;&gt;restart:&lt;/span&gt; &lt;span class=&#34;string&#34;&gt;unless-stopped&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;attr&#34;&gt;ports:&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;bullet&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;string&#34;&gt;&amp;quot;3065:3065&amp;quot;&lt;/span&gt; &lt;span class=&#34;comment&#34;&gt;# 网关(/v1/*)与面板&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;attr&#34;&gt;environment:&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;comment&#34;&gt;# 可选项:不填就走面板首次登录注册&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;attr&#34;&gt;AGENT2API_ADMIN_USER:&lt;/span&gt; &lt;span class=&#34;string&#34;&gt;admin&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;attr&#34;&gt;AGENT2API_ADMIN_PASSWORD:&lt;/span&gt; &lt;span class=&#34;string&#34;&gt;换成你自己的密码&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;comment&#34;&gt;# 登录页人机验证,默认开;1 开 0 关&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;attr&#34;&gt;AGENT2API_CAPTCHA_ENABLED:&lt;/span&gt; &lt;span class=&#34;number&#34;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;comment&#34;&gt;# 面板「设置 → 软件更新」一键更新,默认开&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;attr&#34;&gt;AGENT2API_SELF_UPDATE:&lt;/span&gt; &lt;span class=&#34;number&#34;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;attr&#34;&gt;volumes:&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;comment&#34;&gt;# 全部状态(SQLite 库、配置、日志)都在这一个卷里&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;bullet&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;string&#34;&gt;./data:/data&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;comment&#34;&gt;# 小内存机器(512M~1G 的 VPS / NAS)建议加个上限,超限重启一次而不是拖垮宿主机&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;comment&#34;&gt;# mem_limit: 1g&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&#34;highlight bash&#34;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&#34;gutter&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;2&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#34;code&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;docker compose up -d&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;docker compose logs -f agent2api&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方式三:面板和网关分端口(想把面板留在内网)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;设了 &lt;code&gt;AGENT2API_PANEL_PORT&lt;/code&gt; 之后,管理面(界面 + &lt;code&gt;/api/*&lt;/code&gt; )单独监听那个端口,主端口只剩 &lt;code&gt;/v1/*&lt;/code&gt; 网关。这时候只把网关暴露到公网,面板绑回环:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&#34;highlight yaml&#34;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&#34;gutter&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;2&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;3&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;4&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;5&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#34;code&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;attr&#34;&gt;environment:&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;attr&#34;&gt;AGENT2API_PANEL_PORT:&lt;/span&gt; &lt;span class=&#34;number&#34;&gt;3066&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;attr&#34;&gt;ports:&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;bullet&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;string&#34;&gt;&amp;quot;3065:3065&amp;quot;&lt;/span&gt; &lt;span class=&#34;comment&#34;&gt;# 网关,公网可暴露&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; &lt;span class=&#34;bullet&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;string&#34;&gt;&amp;quot;127.0.0.1:3066:3066&amp;quot;&lt;/span&gt; &lt;span class=&#34;comment&#34;&gt;# 面板,只绑本机,走 SSH 隧道或内网访问&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;验证部署&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&#34;highlight bash&#34;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&#34;gutter&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;2&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#34;code&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;comment&#34;&gt;# 连通性检查&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;curl http://127.0.0.1:3065/health&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;返回正常就打开面板 &lt;code&gt;http://&amp;lt;主机IP&amp;gt;:3065/&lt;/code&gt; ,首次打开会提示注册管理员账号(如果 compose 里预置了账号密码,启动时会自动转成 bcrypt 哈希入库,直接登录即可)。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;首次配置流程&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;面板里添加 provider,选版本后网页登录授权(登录态就存在本地库里了)&lt;/li&gt;
&lt;li&gt;到「网关 Key」页创建一个 key,按需要划作用域&lt;/li&gt;
&lt;li&gt;客户端填 &lt;code&gt;base_url = http://&amp;lt;主机IP&amp;gt;:3065/v1&lt;/code&gt; ,key 用上一步建的&lt;/li&gt;
&lt;li&gt;模型名在「模型管理」页的目录里选,填对应的映射名&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;验证一下能不能通:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&#34;highlight bash&#34;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&#34;gutter&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;2&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;3&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;4&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#34;code&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;curl http://127.0.0.1:3065/v1/chat/completions \&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; -H &lt;span class=&#34;string&#34;&gt;&amp;quot;Authorization: Bearer sk-你建的key&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; -H &lt;span class=&#34;string&#34;&gt;&amp;quot;Content-Type: application/json&amp;quot;&lt;/span&gt; \&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt; -d &lt;span class=&#34;string&#34;&gt;&amp;#x27;&amp;#123;&amp;quot;model&amp;quot;:&amp;quot;&amp;lt;模型管理里选一个&amp;gt;&amp;quot;,&amp;quot;messages&amp;quot;:[&amp;#123;&amp;quot;role&amp;quot;:&amp;quot;user&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;你好&amp;quot;&amp;#125;]&amp;#125;&amp;#x27;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;升级与备份&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&#34;highlight bash&#34;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&#34;gutter&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;2&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#34;code&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;comment&#34;&gt;# 标准升级:拉新镜像重建容器&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;docker compose pull &amp;amp;&amp;amp; docker compose up -d&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&#34;highlight bash&#34;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&#34;gutter&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;2&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#34;code&#34;&gt;&lt;pre&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;comment&#34;&gt;# 备份 = 打包 data 卷&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&#34;line&#34;&gt;tar -czf agent2api-$(&lt;span class=&#34;built_in&#34;&gt;date&lt;/span&gt; +%F).tar.gz -C /opt/agent2api data&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;面板里的「软件更新」替换的是&lt;strong&gt;容器内&lt;/strong&gt;的文件,compose 里的镜像 tag 没变,所以下次 &lt;code&gt;up -d&lt;/code&gt; 重建容器会退回旧版本。要么就用 &lt;code&gt;docker compose pull&lt;/code&gt; 升级,要么就别开自更新。&lt;/p&gt;
&lt;h4 id=&#34;几个实际踩到的点&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#几个实际踩到的点&#34;&gt;#&lt;/a&gt; 几个实际踩到的点&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;端口冲突&lt;/strong&gt;:3065 不算冷门,装之前先 &lt;code&gt;ss -lntp | grep 3065&lt;/code&gt; 看一眼。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;账号要配出口&lt;/strong&gt;:不配代理直接跑,多账号很容易触发风控。账号页里一个账号一个出口,别图省事共用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;别公网裸奔&lt;/strong&gt;:面板默认就在 3065 上,公网暴露的话至少开人机验证、给 key 划作用域;能绑内网就绑内网。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt; &lt;code&gt;./data&lt;/code&gt; 里是敏感数据&lt;/strong&gt;:SQLite 库里存着加密后的账号凭证,导出和备份文件可能是明文级别的东西,别往 Git、网盘、群聊里丢。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;出问题先看日志&lt;/strong&gt;: &lt;code&gt;docker compose logs -f agent2api&lt;/code&gt; 基本能定位到是鉴权、供应商还是网络的问题。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型名对不上&lt;/strong&gt;:客户端里报 model not found,多半是模型目录里的名字和映射没对上,回「模型管理」页看一眼实际可用列表。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;使用须知&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#使用须知&#34;&gt;#&lt;/a&gt; 使用须知&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;项目是 AGPL-3.0,商用、修改、分发都允许,但对外提供网络服务时要按要求提供对应源码。&lt;/li&gt;
&lt;li&gt;凭证虽然在库里加密,但导出、备份、key 文件仍可能含敏感信息。&lt;/li&gt;
&lt;li&gt;复用客户端登录态这件事,各家服务条款的态度并不一致,&lt;strong&gt;仅建议个人研究自用&lt;/strong&gt;,别拿去对外卖 token 做中转站,封号风险自担。&lt;/li&gt;
&lt;li&gt;项目本身 as-is 提供,不担保可用性、稳定性和安全性。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;小结&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#小结&#34;&gt;#&lt;/a&gt; 小结&lt;/h4&gt;
&lt;p&gt;Agent2API 属于那种「装上就一直在后台待着」的工具:平时想不起来它,但每次要换客户端、要加账号、要看这个月谁烧了多少额度,都会去面板点两下。对于手里额度散落在十几个客户端里的人,省下来的配置时间比它占的那点内存值多了。&lt;/p&gt;
&lt;p&gt;如果只是想聚合几个正规 API key,one-api /new-api 更轻;如果要接管客户端登录态、还要多账号调度和报表,那这个目前是我用过最顺手的。&lt;/p&gt;
]]></description>
</item>
<item>
<guid isPermalink="true">https://hitoli.com/2025/10/04/%E8%87%AA%E5%BB%BA%E7%A7%81%E6%9C%8D/</guid>
<title>自建私服</title>
@@ -44,8 +148,8 @@
<link>https://hitoli.com/2025/02/16/%E6%9E%81%E7%A9%BA%E9%97%B4%E9%83%A8%E7%BD%B2Deepseek%EF%BC%88API%E8%B0%83%E7%94%A8%EF%BC%89/</link>
<category term="极空间" scheme="https://hitoli.com/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/" />
<category term="Docker" scheme="https://hitoli.com/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/" />
<category term="DeepSeek" scheme="https://hitoli.com/tags/DeepSeek/" />
<category term="AI" scheme="https://hitoli.com/tags/AI/" />
<category term="DeepSeek" scheme="https://hitoli.com/tags/DeepSeek/" />
<pubDate>Sun, 16 Feb 2025 22:32:00 +0800</pubDate>
<description><![CDATA[ &lt;h4 id=&#34;前言&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#前言&#34;&gt;#&lt;/a&gt; 前言&lt;/h4&gt;
&lt;p&gt;最近 DeepSeek 比较火爆,到处都在夸。大部分人都想搭建自己的私有服务器,但我查了查资料还是放弃了想法,毕竟需要投入一笔不小的费用!🙂,最后又经不住诱惑就搞一个调用 api 的吧。经过研究,最终决定使用 justsong/one-api 加 vinlic/deepseek-free-api 加 yidadaa/chatgpt-next-web 的方案。justsong/one-api 用于统一管理、调用 AI 服务(当然也可以调用自己搭建的 DeepSeek🙂),vinlic/deepseek-free-api 用于调用 DeepSeek 官方接口,yidadaa/chatgpt-next-web 提供 web 界面用户和 ai 进行对话。大致了解清楚后就开始吧!&lt;/p&gt;
@@ -704,22 +808,6 @@ sudo passwd proxy&lt;br /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img data-src=&#34;https://npic.hitoli.com:8443/images/2023/09/09/6a38fcb32752.png&#34; alt=&#34;&#34; /&gt;&lt;br /&gt;
&lt;img data-src=&#34;https://npic.hitoli.com:8443/images/2023/09/09/72892168bfeb.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
]]></description>
</item>
<item>
<guid isPermalink="true">https://hitoli.com/2023/09/09/Windows-11%E5%8F%B3%E9%94%AE%E8%8F%9C%E5%8D%95%E6%81%A2%E5%A4%8D%E8%80%81%E7%89%88%E6%9C%AC/</guid>
<title>Windows 11右键菜单恢复老版本</title>
<link>https://hitoli.com/2023/09/09/Windows-11%E5%8F%B3%E9%94%AE%E8%8F%9C%E5%8D%95%E6%81%A2%E5%A4%8D%E8%80%81%E7%89%88%E6%9C%AC/</link>
<category term="Windows" scheme="https://hitoli.com/categories/Windows/" />
<category term="系统优化" scheme="https://hitoli.com/categories/Windows/%E7%B3%BB%E7%BB%9F%E4%BC%98%E5%8C%96/" />
<category term="Windows 11" scheme="https://hitoli.com/tags/Windows-11/" />
<pubDate>Sat, 09 Sep 2023 16:38:00 +0800</pubDate>
<description><![CDATA[ &lt;h4 id=&#34;恢复方法&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#恢复方法&#34;&gt;#&lt;/a&gt; 恢复方法&lt;/h4&gt;
&lt;p&gt;1、按【Win+X】&lt;/p&gt;
&lt;p&gt;2、选择【终端管理员】&lt;/p&gt;
&lt;p&gt;3、输入以下命令并回车:&lt;br /&gt;
&lt;code&gt;reg add &amp;quot;HKCU\Software\Classes\CLSID\&amp;#123;86ca1aa0-34aa-4e8b-a509-50c905bae2a2&amp;#125;\InprocServer32&amp;quot; /f /ve&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;4、重启电脑&lt;/p&gt;
]]></description>
</item>
</channel>