{"id":83,"date":"2026-04-21T21:33:09","date_gmt":"2026-04-21T13:33:09","guid":{"rendered":"https:\/\/blog.nickys.cn\/?p=83"},"modified":"2026-05-18T22:28:09","modified_gmt":"2026-05-18T14:28:09","slug":"hermes-agent-%e9%85%8d%e7%bd%ae-qq-%e6%9c%ba%e5%99%a8%e4%ba%ba%e6%8e%a5%e5%85%a5%e5%ae%8c%e6%95%b4%e6%95%99%e7%a8%8b","status":"publish","type":"post","link":"https:\/\/blog.nickys.cn\/?p=83","title":{"rendered":"Hermes Agent \u914d\u7f6e QQ \u673a\u5668\u4eba\u63a5\u5165\u5b8c\u6574\u6559\u7a0b"},"content":{"rendered":"<p>\u6211\u7528\u4e86\u4e00\u6bb5\u65f6\u95f4 Hermes Agent\uff0c\u5bf9\u6bd4\u4e4b\u524d\u7528\u7684 OpenClaw\uff0c\u4e0d\u5f97\u4e0d\u8bf4 Hermes \u5728\u7406\u89e3\u4efb\u52a1\u3001\u8c03\u7528\u5de5\u5177\u548c\u6574\u4f53\u667a\u80fd\u7a0b\u5ea6\u4e0a\u786e\u5b9e\u66f4\u80dc\u4e00\u7b79\u3002\u4eca\u5929\u6211\u628a\u6574\u4e2a\u914d\u7f6e\u8fc7\u7a0b\u4e00\u6b65\u6b65\u8bb0\u4e0b\u6765\uff0c\u65b9\u4fbf\u6709\u9700\u8981\u7684\u670b\u53cb\u53c2\u8003\u3002<\/p>\n<p>\u8fd9\u7bc7\u6587\u7ae0\u4f1a\u4e00\u6b65\u6b65\u544a\u8bc9\u4f60\u600e\u4e48\u914d\u7f6e Hermes Agent\uff0c\u8ba9 QQ \u673a\u5668\u4eba\u8fde\u4e0a\u6765\uff0c\u8fd9\u6837\u4f60\u76f4\u63a5\u5728 QQ \u4e0a\u5c31\u80fd\u8ddf AI \u52a9\u624b\u804a\u5929\u5e72\u6d3b\u4e86\u3002<\/p>\n<div style=\"background:#e8f0fe;border-left:4px solid #1a73e8;padding:15px 20px;border-radius:4px;margin:20px 0;\">\n<strong>\u51c6\u5907\u5de5\u4f5c<\/strong><br \/>\nHermes Agent \u5728 Linux \u73af\u5883\u4e0b\u8fd0\u884c\uff0c\u6211\u8fd9\u91cc\u7528\u672c\u5730 Linux \u670d\u52a1\u5668\u505a\u4f8b\u5b50\u3002\u4f60\u9700\u8981\u51c6\u5907\u597d\u8fd9\u4e9b\uff1a<\/p>\n<ul>\n<li>Linux \u670d\u52a1\u5668\uff08\u6211\u7528\u7684 Ubuntu\/Debian\uff09<\/li>\n<li>\u5df2\u7ecf\u88c5\u597d\u4e86 Hermes Agent \u57fa\u7840\u73af\u5883<\/li>\n<li>QQ \u5f00\u653e\u5e73\u53f0\u7533\u8bf7\u673a\u5668\u4eba\u62ff\u5230\u7684 AppID \u548c\u5bc6\u94a5<\/li>\n<li>\u57df\u540d\uff08\u5982\u679c\u8981\u5916\u7f51\u8bbf\u95ee API \u7f51\u5173\u7684\u8bdd\uff0c\u53ef\u9009\uff09<\/li>\n<\/ul>\n<\/div>\n<h2>\ud83c\udf10 \u7b2c\u4e00\u6b65\uff1a\u8ba9 Hermes Gateway \u5141\u8bb8\u5916\u7f51\u8bbf\u95ee<\/h2>\n<p>Hermes Gateway \u662f Hermes \u7684 API \u7f51\u5173\u670d\u52a1\uff0c\u9ed8\u8ba4\u53ea\u76d1\u542c\u672c\u5730\u56de\u73af <code>127.0.0.1<\/code>\u3002\u8981\u8ba9 QQ \u673a\u5668\u4eba\u4ece\u5916\u7f51\u8fde\u8fdb\u6765\uff0c\u5f97\u6539\u4e00\u4e0b\u914d\u7f6e\uff0c\u8ba9\u5b83\u76d1\u542c\u6240\u6709\u5730\u5740\u3002<\/p>\n<h3>1.1 \u627e\u5230\u914d\u7f6e\u6587\u4ef6<\/h3>\n<p>Hermes \u914d\u7f6e\u6587\u4ef6\u5728\u8fd9\u91cc\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>~\/.hermes\/config.yaml\n<\/code><\/pre>\n<h3>1.2 \u4fee\u6539\u7f51\u5173\u914d\u7f6e<\/h3>\n<p>\u8fd9\u91cc\u6709\u51e0\u4e2a\u5173\u952e\u70b9\u8981\u6ce8\u610f\uff1a<\/p>\n<div style=\"background:#fff3cd;border-left:4px solid #ffc107;padding:15px 20px;border-radius:4px;margin:15px 0;\">\n<ul>\n<li><code>platforms<\/code> \u5fc5\u987b\u9876\u683c\u5199\uff0c\u4e0d\u80fd\u653e\u5728 <code>gateway<\/code> \u914d\u7f6e\u5757\u91cc\u9762\uff0c\u8fd9\u4e2a\u5751\u6211\u8e29\u8fc7\u4e86<\/li>\n<li>\u8981\u7ed1\u5b9a <code>0.0.0.0:8642<\/code> \u624d\u80fd\u8ba9\u5916\u7f51\u8bbf\u95ee<\/li>\n<li>\u516c\u7f51\u5f00\u653e\u4e00\u5b9a\u8981\u914d API \u5bc6\u94a5\uff0c\u5426\u5219\u4e0d\u5b89\u5168<\/li>\n<\/ul>\n<\/div>\n<p>\u914d\u7f6e\u793a\u4f8b\u7ed9\u4f60\u53c2\u8003\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>gateway:\n  bind: 0.0.0.0:8642\n  api_key: \"\u4f60\u7684API\u5bc6\u94a5\"\n\nplatforms:\n  qqbot:\n    app_id: \"\u4f60\u7684QQ\u673a\u5668\u4ebaAppID\"\n    secret: \"\u4f60\u7684QQ\u673a\u5668\u4eba\u5bc6\u94a5\"\n    enabled: true\n<\/code><\/pre>\n<h3>1.3 \u9a8c\u8bc1\u914d\u7f6e\u5bf9\u4e0d\u5bf9<\/h3>\n<p>\u6539\u5b8c\u914d\u7f6e\u542f\u52a8\u7f51\u5173\u540e\uff0c\u7528\u8fd9\u4e2a\u547d\u4ee4\u770b\u770b\u7aef\u53e3\u76d1\u542c\u5bf9\u4e0d\u5bf9\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>ss -tlnp | grep :8642\n<\/code><\/pre>\n<p>\u6b63\u5e38\u7ed3\u679c\u5e94\u8be5\u663e\u793a <code>0.0.0.0:8642<\/code>\uff0c\u5982\u679c\u53ea\u770b\u5230 <code>127.0.0.1:8642<\/code> \u8bf4\u660e\u914d\u7f6e\u9519\u4e86\u3002<\/p>\n<h2>\ud83e\udd16 \u7b2c\u4e8c\u6b65\uff1a\u914d\u7f6e QQ \u673a\u5668\u4eba<\/h2>\n<h3>2.1 \u83b7\u53d6 QQ \u673a\u5668\u4eba\u51ed\u8bc1<\/h3>\n<p>\u53bb QQ \u5f00\u653e\u5e73\u53f0\u521b\u5efa\u597d\u673a\u5668\u4eba\u4e4b\u540e\uff0c\u4f60\u4f1a\u62ff\u5230\u4e24\u4e2a\u4e1c\u897f\uff1a<\/p>\n<ul>\n<li>AppID\uff1a\u5c31\u662f\u5e94\u7528 ID<\/li>\n<li>Client Secret\uff1a\u5c31\u662f\u5e94\u7528\u5bc6\u94a5<\/li>\n<\/ul>\n<p>\u628a\u8fd9\u4e24\u4e2a\u586b\u5230 <code>config.yaml<\/code> \u7684 <code>platforms.qqbot<\/code> \u4e0b\u9762\u5c31\u884c\u4e86\u3002<\/p>\n<h3>2.2 \u8bbe\u7f6e\u5141\u8bb8\u8bbf\u95ee\u7684\u7528\u6237<\/h3>\n<div style=\"background:#fff3cd;border-left:4px solid #ffc107;padding:15px 20px;border-radius:4px;margin:15px 0;\">\n<strong>\u8fd9\u91cc\u6709\u4e2a\u5bb9\u6613\u9519\u7684\u5730\u65b9\uff1a<\/strong>QQ \u673a\u5668\u4eba\u9a8c\u8bc1\u7528\u6237\u7528\u7684\u662f Open ID\uff0c<strong>\u4e0d\u662f\u4f60\u7684 QQ \u53f7\u7801<\/strong>\u3002\n<\/div>\n<p>\u7b2c\u4e00\u6b21\u542f\u52a8\u7f51\u5173\u5982\u679c\u63d0\u793a <code>Unauthorized<\/code>\uff0c\u522b\u614c\uff0c\u53bb\u9519\u8bef\u65e5\u5fd7\u91cc\u5c31\u80fd\u627e\u5230\u4f60\u7684 Open ID\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>tail ~\/.hermes\/logs\/errors.log\n<\/code><\/pre>\n<p>\u627e\u5230\u7c7b\u4f3c\u8fd9\u884c\u7684\u65e5\u5fd7\uff0c\u628a\u7528\u6237 ID \u6284\u4e0b\u6765\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>Unauthorized request from user=87879BBBF48F24DF50EAFDC6671971E3\n<\/code><\/pre>\n<p>\u628a\u8fd9\u4e2a Open ID \u653e\u5230\u73af\u5883\u53d8\u91cf <code>QQ_ALLOWED_USERS<\/code> \u91cc\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>export QQ_ALLOWED_USERS=\"87879BBBF48F24DF50EAFDC6671971E3\"\n<\/code><\/pre>\n<p>\u5982\u679c\u8981\u5141\u8bb8\u591a\u4e2a\u7528\u6237\uff0c\u7528\u9017\u53f7\u9694\u5f00\u5c31\u884c\u3002<\/p>\n<h2>\ud83d\udc1b \u7b2c\u4e09\u6b65\uff1a\u89e3\u51b3\u542f\u52a8\u5e38\u78b0\u5230\u7684\u95ee\u9898<\/h2>\n<h3>3.1 &#8220;Image dimensions are too small&#8221; \u9519\u8bef<\/h3>\n<p>\u5982\u679c\u6539\u5b8c\u914d\u7f6e\u542f\u52a8\u7f51\u5173\u76f4\u63a5\u5d29\u4e86\uff0c\u62a5\u8fd9\u4e2a\u9519\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>Image dimensions are too small\n<\/code><\/pre>\n<p>\u8fd9\u662f\u56e0\u4e3a\u4f60\u7528\u7684\u6a21\u578b\u4e0d\u652f\u6301\u89c6\u89c9\u529f\u80fd\uff0c\u6bd4\u5982\u6211\u73b0\u5728\u7528\u7684 ark-code-latest \u5c31\u4e0d\u652f\u6301\u3002\u89e3\u51b3\u65b9\u6cd5\u5f88\u7b80\u5355\uff0c\u5728\u914d\u7f6e\u91cc\u628a\u89c6\u89c9\u8f85\u52a9\u7981\u7528\u5c31\u884c\u4e86\u3002<\/p>\n<p>\u7f16\u8f91 <code>config.yaml<\/code>\uff0c\u52a0\u4e0a\u8fd9\u6bb5\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>auxiliary:\n  vision:\n    enabled: false\n<\/code><\/pre>\n<h3>3.2 \u770b\u65e5\u5fd7\u627e\u95ee\u9898<\/h3>\n<ul>\n<li>\u7f51\u5173\u8fd0\u884c\u65e5\u5fd7\uff1a<code>~\/.hermes\/logs\/gateway.log<\/code><\/li>\n<li>\u9519\u8bef\u65e5\u5fd7\uff1a<code>~\/.hermes\/logs\/errors.log<\/code><\/li>\n<\/ul>\n<div style=\"background:#e8f0fe;border-left:4px solid #1a73e8;padding:10px 15px;border-radius:4px;margin:10px 0;\">\nQQ \u673a\u5668\u4eba\u8fde\u63a5\u4e0d\u4e0a\u6216\u8005\u8ba4\u8bc1\u5931\u8d25\uff0c\u76f4\u63a5\u770b errors.log \u5c31\u884c\uff0c\u522b\u53bb gateway.log \u91cc\u627e\u3002\n<\/div>\n<h2>\u2699\ufe0f \u7b2c\u56db\u6b65\uff1a\u914d\u7f6e systemd \u5f00\u673a\u81ea\u52a8\u542f\u52a8<\/h2>\n<p>\u8981\u8ba9 Hermes Gateway \u5f00\u673a\u5c31\u8dd1\uff0c\u6211\u4eec\u7ed9\u5b83\u914d\u4e2a systemd \u7528\u6237\u670d\u52a1\uff1a<\/p>\n<h3>4.1 \u521b\u5efa\u670d\u52a1\u6587\u4ef6<\/h3>\n<p>\u6587\u4ef6\u8def\u5f84\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>~\/.config\/systemd\/user\/hermes-gateway.service\n<\/code><\/pre>\n<p>\u5185\u5bb9\u8fd9\u4e48\u5199\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>[Unit]\nDescription=Hermes Agent Gateway\nAfter=network.target\n\n[Service]\nType=simple\nExecStart=\/usr\/local\/bin\/hermes gateway\nWorkingDirectory=%h\/.hermes\nRestart=always\nRestartSec=10\n\n[Install]\nWantedBy=default.target\n<\/code><\/pre>\n<h3>4.2 \u542f\u7528\u5e76\u542f\u52a8\u670d\u52a1<\/h3>\n<p>\u6267\u884c\u8fd9\u51e0\u6761\u547d\u4ee4\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>systemctl --user daemon-reload\nsystemctl --user enable hermes-gateway\nsystemctl --user start hermes-gateway\n<\/code><\/pre>\n<h3>4.3 \u68c0\u67e5\u8fd0\u884c\u72b6\u6001<\/h3>\n<p>\u7528\u8fd9\u4e2a\u547d\u4ee4\u770b\u770b\u8dd1\u8d77\u6765\u6ca1\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>systemctl --user status hermes-gateway\n<\/code><\/pre>\n<p>\u770b\u5230 <code>active (running)<\/code> \u5c31\u8bf4\u660e\u6b63\u5e38\u8fd0\u884c\u4e86\u3002<\/p>\n<h2>\ud83e\udde0 \u7b2c\u4e94\u6b65\uff1a\u5bfc\u5165\u957f\u671f\u8bb0\u5fc6\u548c\u81ea\u5b9a\u4e49\u6280\u80fd<\/h2>\n<p>Hermes Agent \u652f\u6301\u6301\u4e45\u5316\u8bb0\u5fc6\uff0c\u6211\u4eec\u53ef\u4ee5\u628a\u4e4b\u524d\u6574\u7406\u597d\u7684\u957f\u671f\u8bb0\u5fc6\u6587\u4ef6\u5bfc\u8fdb\u53bb\uff0c\u8fd9\u6837\u5b83\u5c31\u4e00\u76f4\u8bb0\u5f97\u4f60\u7684\u4e60\u60ef\u548c\u4fe1\u606f\u4e86\u3002<\/p>\n<h3>5.1 \u4ece FTP \u4e0b\u8f7d\u8bb0\u5fc6\u6587\u4ef6<\/h3>\n<p>\u6309\u7167\u6211\u81ea\u5df1\u7684\u64cd\u4f5c\u89c4\u8303\uff0c\u4fee\u6539 <code>\/web\/<\/code> \u76ee\u5f55\u6587\u4ef6\u4e00\u5b9a\u8981\u5148\u4e0b\u8f7d\u6700\u65b0\u7248\u672c\u5230\u672c\u5730\uff0c\u4e0d\u80fd\u76f4\u63a5\u7528\u65e7\u7248\u672c\u8986\u76d6\u4e91\u7aef\u3002\u4e0b\u8f7d\u53ef\u4ee5\u7528 Python \u811a\u672c\u6765\u505a\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>from ftplib import FTP\nftp = FTP('nickys.cn')\nftp.login('nicky', '\u5bc6\u7801')\nwith open('\/tmp\/MEMORY-20260421-2103.md', 'wb') as f:\n    ftp.retrbinary('RETR \/home\/PCYUECHENG\/work\/20260421\/MEMORY-20260421-2103.md', f.write)\nftp.quit()\n<\/code><\/pre>\n<h3>5.2 \u4fdd\u5b58\u5230 Hermes \u6301\u4e45\u8bb0\u5fc6<\/h3>\n<p>\u4e0b\u8f7d\u5b8c\u8bfb\u53d6\u6587\u4ef6\u5185\u5bb9\uff0c\u7528 Hermes \u7684 memory \u5de5\u5177\u4e00\u6761\u6761\u5b58\u5230\u7528\u6237\u8bb0\u5fc6\u91cc\u3002\u8fd9\u6837\u4ee5\u540e\u5bf9\u8bdd Hermes \u5c31\u80fd\u8bb0\u4f4f\u4f60\u7684\u4e2a\u4eba\u4fe1\u606f\u3001\u64cd\u4f5c\u4e60\u60ef\u548c\u5404\u79cd\u89c4\u8303\u4e86\u3002<\/p>\n<h3>5.3 \u521b\u5efa\u81ea\u5b9a\u4e49\u6280\u80fd<\/h3>\n<p>\u6211\u4e60\u60ef\u7ed9\u5e38\u7528\u64cd\u4f5c\u505a\u4e2a\u81ea\u5b9a\u4e49\u6280\u80fd\uff0c\u6bd4\u5982\u8fde\u63a5 FTP\uff0c\u6211\u5c31\u5efa\u4e86\u4e2a <code>nickys-ftp<\/code> \u6280\u80fd\uff0c\u628a\u8fde\u63a5\u4fe1\u606f\u548c\u64cd\u4f5c\u89c4\u8303\u90fd\u5b58\u5728\u91cc\u9762\uff0c\u4ee5\u540e\u7528\u7684\u65f6\u5019\u76f4\u63a5\u8c03\u7528\u5c31\u884c\uff0c\u4e0d\u7528\u6bcf\u6b21\u90fd\u8f93\u5bc6\u7801\u3002<\/p>\n<h2>\u23f0 \u7b2c\u516d\u6b65\uff1a\u8bbe\u7f6e\u5b9a\u65f6\u63d0\u9192<\/h2>\n<p>Hermes \u652f\u6301 cron \u98ce\u683c\u7684\u5b9a\u65f6\u4efb\u52a1\uff0c\u5404\u79cd\u63d0\u9192\u90fd\u80fd\u8bbe\uff1a<\/p>\n<h3>6.1 \u57df\u540d\u5c55\u671f\u63d0\u9192<\/h3>\n<p>\u6211\u81ea\u5df1\u8bbe\u4e86\u4e24\u4e2a\uff1a<\/p>\n<ul>\n<li>\u6bcf\u6708 18 \u65e5\u65e9\u4e0a 10:30 \u63d0\u9192\u6211\u53bb noip.com \u7ed9\u514d\u8d39\u57df\u540d\u5c55\u671f<\/li>\n<li>2026\u5e749\u670815\u65e5\u665a\u4e0a 10:00 \u63d0\u9192\u6211\u53bb cc.cd \u7ed9\u81ea\u5df1\u548c\u670b\u53cb\u7684\u57df\u540d\u7eed\u8d39<\/li>\n<\/ul>\n<p>\u521b\u5efa\u547d\u4ee4\u7c7b\u4f3c\u8fd9\u6837\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>cronjob action=create schedule=\"30 10 18 * *\" prompt=\"\u63d0\u9192\uff1a\u767b\u5f55 noip.com \u786e\u8ba4 nicky.ddns.net \u57df\u540d\u5c55\u671f\" name=noip-domain-renewal\n<\/code><\/pre>\n<h3>6.2 \u6bcf\u65e5\u81ea\u52a8\u5907\u4efd\u63d0\u9192<\/h3>\n<p>\u6bcf\u5929\u665a\u4e0a 11:30 \u63d0\u9192\u6211\u6267\u884c\u5907\u4efd\uff0c\u5907\u4efd\u5230\u672c\u5730\u540c\u65f6\u4f20\u5230 NAS\uff0c\u53ea\u53d1\u90ae\u4ef6\u6458\u8981\u4e0d\u53d1\u9644\u4ef6\uff0c\u7701\u5f97\u90ae\u7bb1\u6ee1\u3002<\/p>\n<h2>\u2705 \u7b2c\u4e03\u6b65\uff1a\u68c0\u67e5 QQ \u673a\u5668\u4eba\u8fde\u63a5<\/h2>\n<p>\u5168\u90e8\u914d\u7f6e\u5b8c\u4e86\uff0c\u91cd\u542f\u4e00\u4e0b Hermes Gateway \u8ba9\u914d\u7f6e\u751f\u6548\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>systemctl --user restart hermes-gateway\n<\/code><\/pre>\n<p>\u770b\u770b\u8fdb\u7a0b\u8dd1\u8d77\u6765\u6ca1\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px;\"><code>ps aux | grep hermes\n<\/code><\/pre>\n<p>\u6b63\u5e38\u60c5\u51b5\u4e0b\u80fd\u770b\u5230\u4e24\u4e2a Hermes \u8fdb\u7a0b\u5728\u8dd1\u3002\u8fd9\u65f6\u5019\u4f60\u53bb QQ \u7ed9\u673a\u5668\u4eba\u53d1\u6d88\u606f\uff0c\u5b83\u5e94\u8be5\u5c31\u80fd\u6b63\u5e38\u56de\u590d\u4e86\u3002<\/p>\n<h2>\u2705 \u4eca\u5929\u5b8c\u6210\u7684\u5de5\u4f5c<\/h2>\n<p>\u4eca\u5929\u5728 Hermes Agent \u4e0a\u628a QQ \u673a\u5668\u4eba\u6574\u4e2a\u914d\u7f6e\u6d41\u7a0b\u8d70\u901a\u4e86\uff1a<\/p>\n<div style=\"background:#d4edda;border-left:4px solid #28a745;padding:15px 20px;border-radius:4px;margin:20px 0;\">\n<ol>\n<li>\u2713 \u6b63\u786e\u914d\u7f6e Hermes Gateway \u76d1\u542c <code>0.0.0.0:8642<\/code> \u5141\u8bb8\u5916\u7f51\u63a5\u5165<\/li>\n<li>\u2713 \u586b\u4e0a QQ \u673a\u5668\u4eba\u7684 AppID \u548c\u5bc6\u94a5\uff0c\u5b8c\u6210\u63a5\u5165\u914d\u7f6e<\/li>\n<li>\u2713 \u4ece\u9519\u8bef\u65e5\u5fd7\u627e\u5230\u6b63\u786e\u7684\u7528\u6237 Open ID\uff0c\u914d\u7f6e\u597d\u8bbf\u95ee\u6743\u9650<\/li>\n<li>\u2713 \u89e3\u51b3\u4e86 &#8220;Image dimensions are too small&#8221; \u5d29\u6e83\u95ee\u9898\uff0c\u7981\u7528\u4e0d\u652f\u6301\u7684\u89c6\u89c9\u8f85\u52a9<\/li>\n<li>\u2713 \u914d\u597d systemd \u7528\u6237\u670d\u52a1\uff0c\u5b9e\u73b0\u5f00\u673a\u81ea\u52a8\u542f\u52a8<\/li>\n<li>\u2713 \u5bfc\u5165\u4e86\u6211\u7684\u957f\u671f\u8bb0\u5fc6\uff0c\u628a\u4e2a\u4eba\u4fe1\u606f\u3001\u64cd\u4f5c\u89c4\u8303\u3001\u8d26\u53f7\u4fe1\u606f\u90fd\u5b58\u597d\u4e86<\/li>\n<li>\u2713 \u521b\u5efa\u4e86\u81ea\u5b9a\u4e49\u7684 FTP \u7ba1\u7406\u6280\u80fd<\/li>\n<li>\u2713 \u8bbe\u7f6e\u4e86\u6240\u6709\u9700\u8981\u7684\u5b9a\u65f6\u63d0\u9192<\/li>\n<li>\u2713 \u6d4b\u8bd5 QQ \u6536\u53d1\u6d88\u606f\uff0c\u5de5\u4f5c\u6b63\u5e38<\/li>\n<\/ol>\n<\/div>\n<h2>\u26a0\ufe0f \u8e29\u8fc7\u7684\u5751\u548c\u6ce8\u610f\u4e8b\u9879<\/h2>\n<p>\u6211\u628a\u914d\u7f6e\u8fc7\u7a0b\u4e2d\u78b0\u5230\u7684\u95ee\u9898\u6574\u7406\u4e00\u4e0b\uff0c\u4f60\u522b\u518d\u8e29\u4e86\uff1a<\/p>\n<div style=\"background:#fff3cd;border-left:4px solid #ffc107;padding:15px 20px;border-radius:4px;margin:15px 0;\">\n<ol>\n<li><code>platforms<\/code> \u5fc5\u987b\u5728\u914d\u7f6e\u6587\u4ef6\u9876\u7ea7\uff0c\u4e0d\u80fd\u5199\u5230 <code>gateway<\/code> \u91cc\u9762\uff0c\u4e0d\u7136\u914d\u7f6e\u4e0d\u751f\u6548<\/li>\n<li>\u7528\u6237\u8ba4\u8bc1\u7528 Open ID\uff0c\u4e0d\u662f QQ \u53f7\u7801\uff0c\u7b2c\u4e00\u6b21\u542f\u52a8\u9519\u4e86\u53bb errors.log \u627e<\/li>\n<li>\u5982\u679c\u6a21\u578b\u4e0d\u652f\u6301\u89c6\u89c9\uff0c\u4e00\u5b9a\u8981\u628a vision \u7981\u7528\uff0c\u4e0d\u7136\u542f\u52a8\u76f4\u63a5\u5d29<\/li>\n<li>\u7ed1 0.0.0.0 \u516c\u7f51\u5f00\u653e\u4e00\u5b9a\u8981\u914d API \u5bc6\u94a5\uff0c\u5b89\u5168\u7b2c\u4e00<\/li>\n<li>\u4fee\u6539 <code>\/web\/<\/code> \u4e0a\u7684\u6587\u4ef6\u4e00\u5b9a\u8981\u5148\u62c9\u6700\u65b0\u7248\u5230\u672c\u5730\u6539\u5b8c\u518d\u4f20\u56de\u53bb\uff0c\u522b\u76f4\u63a5\u7528\u65e7\u7248\u672c\u8986\u76d6\u4e91\u7aef<\/li>\n<\/ol>\n<\/div>\n<h2>\ud83d\udccc \u603b\u7ed3<\/h2>\n<div style=\"background:#d4edda;border-left:4px solid #28a745;padding:15px 20px;border-radius:4px;margin:20px 0;\">\n<p>\u7528\u4e0b\u6765\u7684\u611f\u53d7\uff0cHermes Agent \u786e\u5b9e\u6bd4\u6211\u4e4b\u524d\u7528\u7684 OpenClaw \u66f4\u806a\u660e\uff0c\u5bf9\u4efb\u52a1\u7684\u7406\u89e3\u548c\u5de5\u5177\u8c03\u7528\u90fd\u66f4\u987a\u7545\u3002\u914d\u7f6e\u5b8c QQ \u673a\u5668\u4eba\u4e4b\u540e\uff0c\u6211\u73b0\u5728\u76f4\u63a5\u5728 QQ \u4e0a\u5c31\u80fd\u8ddf Hermes \u5bf9\u8bdd\uff0c\u8ba9\u5b83\u5e2e\u6211\u7ba1 NAS \u6587\u4ef6\u3001\u66f4\u65b0\u4e8c\u624b\u624b\u673a\u5e93\u5b58\u3001\u53d1\u535a\u5ba2\u6587\u7ae0\u3001\u67e5\u4fe1\u606f\u3001\u8bbe\u63d0\u9192\uff0c\u771f\u7684\u5f88\u65b9\u4fbf\u3002<\/p>\n<p>\u5982\u679c\u4f60\u4e5f\u5728\u627e\u4e00\u4e2a\u529f\u80fd\u5f3a\u5927\u7684\u5f00\u6e90 AI \u4ee3\u7406\u6846\u67b6\uff0c\u4e0d\u59a8\u8bd5\u8bd5 Hermes Agent\u3002<\/p>\n<\/div>\n<hr>\n<p style=\"color:#888;\">\u53d1\u5e03\u65e5\u671f\uff1a2026-04-21 \u00b7 \u5206\u7c7b\uff1a\u6280\u672f\u6587\u7ae0<\/p>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6211\u7528\u4e86\u4e00\u6bb5\u65f6\u95f4 Hermes Agent\uff0c\u5bf9\u6bd4\u4e4b\u524d\u7528\u7684 OpenClaw\uff0c\u4e0d\u5f97\u4e0d\u8bf4 Hermes \u5728\u7406\u89e3\u4efb\u52a1\u3001 &#8230; <a title=\"Hermes Agent \u914d\u7f6e QQ \u673a\u5668\u4eba\u63a5\u5165\u5b8c\u6574\u6559\u7a0b\" class=\"read-more\" href=\"https:\/\/blog.nickys.cn\/?p=83\" aria-label=\"\u9605\u8bfb Hermes Agent \u914d\u7f6e QQ \u673a\u5668\u4eba\u63a5\u5165\u5b8c\u6574\u6559\u7a0b\">\u9605\u8bfb\u66f4\u591a<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-83","post","type-post","status-publish","format-standard","hentry","category-tech"],"_links":{"self":[{"href":"https:\/\/blog.nickys.cn\/index.php?rest_route=\/wp\/v2\/posts\/83","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.nickys.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.nickys.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.nickys.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.nickys.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=83"}],"version-history":[{"count":3,"href":"https:\/\/blog.nickys.cn\/index.php?rest_route=\/wp\/v2\/posts\/83\/revisions"}],"predecessor-version":[{"id":259,"href":"https:\/\/blog.nickys.cn\/index.php?rest_route=\/wp\/v2\/posts\/83\/revisions\/259"}],"wp:attachment":[{"href":"https:\/\/blog.nickys.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=83"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.nickys.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=83"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.nickys.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=83"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}