phrases.json 67 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674
  1. {
  2. "version": 4,
  3. "_note": "cn-voice 词库。category = 一类会重复出现的英文提示;patterns 是匹配正则(忽略大小写,可用命名组如 (?P<n>\\d+)),variants 是中文候选(可用 {n} 引用命名组),命中时随机挑一条。",
  4. "_rule": "重要:pattern 只匹配「该短语本身」,不要用 [^\\n]{0,N} 这类尾巴去吃后面的文字——那会把句子其余部分切碎,留下 'crape' 这种残渣。要整行替换就明确写 [^\\n]*。",
  5. "categories": [
  6. {
  7. "id": "skill_attach_removed",
  8. "label": "技能附件删除(按文件名)",
  9. "patterns": [
  10. "File '(?P<f>[^']+)' removed from skill '(?P<n>[^']+)'\\."
  11. ],
  12. "variants": [
  13. "📄 已从技能「{n}」里删掉 {f}。",
  14. "📄 技能「{n}」的 {f} 已移除。",
  15. "📄 「{n}」里的 {f} 清掉了。",
  16. "📄 {f} 从技能「{n}」里撤走了。"
  17. ]
  18. },
  19. {
  20. "id": "shutdown_notice",
  21. "label": "停机通知",
  22. "patterns": [
  23. "⚠️\\s+Hermes\\s+is\\s+shutting\\s+down\\s+—\\s+your\\s+current\\s+task\\s+will\\s+be\\s+interrupted\\.\\s+When\\s+it\\s+is\\s+back\\s+online,\\s+send\\s+any\\s+message\\s+and\\s+I'll\\s+try\\s+to\\s+pick\\s+up\\s+where\\s+we\\s+left\\s+off\\."
  24. ],
  25. "variants": [
  26. "⚠️ 我要下线一会儿——手上这个任务会中断。等我回来,你随便说句话,我就接着往下做。",
  27. "⚠️ 先停一下机——当前任务会断在这儿。我回来后你吱一声,我尽量从断点续上。",
  28. "⚠️ 要关机维护了——正在跑的任务会被打断。等我上线,你发一句我就接着干。",
  29. "⚠️ 我要暂时下线——手上的活会停住。回来后你招呼一声,我从这儿继续。"
  30. ]
  31. },
  32. {
  33. "id": "restart_notice",
  34. "label": "重启通知",
  35. "patterns": [
  36. "⚠️\\s+Hermes\\s+is\\s+restarting\\s+—\\s+your\\s+current\\s+task\\s+will\\s+be\\s+interrupted\\.\\s+Send\\s+any\\s+message\\s+after\\s+the\\s+restart\\s+and\\s+I'll\\s+try\\s+to\\s+resume\\s+where\\s+you\\s+left\\s+off\\."
  37. ],
  38. "variants": [
  39. "⚠️ 我要重启一下——当前任务会中断。重启完你发句话,我尽量接着刚才的做。",
  40. "⚠️ 重启中——手上这活会断。等我回来你招呼一声,我从断点续上。",
  41. "⚠️ 先重启,任务会暂停。回来后发一条消息,我接着往下走。",
  42. "⚠️ 重启一下,当前任务会打断。完事后你吱一声,我续上进度。"
  43. ]
  44. },
  45. {
  46. "id": "recovered_reply_restart",
  47. "label": "重复回复标记·重启",
  48. "patterns": [
  49. "♻️\\s+Recovered\\s+reply\\s+—\\s+the\\s+gateway\\s+restarted\\s+during\\s+delivery,\\s+so\\s+this\\s+may\\s+be\\s+a\\s+duplicate:"
  50. ],
  51. "variants": [
  52. "♻️ 补发的回复——刚才发送时网关重启了,这条可能和上面重复:",
  53. "♻️ 重发一遍——发送中途网关重启过,内容可能重复,见谅:",
  54. "♻️ 这条是补发的——重启把发送打断了,你可能已经看过:",
  55. "♻️ 补一条——网关重启导致重发,如果重复请忽略:",
  56. "♻️ 重发——刚才重启把消息截断了,这条可能重复:"
  57. ]
  58. },
  59. {
  60. "id": "recovered_reply_reconnect",
  61. "label": "重复回复标记·重连",
  62. "patterns": [
  63. "♻️\\s+Recovered\\s+reply\\s+—\\s+the\\s+messaging\\s+platform\\s+reconnected\\s+after\\s+the\\s+original\\s+delivery\\s+failed,\\s+so\\s+this\\s+may\\s+be\\s+a\\s+duplicate:"
  64. ],
  65. "variants": [
  66. "♻️ 补发的回复——上次发送失败后平台重连了,这条可能重复:",
  67. "♻️ 重发一遍——连接断过又回来了,你可能已经收到过:",
  68. "♻️ 补一条——重连之后重发的,重复的话忽略即可:",
  69. "♻️ 重发——连接抖了一下,这条可能和上面重了:"
  70. ]
  71. },
  72. {
  73. "id": "recovered_reply_flood",
  74. "label": "重复回复标记·限流",
  75. "patterns": [
  76. "♻️\\s+Recovered\\s+reply\\s+—\\s+the\\s+messaging\\s+platform's\\s+rate\\s+limit\\s+refused\\s+the\\s+original,\\s+so\\s+part\\s+of\\s+it\\s+may\\s+already\\s+have\\s+arrived\\s+above:"
  77. ],
  78. "variants": [
  79. "♻️ 补发的回复——刚才被平台限流挡下了,可能有一部分已经发出去了:",
  80. "♻️ 重发一遍——被限流拦了一次,上面可能已经有半条:",
  81. "♻️ 补一条——限流把消息截了,上面可能已收到一部分:",
  82. "♻️ 重发——撞上平台限流,这条可能重复,见谅:"
  83. ]
  84. },
  85. {
  86. "id": "cronjob_response_header",
  87. "label": "定时任务结果头",
  88. "patterns": [
  89. "Cronjob Response: (?P<t>.+)"
  90. ],
  91. "variants": [
  92. "📬 定时任务「{t}」的结果:",
  93. "📬 定时「{t}」跑完了,汇报如下:",
  94. "📬 任务「{t}」的产出:",
  95. "📬 「{t}」按时送达:",
  96. "📬 定时任务「{t}」来交作业了:"
  97. ]
  98. },
  99. {
  100. "id": "cronjob_jobid",
  101. "label": "定时任务号",
  102. "patterns": [
  103. "\\(job_id: (?P<i>[^)]+)\\)"
  104. ],
  105. "variants": [
  106. "(任务号:{i})",
  107. "(编号 {i})",
  108. "(任务 ID:{i})",
  109. "(内部号 {i})"
  110. ]
  111. },
  112. {
  113. "id": "cronjob_footer",
  114. "label": "定时任务管理提示",
  115. "patterns": [
  116. "To stop or manage this job, send me a new message \\(e\\.g\\. \"stop reminder (?P<t>[^\"]+)\"\\)\\."
  117. ],
  118. "variants": [
  119. "想停掉或调整这个任务,回我一句就行(比如「停止提醒 {t}」)。",
  120. "要停要改都可以,直接跟我说(例如「停止提醒 {t}」)。",
  121. "这个任务想关想改,回我一句话就行(如「停止提醒 {t}」)。",
  122. "需要停掉或改动,直接说(比如「停止提醒 {t}」)。"
  123. ]
  124. },
  125. {
  126. "id": "explain_empty_response",
  127. "label": "没回话·重试也没出",
  128. "patterns": [
  129. "(?P<model>\\S+)\\s+didn't\\s+produce\\s+a\\s+reply\\s+this\\s+time,\\s+even\\s+after\\s+retries\\.\\s+Send\\s+`continue`\\s+to\\s+try\\s+again,\\s+or\\s+switch\\s+models\\s+with\\s+/model\\."
  130. ],
  131. "variants": [
  132. "{model} 这次没吐出回复,重试也没成。发 `continue` 再来一次,或者用 /model 换个模型。",
  133. "{model} 这回哑火了,重试也没反应。发 `continue` 让它再试,或用 /model 换一个。",
  134. "{model} 这轮一个字都没说——不是你的问题。发 `continue` 我催它重来,或者 /model 换人。",
  135. "{model} 空手而归,重试也没捞着内容。发 `continue` 继续,或换个模型试试。",
  136. "{model} 这次卡壳了。发 `continue` 让它重来,或者 /model 换个更稳的。",
  137. "{model} 没给任何内容,重试也一样。发 `continue` 再试,或 /model 换模型。",
  138. "{model} 这轮罢工了。别急——发 `continue` 我叫它重来;想换人就 /model。",
  139. "{model} 没产出东西,重试也没用。发 `continue`,或者 /model 换个模型。"
  140. ]
  141. },
  142. {
  143. "id": "explain_all_retries_exhausted",
  144. "label": "没回话·上游一直没答",
  145. "patterns": [
  146. "the\\s+model\\s+provider\\s+didn't\\s+answer\\s+after\\s+all\\s+retries\\.\\s+Send\\s+/retry,\\s+or\\s+switch\\s+models\\s+with\\s+/model\\."
  147. ],
  148. "variants": [
  149. "上游模型重试到最后一轮都没应答。发 /retry 再试一次,或用 /model 换个模型。",
  150. "模型服务那边一直没回应,重试都用完了。发 /retry,或换个模型试试。",
  151. "上游一直沉默,重试次数也耗光了。发 /retry 我再敲一次门,或 /model 换条路。",
  152. "对面模型始终没回话。发 /retry 重试,或者 /model 换个更稳的。",
  153. "模型端到最后一刻都没应答。发 /retry 再试,或换模型。",
  154. "重试全用完了,上游还是没声。发 /retry,或 /model 换人。",
  155. "模型服务那边一直不吭声。发 /retry 我再试,或者 /model 换一个。",
  156. "上游把重试都耗完了还没答。发 /retry 继续,或 /model 换个模型。"
  157. ]
  158. },
  159. {
  160. "id": "explain_partial_stream",
  161. "label": "没回话·只收回半截",
  162. "patterns": [
  163. "streaming\\s+stopped\\s+early\\s+and\\s+only\\s+a\\s+partial\\s+response\\s+was\\s+recovered\\.\\s+Send\\s+`continue`\\s+to\\s+resume\\s+from\\s+where\\s+it\\s+stopped\\."
  164. ],
  165. "variants": [
  166. "流式输出中途断了,只收回半截。发 `continue` 让它从断点接着说完。",
  167. "输出流断在半路,只抢救回一部分。发 `continue` 接着往下说。",
  168. "话说到一半流就断了,后半截没接住。发 `continue`,我让它接着说。",
  169. "只收到半句话,剩下的丢了。发 `continue` 补上后半段。",
  170. "流提前结束,内容不全。发 `continue` 让它续上。",
  171. "半路断流,只拿到一部分。发 `continue` 继续说完。",
  172. "输出被截断了,前面这些先看着。发 `continue` 我把剩下的要回来。",
  173. "流断在半截——发 `continue`,让它从断的地方接。"
  174. ]
  175. },
  176. {
  177. "id": "explain_fallback_prior",
  178. "label": "没回话·这轮没新内容",
  179. "patterns": [
  180. "no\\s+new\\s+content\\s+was\\s+produced\\s+this\\s+turn;\\s+showing\\s+recovered\\s+prior\\s+context\\.\\s+Send\\s+`continue`\\s+to\\s+retry\\."
  181. ],
  182. "variants": [
  183. "这一轮没产出新内容,先把你之前的内容调出来了。发 `continue` 重试。",
  184. "这轮空转了,我先把上一段上下文还给你。发 `continue` 再来一次。",
  185. "没有新东西可给,先把之前的接上。发 `continue` 我重新跑一遍。",
  186. "这轮没生成内容,只能先把旧的捞回来。发 `continue` 重试。",
  187. "白跑了一轮,先拿回上次的内容。发 `continue` 再试一次。",
  188. "新内容没出来,先垫上之前的。发 `continue` 让它重来。",
  189. "这轮没结果,我把前文先递给你。发 `continue` 继续。",
  190. "空转了一轮——发 `continue`,我重新要一次答案。"
  191. ]
  192. },
  193. {
  194. "id": "explain_redirect_limit",
  195. "label": "没回话·连续改方向",
  196. "patterns": [
  197. "the\\s+request\\s+was\\s+cancelled\\s+by\\s+a\\s+new\\s+correction\\s+on\\s+every\\s+attempt,\\s+so\\s+the\\s+turn\\s+stopped\\s+instead\\s+of\\s+retrying\\s+forever\\.\\s+Your\\s+last\\s+correction\\s+is\\s+queued\\s+as\\s+the\\s+next\\s+message\\."
  198. ],
  199. "variants": [
  200. "每次刚要答,你的新纠正就把请求打断了,所以我停在这儿,不再无限重试。你最后那条纠正已经排进队列,马上按它来。",
  201. "你连着改了几次方向,每次都把这一轮打断了。我不硬撑了——你最后那条纠正已在队列里,下一步就照它走。",
  202. "方向改了太多次,每次重来都被打断。我先收手,不再空转。你最后那条纠正已排好,马上执行。",
  203. "连续几次纠正都在半路截断了请求,我停下等你定稿。最后那条纠正已进队列,接着就办。",
  204. "你一直在调方向,每次请求都被打断。我不再循环重试了——最新那条纠正排队中,下一步按它来。",
  205. "改方向的次数到上限了,我主动停下,免得空转。你最后那条纠正已经排上,马上就办。",
  206. "每次刚起步就被新纠正叫停,我不硬扛了。最后一条纠正在队列里,下一步就照它走。",
  207. "方向反复调整,请求反复被打断,我先停手。你最新那条纠正已入队,紧接着执行。"
  208. ]
  209. },
  210. {
  211. "id": "explain_rebuilt_limit",
  212. "label": "没回话·供应商轮着挂",
  213. "patterns": [
  214. "every\\s+provider\\s+in\\s+the\\s+fallback\\s+chain\\s+kept\\s+failing\\s+over,\\s+so\\s+the\\s+turn\\s+stopped\\s+instead\\s+of\\s+retrying\\s+forever\\.\\s+Send\\s+`continue`\\s+or\\s+switch\\s+provider\\."
  215. ],
  216. "variants": [
  217. "备选供应商一个接一个地挂,我就不无限重试了。发 `continue` 继续,或者换个供应商。",
  218. "整条兜底链都在互相甩锅,我先停下。发 `continue`,或者手动换个供应商。",
  219. "挨个供应商都试过了,全挂。发 `continue` 再跑一轮,或换个更靠谱的。",
  220. "兜底链整条失灵,我不再空转。发 `continue`,或者换供应商。",
  221. "从主到备全试遍,都没接住。发 `continue` 继续,或手动换一家。",
  222. "供应商轮着出问题,先停。发 `continue` 重试,或者换人。",
  223. "备用方案全军覆没。发 `continue`,或换个供应商再战。",
  224. "链路上的供应商都试过了都不行。发 `continue` 再来,或换一家。"
  225. ]
  226. },
  227. {
  228. "id": "explain_budget_exhausted",
  229. "label": "没回话·额度用尽",
  230. "patterns": [
  231. "the\\s+per\\-turn\\s+iteration/cost\\s+budget\\s+was\\s+exhausted\\s+before\\s+a\\s+final\\s+answer\\.\\s+Send\\s+`continue`\\s+to\\s+keep\\s+going\\."
  232. ],
  233. "variants": [
  234. "这一轮迭代/费用预算先用完了,还没给出最终答案。发 `continue` 接着跑。",
  235. "这轮的花销额度见底了。发 `continue`,我继续往下做。",
  236. "预算到顶,话还没说完。发 `continue` 我接着干。",
  237. "这轮额度用完——别担心,发 `continue` 就能续上。",
  238. "迭代预算先见底了。发 `continue`,我把剩下的事做完。",
  239. "这轮的钱花到上限了。发 `continue` 继续跑。",
  240. "预算耗尽在半路。发 `continue` 我给你接着做。",
  241. "额度用满了,还差最后一步。发 `continue` 补完。"
  242. ]
  243. },
  244. {
  245. "id": "explain_ctx_too_small",
  246. "label": "没回话·上下文太小",
  247. "patterns": [
  248. "the\\s+local\\s+model's\\s+context\\s+window\\s+was\\s+too\\s+small\\s+to\\s+finish\\.\\s+Increase\\s+the\\s+context\\s+size\\s+or\\s+use\\s+a\\s+larger\\s+model\\."
  249. ],
  250. "variants": [
  251. "本地模型的上下文窗口太小,装不下。调大 context 或换个更大的模型。",
  252. "本地模型脑容量不够,塞不下了。把上下文调大,或换个大模型。",
  253. "上下文窗口太小,撑不住这次任务。调大它,或换个更大的模型。",
  254. "本地模型装不下这么多内容。加大 context,或换模型。",
  255. "上下文额度不够用了。调大窗口,或换个容量更大的模型。",
  256. "模型记不住这么多——把上下文调大,或换个大模型。",
  257. "本地模型容量到顶。调大 context 再试,或换模型。",
  258. "窗口太小塞不进去。调大 context,或换一个更大的。"
  259. ]
  260. },
  261. {
  262. "id": "explain_pending_tool",
  263. "label": "没回话·工具结果悬着",
  264. "patterns": [
  265. "the\\s+turn\\s+stopped\\s+while\\s+a\\s+tool\\s+result\\s+was\\s+still\\s+pending\\s+and\\s+the\\s+model\\s+produced\\s+no\\s+follow\\-up\\s+text\\.\\s+Send\\s+`continue`\\s+to\\s+let\\s+it\\s+summarize\\."
  266. ],
  267. "variants": [
  268. "工具结果还没回来这轮就停了,模型也没接着说话。发 `continue`,让它把结果总结一下。",
  269. "有个工具结果悬在半空,这轮就断了。发 `continue`,我把它收拢成结论。",
  270. "工具跑完了但没人接话,这轮空在这。发 `continue` 我来收尾。",
  271. "结果还在路上,话就停了。发 `continue`,让它把结果讲完。",
  272. "工具有结果,模型没跟进。发 `continue` 我把它变成结论。",
  273. "卡在工具返回这一步。发 `continue`,接着总结。",
  274. "结果悬着没人处理。发 `continue`,我来接上。",
  275. "工具结果没被消化。发 `continue` 让它说完。"
  276. ]
  277. },
  278. {
  279. "id": "explain_interrupted_api",
  280. "label": "没回话·调用被打断",
  281. "patterns": [
  282. "the\\s+request\\s+was\\s+interrupted\\s+mid\\-call\\s+before\\s+a\\s+reply\\s+was\\s+received\\.\\s+Send\\s+`continue`\\s+to\\s+retry\\."
  283. ],
  284. "variants": [
  285. "请求发出去还没等到回复就被打断了。发 `continue` 重试。",
  286. "这次调用半路被掐了,回复没收到。发 `continue` 再来一次。",
  287. "请求被打断在途中,答案没回来。发 `continue` 我重发一遍。",
  288. "调用中途断了——不是你的问题。发 `continue` 重试即可。",
  289. "请求还没回就被打断。发 `continue`,我再来一次。",
  290. "半路被叫停,回复丢了。发 `continue` 重跑。",
  291. "这次请求没走完。发 `continue` 继续。",
  292. "调用被中断在中间。发 `continue`,重试一次。"
  293. ]
  294. },
  295. {
  296. "id": "explain_max_iterations",
  297. "label": "没回话·步数上限",
  298. "patterns": [
  299. "the\\s+maximum\\s+tool\\-iteration\\s+limit\\s+was\\s+reached\\s+before\\s+a\\s+final\\s+answer\\.\\s+Send\\s+`continue`\\s+to\\s+keep\\s+going,\\s+or\\s+raise\\s+`max_iterations`\\."
  300. ],
  301. "variants": [
  302. "工具调用步数到顶了,还没给出最终答案。发 `continue` 继续,或把 `max_iterations` 调大。",
  303. "步数用满了。发 `continue` 接着走,或者提高 `max_iterations` 上限。",
  304. "迭代次数到上限,事情还没办完。发 `continue` 我接着做,或调大 `max_iterations`。",
  305. "步数打满——活还没干完。发 `continue` 继续,或把上限调高。",
  306. "这一轮的步数用尽了。发 `continue`,我接着推进。",
  307. "到迭代上限了。发 `continue` 继续,或调大 `max_iterations`。",
  308. "步数上限卡住了进度。发 `continue` 我接着来,或放宽上限。",
  309. "走满步数还没收尾。发 `continue` 补完,或提高上限。"
  310. ]
  311. },
  312. {
  313. "id": "explain_error_near_max",
  314. "label": "没回话·临门出错",
  315. "patterns": [
  316. "an\\s+error\\s+occurred\\s+near\\s+the\\s+iteration\\s+limit\\s+before\\s+a\\s+final\\s+answer\\.\\s+Check\\s+the\\s+tool\\s+output\\s+above,\\s+then\\s+send\\s+`continue`\\."
  317. ],
  318. "variants": [
  319. "快到最后一步时出了错,没给出最终答案。先看上面的工具输出,再发 `continue`。",
  320. "临门一脚踢偏了。上面的工具输出先过一眼,然后发 `continue`。",
  321. "快到终点时报了错。看看上面的输出,再发 `continue` 我接着走。",
  322. "最后关头出错,答案没出来。先看上面的工具输出,再发 `continue`。",
  323. "差一步就完成,偏偏出错。上面输出看一眼,然后 `continue`。",
  324. "收尾时出了岔子。先核对上面的输出,再发 `continue`。",
  325. "快到头了却报错。看看上面的工具输出,再 `continue`。",
  326. "最后一段出错。先看上面的输出,然后发 `continue` 续上。"
  327. ]
  328. },
  329. {
  330. "id": "explain_repeated_errors",
  331. "label": "没回话·反复报错",
  332. "patterns": [
  333. "the\\s+turn\\s+kept\\s+failing\\s+with\\s+repeated\\s+errors\\s+and\\s+was\\s+stopped\\s+early\\s+instead\\s+of\\s+retrying\\s+forever\\.\\s+Check\\s+the\\s+errors\\s+above,\\s+then\\s+send\\s+`continue`\\s+to\\s+retry\\."
  334. ],
  335. "variants": [
  336. "一直重复报错,我就提前收手了,不无限重试。上面的报错看一眼,再发 `continue`。",
  337. "同样的错反复出现,我先停下。看下上面的错误,然后发 `continue` 再试。",
  338. "错误重复太多次,我不空转了。上面的报错先看,再 `continue`。",
  339. "一直踩同一个坑,我先停。上面错误看一眼,然后 `continue`。",
  340. "反复报同样的错,我主动收手。核对上面的错误,再发 `continue`。",
  341. "错误停不下来,我按住了。上面的报错看下,然后 `continue` 继续。",
  342. "同一个错循环出现,先停手。看上面的信息,再 `continue`。",
  343. "错误反复,我不再硬试。上面的报错先过一眼,再 `continue`。"
  344. ]
  345. },
  346. {
  347. "id": "exec_approval",
  348. "label": "命令审批提示",
  349. "patterns": [
  350. "Command approval required: (?P<c>.+)"
  351. ],
  352. "variants": [
  353. "⚠️ 这条命令得你点头才跑:{c}",
  354. "⚠️ 需要你批准:{c}",
  355. "⚠️ 这条要授权:{c}",
  356. "⚠️ 拦下了,等你批准:{c}",
  357. "⚠️ 执行前先问你一声:{c}"
  358. ]
  359. },
  360. {
  361. "id": "bg_task_complete",
  362. "label": "后台任务完成",
  363. "patterns": [
  364. "✅\\s*Background task complete"
  365. ],
  366. "variants": [
  367. "✅ 后台任务跑完了——结果在这。",
  368. "✅ 派出去的活回来了。",
  369. "✅ 后台那摊子收工。",
  370. "✅ 后台任务已完成,来验收。",
  371. "✅ 后台活儿干完了,请过目。",
  372. "✅ 交出去的活有结果了。"
  373. ]
  374. },
  375. {
  376. "id": "bg_task_prompt",
  377. "label": "后台任务:原提示",
  378. "patterns": [
  379. "Prompt: \"(?P<p>[^\"]{0,120})\""
  380. ],
  381. "variants": [
  382. "任务:{p}",
  383. "你当时说的:{p}",
  384. "原始指令:{p}",
  385. "你的要求:{p}"
  386. ]
  387. },
  388. {
  389. "id": "cron_failed",
  390. "label": "定时任务失败",
  391. "patterns": [
  392. "⚠️\\s*Cron '(?P<j>[^']+)' failed: "
  393. ],
  394. "variants": [
  395. "⚠️ 定时任务「{j}」这次没跑成:",
  396. "⚠️ 「{j}」执行失败:",
  397. "⚠️ 定时任务「{j}」出错了:",
  398. "⚠️ 「{j}」摔了一跤:",
  399. "⚠️ 定时「{j}」没跑通:",
  400. "⚠️ 「{j}」报错了:"
  401. ]
  402. },
  403. {
  404. "id": "cron_timeout",
  405. "label": "定时任务脚本超时",
  406. "patterns": [
  407. "its script timed out\\. No model was invoked\\."
  408. ],
  409. "variants": [
  410. "它的脚本超时了,没走到模型那一步。",
  411. "脚本等超时了,模型都没来得及调。",
  412. "脚本跑太久被掐了,模型没启动。",
  413. "脚本自己超时退场,模型没轮到。"
  414. ]
  415. },
  416. {
  417. "id": "cron_stalled",
  418. "label": "定时任务卡死",
  419. "patterns": [
  420. "the job stalled — it stopped doing anything for too long"
  421. ],
  422. "variants": [
  423. "任务卡住了,太久没动静。",
  424. "它僵住了,半天没反应。",
  425. "任务停摆,长时间无进展。",
  426. "它原地不动太久了,我给停了。"
  427. ]
  428. },
  429. {
  430. "id": "sudo_tip",
  431. "label": "sudo 提示",
  432. "patterns": [
  433. "💡\\s*Tip: Subagents cannot prompt for a sudo password\\."
  434. ],
  435. "variants": [
  436. "💡 小提示:子任务没法问你要 sudo 密码。",
  437. "💡 注意:子任务里弹不出 sudo 密码框。",
  438. "💡 子任务不能问密码,这一步得你自己来。",
  439. "💡 提醒:sudo 密码只能在主会话里给。",
  440. "💡 子任务拿不到密码,需要 sudo 得在主对话做。"
  441. ]
  442. },
  443. {
  444. "id": "no_reply",
  445. "label": "没有回复",
  446. "patterns": [
  447. "⚠️\\s*No reply\\b"
  448. ],
  449. "variants": [
  450. "⚠️ 没有回复",
  451. "⚠️ 它没回话",
  452. "⚠️ 没等到回复",
  453. "⚠️ 对面沉默了",
  454. "⚠️ 这次没接上",
  455. "⚠️ 回复落空了"
  456. ]
  457. },
  458. {
  459. "id": "skills_skipped",
  460. "label": "技能没找到被跳过",
  461. "patterns": [
  462. "⚠️\\s*Skill\\(s\\) not found and skipped: "
  463. ],
  464. "variants": [
  465. "⚠️ 这些技能没找到,跳过了:",
  466. "⚠️ 有几个技能不存在,已跳过:",
  467. "⚠️ 技能缺失,略过:",
  468. "⚠️ 没找到这几个技能,先跳过去:"
  469. ]
  470. },
  471. {
  472. "id": "gateway_restarted",
  473. "label": "网关重启成功",
  474. "patterns": [
  475. "♻️?\\s*Gateway restarted successfully"
  476. ],
  477. "variants": [
  478. "♻️ 网关重启完成",
  479. "♻️ 重启好了,我回来了",
  480. "♻️ 网关已成功重启",
  481. "♻️ 满血复活,继续干"
  482. ]
  483. },
  484. {
  485. "id": "steer_queued_acp",
  486. "label": "意见已并入当前任务",
  487. "patterns": [
  488. "⏩\\s*Steer queued for the active turn: "
  489. ],
  490. "variants": [
  491. "⏩ 已并入当前任务:",
  492. "⏩ 你这条我捎上了:",
  493. "⏩ 已插进正在跑的任务:",
  494. "⏩ 收到,带进当前任务了:"
  495. ]
  496. },
  497. {
  498. "id": "skill_file_not_found",
  499. "label": "技能里没有该文件",
  500. "patterns": [
  501. "File '(?P<f>[^']+)' not found in skill '(?P<n>[^']+)'\\."
  502. ],
  503. "variants": [
  504. "技能「{n}」里没有 {f} 这个文件。",
  505. "「{n}」里找不到 {f}。",
  506. "技能「{n}」下没有 {f}。",
  507. "「{n}」中不存在 {f}。"
  508. ]
  509. },
  510. {
  511. "id": "unknown_action",
  512. "label": "不认识的动作",
  513. "patterns": [
  514. "Unknown action '(?P<a>[^']+)'\\. Use: "
  515. ],
  516. "variants": [
  517. "不认识这个动作「{a}」,可用的是:",
  518. "没有「{a}」这个操作,能用的有:",
  519. "「{a}」不在支持列表里,可用的是:",
  520. "「{a}」不认识——能用的动作是:"
  521. ]
  522. },
  523. {
  524. "id": "memory_content_required",
  525. "label": "记忆缺内容",
  526. "patterns": [
  527. "Content is required for '(?P<a>[^']+)' action\\."
  528. ],
  529. "variants": [
  530. "「{a}」这个动作得给内容。",
  531. "做「{a}」得带上内容。",
  532. "「{a}」缺了内容,补上再试。",
  533. "「{a}」要写点什么,内容不能空。"
  534. ]
  535. },
  536. {
  537. "id": "memory_unavailable",
  538. "label": "记忆不可用",
  539. "patterns": [
  540. "Memory is not available\\. It may be disabled in config or this environment\\."
  541. ],
  542. "variants": [
  543. "记忆功能没开,可能被配置禁用了。",
  544. "记忆不可用,检查下配置是不是关了。",
  545. "记忆没启用——看看配置里是不是关掉了。",
  546. "记忆这块没开,配置里确认一下。"
  547. ]
  548. },
  549. {
  550. "id": "memory_writes_disabled",
  551. "label": "记忆写入被禁用",
  552. "patterns": [
  553. "Built-in (?P<l>\\w+) writes are disabled in memory config\\."
  554. ],
  555. "variants": [
  556. "配置里把内置的 {l} 写入关了。",
  557. "内置 {l} 写入被配置禁用。",
  558. "{l} 的写入在配置里被关掉了。",
  559. "内置 {l} 不让写了,配置里开着才行。"
  560. ]
  561. },
  562. {
  563. "id": "bg_review_no_delete",
  564. "label": "复盘不能删记忆",
  565. "patterns": [
  566. "Background review may not delete memory entries"
  567. ],
  568. "variants": [
  569. "复盘不能自己删记忆条目。",
  570. "自动复盘没权限删记忆。",
  571. "这条记忆复盘动不了——它不能自己删。",
  572. "自动复盘不许删记忆,需要你来定。"
  573. ]
  574. },
  575. {
  576. "id": "skill_patched",
  577. "label": "技能打补丁(复盘产生)",
  578. "patterns": [
  579. "Skill '(?P<n>[^']+)' patched"
  580. ],
  581. "variants": [
  582. "🔧 技能「{n}」打了个补丁——更稳了。",
  583. "🔧 「{n}」又精进了一点。",
  584. "🔧 技能「{n}」已微调。",
  585. "🔧 「{n}」磨得更锋利了。",
  586. "🔧 技能「{n}」修正完毕。",
  587. "🔧 「{n}」悄悄变强了。",
  588. "🔧 技能「{n}」补丁已上。",
  589. "🔧 「{n}」参数调优完成。",
  590. "🔧 技能「{n}」已迭代。",
  591. "🔧 「{n}」强化成功。",
  592. "🔧 给「{n}」上了个补丁,下次更准。",
  593. "🔧 技能「{n}」小修了一下,效果更好。"
  594. ]
  595. },
  596. {
  597. "id": "skill_created",
  598. "label": "新技能铸成(复盘产生)",
  599. "patterns": [
  600. "Skill '(?P<n>[^']+)' created"
  601. ],
  602. "variants": [
  603. "✨ 习得新技能「{n}」——以后这事我更快。",
  604. "✨ 技能「{n}」已解锁。",
  605. "✨ 新招式到手:「{n}」。",
  606. "✨ 技能树 +1:「{n}」。",
  607. "✨ 「{n}」这门手艺,我学会了。",
  608. "✨ 已掌握「{n}」,随时能上手。",
  609. "✨ 技能「{n}」已写入技能栏。",
  610. "✨ 解锁成就:{n}。",
  611. "✨ 「{n}」到手,下次直接用。",
  612. "✨ 新技能「{n}」铸成。",
  613. "✨ 又多了一件趁手的工具:「{n}」。",
  614. "✨ 「{n}」已刻进骨骼。"
  615. ]
  616. },
  617. {
  618. "id": "skill_updated",
  619. "label": "技能重铸(复盘产生)",
  620. "patterns": [
  621. "Skill '(?P<n>[^']+)' updated \\(full rewrite\\)"
  622. ],
  623. "variants": [
  624. "🔄 技能「{n}」已重铸——更顺手了。",
  625. "🔄 「{n}」整本重写,脱胎换骨。",
  626. "🔄 技能「{n}」翻新完成。",
  627. "🔄 「{n}」重练了一遍,比之前利落。",
  628. "🔄 技能「{n}」升级到新版本。",
  629. "🔄 「{n}」改头换面,回头试试。",
  630. "🔄 技能「{n}」重修完毕。",
  631. "🔄 「{n}」推倒重来,现在顺多了。",
  632. "🔄 技能「{n}」重铸成型。"
  633. ]
  634. },
  635. {
  636. "id": "skill_deleted",
  637. "label": "技能封存(复盘产生)",
  638. "patterns": [
  639. "Skill '(?P<n>[^']+)' deleted"
  640. ],
  641. "variants": [
  642. "🗑 技能「{n}」已封存——不用了就收起来。",
  643. "🗑 「{n}」已从技能栏移除。",
  644. "🗑 技能「{n}」退役了。",
  645. "🗑 「{n}」已删除。",
  646. "🗑 技能「{n}」已封印。",
  647. "🗑 「{n}」不要了,已清掉。"
  648. ]
  649. },
  650. {
  651. "id": "skill_file_written",
  652. "label": "技能附件写入(复盘产生)",
  653. "patterns": [
  654. "Skill '(?P<n>[^']+)' written"
  655. ],
  656. "variants": [
  657. "📄 技能「{n}」新增了一份资料。",
  658. "📄 「{n}」的参考文件已存好。",
  659. "📄 技能「{n}」的附件已写入。",
  660. "📄 「{n}」多了一份配套文件。"
  661. ]
  662. },
  663. {
  664. "id": "skill_file_removed",
  665. "label": "技能附件移除(复盘产生)",
  666. "patterns": [
  667. "Skill '(?P<n>[^']+)' removed"
  668. ],
  669. "variants": [
  670. "📄 技能「{n}」的附件已移除。",
  671. "📄 「{n}」删掉了一份资料。",
  672. "📄 技能「{n}」的附件不要了,已清掉。"
  673. ]
  674. },
  675. {
  676. "id": "memory_updated",
  677. "label": "记忆已写入(复盘产生)",
  678. "patterns": [
  679. "\\bMemory updated\\b"
  680. ],
  681. "variants": [
  682. "🧠 这段我刻进记忆里了。",
  683. "🧠 已存档——以后不用你再讲一遍。",
  684. "🧠 记住了,下次直接调用。",
  685. "🧠 已写入长期记忆,放心。",
  686. "🧠 这点很重要,我收好了。",
  687. "🧠 记忆已更新,随时可用。",
  688. "🧠 已记住,不会忘。",
  689. "🧠 收进记忆库了。",
  690. "🧠 已刻录,下次见。",
  691. "🧠 这段经历我留下了。",
  692. "🧠 记住了——你不用重复第二遍。",
  693. "🧠 已归入长期记忆。",
  694. "🧠 记忆 +1,攒着用。",
  695. "🧠 已存档,下次接着聊。"
  696. ]
  697. },
  698. {
  699. "id": "user_profile_updated",
  700. "label": "主人档案更新(复盘产生)",
  701. "patterns": [
  702. "\\bUser profile updated\\b"
  703. ],
  704. "variants": [
  705. "🧠 关于你的了解,又深了一层。",
  706. "🧠 你的档案已更新。",
  707. "🧠 我记住了你的偏好。",
  708. "🧠 人物卡刷新完成。",
  709. "🧠 你的画像更清晰了。",
  710. "🧠 已更新对你的了解,下次更合拍。",
  711. "🧠 关于你的事,我记下了。",
  712. "🧠 你的设定已同步。",
  713. "🧠 更懂你一点了。",
  714. "🧠 主人档案 +1。"
  715. ]
  716. },
  717. {
  718. "id": "self_improvement_review",
  719. "label": "自主进化结算",
  720. "patterns": [
  721. "💾\\s*Self-improvement review:\\s*"
  722. ],
  723. "variants": [
  724. "💾 进化结算:",
  725. "💾 这一轮的修行成果:",
  726. "💾 又攒下一点本事:",
  727. "💾 进化日志已更新:",
  728. "💾 刚偷偷练了一波:",
  729. "💾 复盘结束,收获如下:",
  730. "💾 自我进化报告:",
  731. "💾 又变强了一点点:",
  732. "💾 修为提升:",
  733. "💾 闭关结束,出关汇报:",
  734. "💾 经验值已到账:",
  735. "💾 我的成长记录:",
  736. "💾 本轮复盘归档:",
  737. "💾 偷偷升级了一格:",
  738. "💾 进化进度刷新:",
  739. "💾 刚才那点心得,记下来了:",
  740. "💾 自我升级小结:",
  741. "💾 攒经验中,已入账:"
  742. ]
  743. },
  744. {
  745. "id": "bg_process_done",
  746. "label": "后台任务收工",
  747. "patterns": [
  748. "\\[IMPORTANT: Background process (?P<sid>\\S+) finished with exit code (?P<n>-?\\d+)\\.?\\]"
  749. ],
  750. "variants": [
  751. "【后台任务 {sid} 收工,退出码 {n}】",
  752. "【{sid} 跑完了,退出码 {n}】",
  753. "【后台那摊子完事:{sid},退出码 {n}】",
  754. "【派出去的活回来了:{sid},退出码 {n}】",
  755. "【{sid} 已结束,退出码 {n}】"
  756. ]
  757. },
  758. {
  759. "id": "bg_process_running",
  760. "label": "后台任务仍在跑",
  761. "patterns": [
  762. "\\[IMPORTANT: Background process (?P<sid>\\S+) is still running~"
  763. ],
  764. "variants": [
  765. "【后台任务 {sid} 还在跑】",
  766. "【{sid} 还没收工,继续等】",
  767. "【后台那摊子还在动:{sid}】",
  768. "【{sid} 仍在进行中】"
  769. ]
  770. },
  771. {
  772. "id": "hermes_update",
  773. "label": "Hermes 自更新",
  774. "patterns": [
  775. "✅ Hermes update finished",
  776. "❌ Hermes update failed",
  777. "Hermes update timed out"
  778. ],
  779. "variants": [
  780. "✅ 我自己升级完了,回来了。",
  781. "❌ 这次升级没成,我看下日志。",
  782. "⏰ 升级超时了,得手动看看。",
  783. "✅ 更新完成,重新上线。",
  784. "❌ 自更新失败,稍后重试。"
  785. ]
  786. },
  787. {
  788. "id": "busy_detail_elapsed",
  789. "label": "忙时已耗时",
  790. "patterns": [
  791. "(?P<n>\\d+) min elapsed"
  792. ],
  793. "variants": [
  794. "已过 {n} 分钟",
  795. "跑了 {n} 分钟",
  796. "已经 {n} 分钟",
  797. "用时 {n} 分钟",
  798. "{n} 分钟了",
  799. "花了 {n} 分钟"
  800. ]
  801. },
  802. {
  803. "id": "busy_detail_running",
  804. "label": "忙时当前动作",
  805. "patterns": [
  806. "running: (?P<t>[A-Za-z_][\\w]*)"
  807. ],
  808. "variants": [
  809. "正在做:{t}",
  810. "当前动作:{t}",
  811. "手上是:{t}",
  812. "在跑:{t}",
  813. "此刻在干:{t}"
  814. ]
  815. },
  816. {
  817. "id": "heartbeat_working",
  818. "label": "长任务心跳",
  819. "patterns": [
  820. "⏳ Working — (?P<n>\\d+) min",
  821. "Working — (?P<n>\\d+) min"
  822. ],
  823. "variants": [
  824. "还在跑,{n} 分钟了——稳住,就快出结果了。",
  825. "没停,{n} 分钟了,别走开。",
  826. "手上活还剩一点,{n} 分钟了。",
  827. "还在推进,{n} 分钟了,再给我一点时间。",
  828. "{n} 分钟了,还活着,还在跑。",
  829. "还在吭哧吭哧干,{n} 分钟了。",
  830. "进展中,{n} 分钟了,快了。",
  831. "没偷懒,{n} 分钟了,马上就好。",
  832. "还在处理,{n} 分钟了,稍安勿躁。",
  833. "跑了 {n} 分钟,还没到终点,但一直在动。",
  834. "还在算,{n} 分钟了,别急。",
  835. "手上这事比较磨,{n} 分钟了。",
  836. "{n} 分钟了,进展稳定,继续等。",
  837. "还在跑,{n} 分钟了——值得等。"
  838. ]
  839. },
  840. {
  841. "id": "busy_steer_sub",
  842. "label": "意见并入任务及其子任务",
  843. "patterns": [
  844. "⏩ Steered into current run and its active subagent\\(s\\)(?P<d>.*?)\\.\\s*Your message arrives after their next tool call\\.",
  845. "⏩?\\s*Steered into current run and its active subagent\\(s\\)(?P<d>)"
  846. ],
  847. "variants": [
  848. "收到,正在跑的任务和它带的那几个子任务,都按你说的来。",
  849. "好,你的意思我同步给了当前任务和它的分支。",
  850. "收到,连同子任务一起调整,下一步就生效。",
  851. "明白,任务和它的下属都带上你的意见了。",
  852. "好,已经并进去,包括它正在带的那几个子任务。",
  853. "收到,主任务和子任务一起改道,马上就按这个走。",
  854. "行,带上了——正跑的任务连同它的分支都听你的。",
  855. "好,同步完成,任务和子任务下一步都按你说的。"
  856. ]
  857. },
  858. {
  859. "id": "busy_steer",
  860. "label": "意见并入当前任务",
  861. "patterns": [
  862. "⏩ Steered into current run(?P<d>.*?)\\.\\s*Your message arrives after the next tool call\\.",
  863. "⏩?\\s*Steered into current run(?P<d>)"
  864. ],
  865. "variants": [
  866. "收到,你这条我捎在手上了,下一步就按它走。",
  867. "好,已经并进正在跑的任务,下个动作就照办。",
  868. "收到,边跑边听你的,下一步马上调整。",
  869. "明白,把你的意思带上了,紧接着就生效。",
  870. "好,插进去了——下一次动作就是你要的。",
  871. "收到,顺手改道,下个动作按你说的来。",
  872. "行,你这条已经并进去,马上见效。",
  873. "收到,带着你的意见继续跑,下一步就调整。",
  874. "好,我把它捎上了,紧接着的一步就按这个办。",
  875. "明白,边干边听,下个动作就按你的意思。",
  876. "收到,你的话已经带上,下一步立刻生效。",
  877. "好,并进当前任务了,接着的动作就照你说的。"
  878. ]
  879. },
  880. {
  881. "id": "busy_interrupt",
  882. "label": "插话打断当前任务",
  883. "patterns": [
  884. "⚡ Interrupting current task(?P<d>.*?)\\.\\s*I'll respond to your message shortly\\.",
  885. "⚡?\\s*Interrupting current task(?P<d>)"
  886. ],
  887. "variants": [
  888. "收到!先按下暂停键,马上看你这条。",
  889. "好,手头这摊先搁一下,你的话优先。",
  890. "明白,打断当前进度,先接你的。",
  891. "收到,我把手里这步收个尾,马上转过来。",
  892. "行,当前任务先靠边站,听你的。",
  893. "收到,先停一停——你这条更重要。",
  894. "好,临时改道,先办你说的。",
  895. "收到,我先把眼前这步按住,马上回你。",
  896. "得嘞,手头活儿先放放,先听你的。",
  897. "收到,切换优先级,你这条先来。",
  898. "好,我把正在进行的事挂起,马上过来。",
  899. "明白,先中断——你的事最要紧。"
  900. ]
  901. },
  902. {
  903. "id": "busy_queue",
  904. "label": "排队等下一轮",
  905. "patterns": [
  906. "⏳ Queued for the next turn(?P<d>.*?)\\.\\s*I'll respond once the current task finishes\\.",
  907. "⏳?\\s*Queued for the next turn(?P<d>)"
  908. ],
  909. "variants": [
  910. "手头这摊还没收工,你这条我收好了,一腾出手就办。",
  911. "收到,先给你排上,前面这个跑完立刻轮到你。",
  912. "手上还占着,你这条我记下了,稍后就办。",
  913. "好,先存着——当前任务一结束,我马上接你这条。",
  914. "这会儿还腾不出手,你这条排在队首,很快就到。",
  915. "收到,给你挂个号,前一个收尾就来。",
  916. "手上活儿没完,你这条我放在最前面,跑完就办。",
  917. "好,先记下,等这轮跑完第一件事就是你的。",
  918. "收到,排队中——前面一完事,立刻办你这条。",
  919. "现在还在忙上一件,你这条我先收进队列。",
  920. "好,稍等一下,手上的事收个尾就轮到你。",
  921. "收到,你这条我插在队首,前面的跑完马上接。"
  922. ]
  923. },
  924. {
  925. "id": "busy_subagent",
  926. "label": "子任务还在跑",
  927. "patterns": [
  928. "⏳ Subagent working(?P<d>.*?)\\s*—\\s*your message is queued for when it finishes \\(use /stop to cancel everything\\)\\.",
  929. "⏳?\\s*Subagent working(?P<d>)"
  930. ],
  931. "variants": [
  932. "子任务还在跑,你这条我先收好,它一收尾就办。",
  933. "下面还有分支在跑,你这条排队等它完。",
  934. "子任务没结束,先给你排上,很快就到。",
  935. "还在跑子任务,你这条等它收工接着办。",
  936. "子任务进行中,你这条我记着了,完了就轮到你。",
  937. "手下还有活没干完,你这条先排在后面。",
  938. "子任务还在忙,你这条稍等,它完事就办。",
  939. "分支任务没结束,你这条我先存着。"
  940. ]
  941. },
  942. {
  943. "id": "busy_compressing",
  944. "label": "正在压缩上下文",
  945. "patterns": [
  946. "⏳ Compressing context(?P<d>.*?)\\s*—\\s*your message is queued for when it finishes \\(use /stop to cancel everything\\)\\.",
  947. "⏳?\\s*Compressing context(?P<d>)"
  948. ],
  949. "variants": [
  950. "正在整理前面对话,你这条先排着,整理完就办。",
  951. "在压缩上下文,你这条排队等它完。",
  952. "正在收拾记忆,先记下你这条,完了马上办。",
  953. "上下文压缩中,你这条稍等,完了就轮到你。",
  954. "在把前面的对话收拢一下,你这条先排上。",
  955. "正在精简上下文,你这条我收好了。",
  956. "整理记忆中,你这条稍等片刻。",
  957. "在收拾上下文,完了第一件事就是你这条。"
  958. ]
  959. },
  960. {
  961. "id": "busy_redirect",
  962. "label": "按纠正调整方向",
  963. "patterns": [
  964. "↪ Redirected current run(?P<d>.*?)\\.\\s*I'll adjust using your correction\\.",
  965. "↪?\\s*Redirected current run(?P<d>)"
  966. ],
  967. "variants": [
  968. "好,方向调过来了,按你的纠正走。",
  969. "收到,马上拐弯,照你说的重来。",
  970. "明白,我改一下做法,按你给的来。",
  971. "行,方向已修正,照你的意思调整。",
  972. "收到,纠偏完成,接下来按你的走。",
  973. "好,我把航向调正,按你的纠正来。",
  974. "收到,思路已改,照你说的办。",
  975. "明白,马上按你的纠正调整。",
  976. "好,拐个弯,按你的说法继续。",
  977. "收到,方向对了,就按你这个来。"
  978. ]
  979. },
  980. {
  981. "id": "busy_reject",
  982. "label": "忙时拒收",
  983. "patterns": [
  984. "⏳ Agent is running — `/(?P<c>[^`]+)` can't run mid-turn\\. Wait for the current response or `/stop` first\\."
  985. ],
  986. "variants": [
  987. "⏳ 手上还在跑任务,`/{c}` 这轮先跑不了。等它出结果,或者发 /stop 停掉。",
  988. "⏳ 当前任务没结束,`/{c}` 插不进来。等一下,或者发 /stop 中止。",
  989. "⏳ 这轮还在跑,`/{c}` 得等等。急的话发 /stop。",
  990. "⏳ 忙着的,`/{c}` 现在执行不了。等这轮完,或发 /stop。",
  991. "⏳ 正处理中,`/{c}` 先放放。等结果或发 /stop。"
  992. ]
  993. },
  994. {
  995. "id": "agent_busy_goal",
  996. "label": "忙时不能改目标",
  997. "patterns": [
  998. "Agent is running — use /goal status / pause / clear / wait mid-run, or /stop before setting a new goal\\."
  999. ],
  1000. "variants": [
  1001. "手上还在跑任务,要改目标先看状态、暂停或清掉,也可以直接发 /stop。",
  1002. "任务进行中,改目标得先停掉或改现有的。",
  1003. "还在跑,先处理完手上的再定新目标。",
  1004. "正忙着,要换目标先发 /stop 或调整现有的。"
  1005. ]
  1006. },
  1007. {
  1008. "id": "agent_busy_loop",
  1009. "label": "忙时不能设循环",
  1010. "patterns": [
  1011. "Agent is running — use /loop status / pause / stop mid-run, or /stop before setting a new loop\\."
  1012. ],
  1013. "variants": [
  1014. "手上还在跑任务,要设循环先看状态、暂停或停掉,也可以直接发 /stop。",
  1015. "任务进行中,设新循环得先停掉或改现有的。",
  1016. "还在跑,先处理完再设循环。",
  1017. "正忙着,要加循环先发 /stop 或调整。"
  1018. ]
  1019. },
  1020. {
  1021. "id": "steer_queued",
  1022. "label": "无任务时排队",
  1023. "patterns": [
  1024. "Agent still starting — /steer queued for the next turn\\.",
  1025. "No active agent — /steer queued for the next turn\\."
  1026. ],
  1027. "variants": [
  1028. "还没跑起来,你这条先排上,等会儿就办。",
  1029. "当前没有在跑的任务,你这条先排队。",
  1030. "手上还没任务,你这条排上了。",
  1031. "暂时空闲,你这条先记下,马上就办。",
  1032. "还没开始,你这条排一下。"
  1033. ]
  1034. },
  1035. {
  1036. "id": "steer_rejected",
  1037. "label": "空内容无法并入",
  1038. "patterns": [
  1039. "Steer rejected \\(empty payload\\)\\.?",
  1040. "Steer rejected\\.?"
  1041. ],
  1042. "variants": [
  1043. "没内容我插不进去,你补一句再说。",
  1044. "这条是空的,说点啥我才好带进去。",
  1045. "空消息插不进去,麻烦写点内容。",
  1046. "没有内容,没法并入,补一句吧。"
  1047. ]
  1048. },
  1049. {
  1050. "id": "paused_resume",
  1051. "label": "恢复运行",
  1052. "patterns": [
  1053. "▶️ Resumed — new work is accepted again\\.",
  1054. "Resumed — new work is accepted again\\."
  1055. ],
  1056. "variants": [
  1057. "恢复了,可以继续派活。",
  1058. "好了,接着来吧。",
  1059. "恢复运行,有新任务可以发了。",
  1060. "已经恢复,随时接活。"
  1061. ]
  1062. },
  1063. {
  1064. "id": "not_paused",
  1065. "label": "本来没暂停",
  1066. "patterns": [
  1067. "Hermes wasn't paused\\.?"
  1068. ],
  1069. "variants": [
  1070. "本来就没暂停——不用恢复。",
  1071. "它是正常跑的,没停过。",
  1072. "没在暂停状态,一切照常。",
  1073. "没暂停,直接继续就行。",
  1074. "它一直醒着,不用叫。",
  1075. "没有暂停过,照常运转。"
  1076. ]
  1077. },
  1078. {
  1079. "id": "drain_notice",
  1080. "label": "网关停机不收活",
  1081. "patterns": [
  1082. "Gateway is \\w+ and is not accepting another turn right now\\.",
  1083. "Gateway \\w+ — queued for the next turn after it comes back\\."
  1084. ],
  1085. "variants": [
  1086. "正在重启或停机中,这会儿先不接新任务。",
  1087. "网关在收尾,暂时不收新的活。",
  1088. "正在停机,先不接新任务了。",
  1089. "服务在重启,这会儿先等等。",
  1090. "网关正忙着重启,暂不接活。"
  1091. ]
  1092. },
  1093. {
  1094. "id": "gateway_online",
  1095. "label": "网关上线",
  1096. "patterns": [
  1097. "♻️ Gateway online/restarted",
  1098. "Gateway online/restarted"
  1099. ],
  1100. "variants": [
  1101. "♻️ 网关上线了",
  1102. "♻️ 我回来了,可以继续",
  1103. "♻️ 网关已重启完成",
  1104. "♻️ 重新上线,随时接活",
  1105. "♻️ 服务已恢复,在线"
  1106. ]
  1107. },
  1108. {
  1109. "id": "session_reset_stopped",
  1110. "label": "被停后会话重置",
  1111. "patterns": [
  1112. "◐ Session reset after being stopped\\.",
  1113. "Session reset after being stopped\\."
  1114. ],
  1115. "variants": [
  1116. "◐ 会话被停过,已重置。",
  1117. "◐ 上一轮被中断,对话已重置。",
  1118. "◐ 因为被停过,会话重开了。",
  1119. "◐ 已停止过,会话重置完成。"
  1120. ]
  1121. },
  1122. {
  1123. "id": "compress_couldnt",
  1124. "label": "压缩到头",
  1125. "patterns": [
  1126. "could not be compressed further\\.?",
  1127. "Your next message will start a fresh session\\.?"
  1128. ],
  1129. "variants": [
  1130. "已经压不动了,你下一条会开一段新对话。",
  1131. "压缩到头了,下条消息重新起一段。",
  1132. "没法再压缩了,下一条就换新会话。",
  1133. "已经最简了,下条消息开新对话。"
  1134. ]
  1135. },
  1136. {
  1137. "id": "retry_hint",
  1138. "label": "重试/重开提示",
  1139. "patterns": [
  1140. "Use /retry to try again, or /new to start a fresh conversation\\.?",
  1141. "Use /reset only if you intentionally want to start a new conversation\\.?"
  1142. ],
  1143. "variants": [
  1144. "想重来发 /retry,想重开一段发 /new。",
  1145. "重试发 /retry,换新对话发 /new。",
  1146. "可以用 /retry 重试,或 /new 开新对话。",
  1147. "再试一次发 /retry,重开就发 /new。"
  1148. ]
  1149. },
  1150. {
  1151. "id": "bg_no_signin",
  1152. "label": "后台任务无登录",
  1153. "patterns": [
  1154. "The background task couldn't start because no AI model sign-in is"
  1155. ],
  1156. "variants": [
  1157. "❌ 后台任务起不来,因为还没登录 AI 模型。",
  1158. "❌ 没登录模型,后台任务开不了。",
  1159. "❌ 后台任务启动失败:模型未登录。",
  1160. "❌ 要先登录 AI 模型,后台任务才能跑。"
  1161. ]
  1162. },
  1163. {
  1164. "id": "continue_goal",
  1165. "label": "继续既定目标",
  1166. "patterns": [
  1167. "\\[Continuing toward your standing goal\\]"
  1168. ],
  1169. "variants": [
  1170. "[继续推进你定的目标]",
  1171. "[接着做你设的长期目标]",
  1172. "[按既定目标继续]",
  1173. "[继续朝目标推进]"
  1174. ]
  1175. },
  1176. {
  1177. "id": "approve_once",
  1178. "label": "审批:只批一次",
  1179. "patterns": [
  1180. "\\*\\*Approve Once\\*\\* — proceed this time only"
  1181. ],
  1182. "variants": [
  1183. "**只批这次** —— 这一次放行",
  1184. "**批准一次** —— 就这次执行",
  1185. "**这次同意** —— 仅本轮放行",
  1186. "**单次批准** —— 只执行这一次",
  1187. "**就这一次** —— 本次放行"
  1188. ]
  1189. },
  1190. {
  1191. "id": "approve_always",
  1192. "label": "审批:总是批准",
  1193. "patterns": [
  1194. "\\*\\*Always Approve\\*\\* — proceed and silence this prompt permanently"
  1195. ],
  1196. "variants": [
  1197. "**总是批准** —— 以后同类不再问",
  1198. "**一律同意** —— 以后不再提示",
  1199. "**永久批准** —— 这类不再问",
  1200. "**总是放行** —— 不再提示",
  1201. "**全部同意** —— 以后直接执行"
  1202. ]
  1203. },
  1204. {
  1205. "id": "approve_cancel",
  1206. "label": "审批:取消",
  1207. "patterns": [
  1208. "\\*\\*Cancel\\*\\* — keep current conversation"
  1209. ],
  1210. "variants": [
  1211. "**取消** —— 保持当前对话",
  1212. "**算了** —— 什么都不做",
  1213. "**取消** —— 不动现有对话",
  1214. "**不执行** —— 保持原样",
  1215. "**放弃** —— 维持现状"
  1216. ]
  1217. },
  1218. {
  1219. "id": "unauthorized_dm",
  1220. "label": "非主人私聊",
  1221. "patterns": [
  1222. "Hi! I'm a personal assistant and can only chat with my own owner, so I can't help you directly\\. Sorry!"
  1223. ],
  1224. "variants": [
  1225. "你好~我是专属助理,只服务我的主人,没法直接帮到你,抱歉啦。",
  1226. "嗨,我是私人助理,只能跟我主人聊,帮不上你,不好意思。",
  1227. "你好,这个号是专属助理,只对接主人,帮不了你哦。",
  1228. "你好呀,我是私人的小助手,只跟主人对话,抱歉。",
  1229. "嗨~我是专属助理,只服务主人一个,没法帮你。"
  1230. ]
  1231. },
  1232. {
  1233. "id": "turn_not_processed",
  1234. "label": "整轮没跑起来",
  1235. "patterns": [
  1236. "Your request was not processed\\.[^\\n]*",
  1237. "Your request was not processed[^\\n]*"
  1238. ],
  1239. "variants": [
  1240. "刚才那下没接住,麻烦你再发一次,我马上办。",
  1241. "这一轮跑空了,你再发一遍,这次一定接住。",
  1242. "信号丢了一格,重发一下就好。",
  1243. "这轮没接上,你再说一遍,我立刻做。",
  1244. "手滑没接住,再来一次?",
  1245. "刚走神了,你重复一下,马上办。",
  1246. "这条没进到我这,重发一次就行。",
  1247. "掉线了一下,你再说一次,我马上接。",
  1248. "这轮空转了,麻烦你重发,我这次稳稳接住。",
  1249. "刚才没跑起来,你发一遍,我立刻开工。",
  1250. "消息在传输中溜了,麻烦再来一次。",
  1251. "这轮没启动成功,你重发,我马上处理。"
  1252. ]
  1253. },
  1254. {
  1255. "id": "turn_partial",
  1256. "label": "半途中断、可能已改动",
  1257. "patterns": [
  1258. "This turn did not complete\\.[^\\n]*",
  1259. "This turn did not complete[^\\n]*"
  1260. ],
  1261. "variants": [
  1262. "这轮半路断了,前面可能已经动过东西——重发前先确认一下。",
  1263. "任务跑了一半散架了,已经做过的部分你先过一眼。",
  1264. "中途断了,有些改动可能已经落下,核对一下再重来。",
  1265. "这轮没走完,前面的动作说不定已经生效了。",
  1266. "半途熄火,先看看已经跑过的那几步。",
  1267. "断在半路了,动手前先核对已发生的改动。",
  1268. "这轮没跑完,别急着重发,先确认已经动过的。",
  1269. "半道停了,前面留下的痕迹请先看一眼。",
  1270. "跑一半就断了,可能有副作用已经产生,先核验。",
  1271. "中途停了,已经落地的改动得先确认。"
  1272. ]
  1273. },
  1274. {
  1275. "id": "msg_not_processed",
  1276. "label": "单条消息没处理",
  1277. "patterns": [
  1278. "Your message was not processed[^\\n]*",
  1279. "this message was not processed[^\\n]*"
  1280. ],
  1281. "variants": [
  1282. "这条没接住,麻烦重发一次。",
  1283. "消息溜了,再发一遍。",
  1284. "这条我漏了,重发一下。",
  1285. "没收到这条,再来一次。",
  1286. "手滑漏掉了,麻烦重发。",
  1287. "这条掉地上了,再发一次。",
  1288. "刚才那条没进我脑子,重发一下。",
  1289. "这条没进来,麻烦再发。"
  1290. ]
  1291. },
  1292. {
  1293. "id": "turn_interrupted",
  1294. "label": "上一轮被打断",
  1295. "patterns": [
  1296. "\\[System note: The previous turn was interrupted[^\\]]*\\]",
  1297. "The previous turn was interrupted by[^\\n]*"
  1298. ],
  1299. "variants": [
  1300. "上一轮被打断了,我接着往下做。",
  1301. "刚被叫停了,我继续。",
  1302. "前面中断了,我从这儿接着来。",
  1303. "上一轮没跑完,我续上。",
  1304. "被按下暂停了,现在继续。",
  1305. "中断了一次,我接着办。",
  1306. "刚才被打断,我把它做完。",
  1307. "上一轮半途停了,我从断点续上。"
  1308. ]
  1309. },
  1310. {
  1311. "id": "cmd_timeout",
  1312. "label": "命令超时",
  1313. "patterns": [
  1314. "\\[?Command timed out after (?P<n>\\d+)\\s*s(?:econds)?\\]?",
  1315. "Command timed out after (?P<n>\\d+) seconds"
  1316. ],
  1317. "variants": [
  1318. "等了 {n} 秒还没动静,先掐了。",
  1319. "这条命令 {n} 秒了还在那儿杵着,我撤了。",
  1320. "超时 {n} 秒,先放它一马。",
  1321. "{n} 秒没回音,先停了。",
  1322. "它磨蹭了 {n} 秒,我先收了。",
  1323. "等了 {n} 秒没结果,换个方式。",
  1324. "{n} 秒还没跑完,我掐了重来。",
  1325. "这条太慢了({n} 秒),先停。",
  1326. "撑到 {n} 秒就超时了,撤。",
  1327. "它卡了 {n} 秒没反应,我先断掉。"
  1328. ]
  1329. },
  1330. {
  1331. "id": "exit_timeout",
  1332. "label": "超时退出码",
  1333. "patterns": [
  1334. "Exit 124:[^\\n]*",
  1335. "the command hit its timeout[^\\n]*"
  1336. ],
  1337. "variants": [
  1338. "命令超时退出(124),想多等就调大 timeout。",
  1339. "它到点自己退了(124),要更久就加 timeout。",
  1340. "超时退出码 124,需要的话把 timeout 调大。",
  1341. "跑到超时就退了(124),想等更久就改 timeout。",
  1342. "124:超时退出,加大 timeout 能等更久。",
  1343. "退出码 124 就是超时,需要就调 timeout。",
  1344. "它等不及退了(124),要慢工就调 timeout。"
  1345. ]
  1346. },
  1347. {
  1348. "id": "refuse_overwrite",
  1349. "label": "拒写未读文件",
  1350. "patterns": [
  1351. "Refusing to overwrite (?P<p>[^\\n:]+):[^\\n]*"
  1352. ],
  1353. "variants": [
  1354. "{p} 我还没读过,不敢直接覆盖——先读一遍再说。",
  1355. "没看过 {p},先读再写,免得把内容盖掉。",
  1356. "{p} 没读过就覆盖太危险,我先看一遍。",
  1357. "为免覆盖,{p} 我先读再动。"
  1358. ]
  1359. },
  1360. {
  1361. "id": "file_not_read",
  1362. "label": "文件没先读",
  1363. "patterns": [
  1364. "[^\\n]*was not read by this agent\\.[^\\n]*",
  1365. "Read the file first so you can write an informed edit[^\\n]*"
  1366. ],
  1367. "variants": [
  1368. "这文件我还没读过,先读一遍再改。",
  1369. "没看过就改容易出事,先读一下。",
  1370. "先读再写,免得把原内容盖掉。",
  1371. "得先看看这文件长什么样,再动手。"
  1372. ]
  1373. },
  1374. {
  1375. "id": "script_path_relative",
  1376. "label": "脚本路径要相对",
  1377. "patterns": [
  1378. "Script path must be relative to [^\\n]*",
  1379. "Place scripts in [^\\n]*and use just the filename[^\\n]*"
  1380. ],
  1381. "variants": [
  1382. "脚本路径要写成相对的(相对脚本目录),别用绝对路径。",
  1383. "路径得是相对目录的,绝对路径和 ~ 都不行。",
  1384. "脚本路径请用相对写法,绝对路径会被拒。",
  1385. "路径要相对脚本目录——绝对路径过不了校验。"
  1386. ]
  1387. },
  1388. {
  1389. "id": "tool_name_required",
  1390. "label": "调用缺工具名",
  1391. "patterns": [
  1392. "tool_call calls\\[\\d+\\] requires a 'name'",
  1393. "requires a 'name'"
  1394. ],
  1395. "variants": [
  1396. "这个调用少了工具名。",
  1397. "得写上要调哪个工具。",
  1398. "缺了工具名,补一下。",
  1399. "没说是哪个工具,补个名字。"
  1400. ]
  1401. },
  1402. {
  1403. "id": "patch_no_match",
  1404. "label": "替换没匹配上",
  1405. "patterns": [
  1406. "Could not find a match for old_string[^\\n]*",
  1407. "Failed to find a match for old_string[^\\n]*",
  1408. "old_string not found[^\\n]*"
  1409. ],
  1410. "variants": [
  1411. "文件里找不到这段原文,替换不了。",
  1412. "没匹配上,你给的那段和文件里对不上。",
  1413. "找不到要替换的内容,确认下原文。",
  1414. "这段在文件里没找到,先看看是不是改了。",
  1415. "原文对不上——先核对一下再替换。"
  1416. ]
  1417. },
  1418. {
  1419. "id": "skill_desc_too_long",
  1420. "label": "技能简介超长",
  1421. "patterns": [
  1422. "Description is \\d+ chars[^\\n]*",
  1423. "must fit the \\d+-char[^\\n]*"
  1424. ],
  1425. "variants": [
  1426. "技能简介超长了,得压到 60 字符以内。",
  1427. "简介太长了(限 60 字符),删一点。",
  1428. "简介超出 60 字符上限,精简一下。",
  1429. "简介得再短些,60 字符是硬线。"
  1430. ]
  1431. },
  1432. {
  1433. "id": "perm_denied",
  1434. "label": "权限不足",
  1435. "patterns": [
  1436. "Permission denied",
  1437. "EACCES: permission denied"
  1438. ],
  1439. "variants": [
  1440. "这条路没权限——不硬闯,我换条道走。",
  1441. "权限不够,我绕开它,别卡在这。",
  1442. "被权限挡了一下,没事,另找路子。",
  1443. "这门锁着,我走别的门。",
  1444. "没权限,先放它一放,我换个方式。",
  1445. "权限这关过不去,我另想办法,不耽误事。",
  1446. "被挡在门外了——换条路,继续走。",
  1447. "这儿不让进,我绕过去。"
  1448. ]
  1449. },
  1450. {
  1451. "id": "no_such_file",
  1452. "label": "路径不存在",
  1453. "patterns": [
  1454. "No such file or directory",
  1455. "no such file or directory"
  1456. ],
  1457. "variants": [
  1458. "这路径是空的——没这个文件,确认下名字。",
  1459. "找不着。路径不对,或者文件被挪走了。",
  1460. "翻遍了没这东西,看看路径是不是写错。",
  1461. "这儿什么都没有,路径得再核一下。",
  1462. "文件不在——名字或目录,挑一个改。",
  1463. "没找到这个文件,先确认下它还在不在。",
  1464. "路径指向空气,检查一下再走。",
  1465. "这文件不存在,换个名字或路径试试。"
  1466. ]
  1467. },
  1468. {
  1469. "id": "http_error",
  1470. "label": "接口报错",
  1471. "patterns": [
  1472. "HTTP Error (?P<code>\\d{3}):\\s*[A-Za-z]+",
  1473. "HTTP Error (?P<code>\\d{3})",
  1474. "Client error '(?P<code>\\d{3})[^']*'",
  1475. "status_code['\"]?\\s*[:=]\\s*(?P<code>\\d{3})"
  1476. ],
  1477. "variants": [
  1478. "接口回 {code} 了,这次没成。",
  1479. "对面给了 {code},请求没通过。",
  1480. "服务端回 {code},先放一放。",
  1481. "调用被拒({code}),换个姿势再试。",
  1482. "接口 {code},这条路走不通。",
  1483. "对方回 {code},这次先算了。",
  1484. "{code}:请求没被接受。",
  1485. "接口返回 {code}——看看是不是权限或参数的问题。",
  1486. "被 {code} 挡回来了,我换个方式。"
  1487. ]
  1488. },
  1489. {
  1490. "id": "connect_failed",
  1491. "label": "连接失败",
  1492. "patterns": [
  1493. "Connect call failed",
  1494. "failed reconnect attempts",
  1495. "Connection refused",
  1496. "Failed to connect"
  1497. ],
  1498. "variants": [
  1499. "连不上——网络或服务那边的问题,我来重试。",
  1500. "握不上手,先等等再试。",
  1501. "连接被拒,对方可能没开。",
  1502. "没连上,我再试一次。",
  1503. "线路不通,稍后重来。",
  1504. "接不上头——别急,我重连。",
  1505. "通道打不开,换条路再试。",
  1506. "对端没应答,我先重连看看。"
  1507. ]
  1508. },
  1509. {
  1510. "id": "websocket_closed",
  1511. "label": "长连接断开",
  1512. "patterns": [
  1513. "websocket closed",
  1514. "aibot websocket not subscribed"
  1515. ],
  1516. "variants": [
  1517. "长连接断了,会自动重连——不用管。",
  1518. "通道掉了,正在接回来。",
  1519. "WebSocket 断了,重连中,稍等。",
  1520. "链路断了,别慌,它会自己恢复。",
  1521. "连接掉了,我重新挂上。",
  1522. "通道断开,等它回来就好。",
  1523. "长连接抖了一下,正在自动恢复。"
  1524. ]
  1525. },
  1526. {
  1527. "id": "traceback",
  1528. "label": "程序抛异常",
  1529. "patterns": [
  1530. "Traceback \\(most recent call last\\):"
  1531. ],
  1532. "variants": [
  1533. "程序崩了一下,堆栈如下。",
  1534. "抛异常了,看堆栈。",
  1535. "出错了,堆栈在这儿。",
  1536. "报异常了,我看看。",
  1537. "崩了,堆栈贴出来。",
  1538. "程序摔了一跤,堆栈在下面。",
  1539. "翻车了,堆栈如下。",
  1540. "抛错了,堆栈在这。"
  1541. ]
  1542. },
  1543. {
  1544. "id": "delegation_complete",
  1545. "label": "后台任务完成",
  1546. "patterns": [
  1547. "\\[ASYNC DELEGATION COMPLETE[^\\]]*\\]",
  1548. "\\[ASYNC DELEGATION BATCH COMPLETE[^\\]]*\\]"
  1549. ],
  1550. "variants": [
  1551. "后台那个任务交差了。",
  1552. "派出去的活干完了。",
  1553. "后台任务收工,结果在这。",
  1554. "分出去的任务回来了。",
  1555. "后台那摊子完事了。",
  1556. "交给后台的活有结果了。",
  1557. "后台的任务回来了,结果如下。"
  1558. ]
  1559. },
  1560. {
  1561. "id": "stream_activity",
  1562. "label": "正在接收输出",
  1563. "patterns": [
  1564. "receiving stream response"
  1565. ],
  1566. "variants": [
  1567. "正在收流式输出…",
  1568. "数据还在往里进,稍等。",
  1569. "流里还有内容,我在读。",
  1570. "正在接收回复流,快好了。",
  1571. "内容还在往外吐,接住中。",
  1572. "流还没结束,我继续收。",
  1573. "数据流还没走完,稍候。"
  1574. ]
  1575. },
  1576. {
  1577. "id": "cmd_blocked",
  1578. "label": "命令被拦",
  1579. "patterns": [
  1580. "Command blocked",
  1581. "blocked by policy"
  1582. ],
  1583. "variants": [
  1584. "这条命令被策略拦下了——不硬来,换条路。",
  1585. "不让跑,被规则挡回来了。",
  1586. "命令被拦,我换个方式达成。",
  1587. "被拦住了,不硬闯。",
  1588. "这条被禁止执行,另找办法。",
  1589. "策略不批这条,绕一下。",
  1590. "被拦下了——换个合规的写法再试。"
  1591. ]
  1592. },
  1593. {
  1594. "id": "busy_tail_respond_shortly",
  1595. "label": "尾句:马上回你",
  1596. "patterns": [
  1597. "I'll respond to your message shortly\\.?"
  1598. ],
  1599. "variants": [
  1600. "马上回你。",
  1601. "这就回你。",
  1602. "稍等,我马上看。",
  1603. "马上处理你这条。",
  1604. "回你就在下一秒。"
  1605. ]
  1606. },
  1607. {
  1608. "id": "busy_tail_queue",
  1609. "label": "尾句:跑完就办",
  1610. "patterns": [
  1611. "I'll respond once the current task finishes\\.?"
  1612. ],
  1613. "variants": [
  1614. "跑完就接着办。",
  1615. "它一收尾我就接。",
  1616. "等这轮完就轮到你。",
  1617. "完了我立刻办。",
  1618. "收工第一件事就是它。"
  1619. ]
  1620. },
  1621. {
  1622. "id": "busy_tail_steer",
  1623. "label": "尾句:下个动作带上",
  1624. "patterns": [
  1625. "Your message arrives after the next tool call\\.?"
  1626. ],
  1627. "variants": [
  1628. "下个动作就带上你这条。",
  1629. "下一步就按你说的来。",
  1630. "紧接着的一步就生效。",
  1631. "马上照办。"
  1632. ]
  1633. },
  1634. {
  1635. "id": "busy_tail_steer_sub",
  1636. "label": "尾句:子任务下个动作带上",
  1637. "patterns": [
  1638. "Your message arrives after their next tool call\\.?"
  1639. ],
  1640. "variants": [
  1641. "它们下个动作就带上你这条。",
  1642. "子任务下一步就按你说的来。",
  1643. "分支也会跟着一起调。",
  1644. "子任务也照这个走。"
  1645. ]
  1646. },
  1647. {
  1648. "id": "busy_tail_redirect",
  1649. "label": "尾句:按纠正调整",
  1650. "patterns": [
  1651. "I'll adjust using your correction\\.?"
  1652. ],
  1653. "variants": [
  1654. "我按你的纠正调整。",
  1655. "照你说的改。",
  1656. "马上按你给的调。",
  1657. "就按你这个来。"
  1658. ]
  1659. },
  1660. {
  1661. "id": "busy_tail_demoted",
  1662. "label": "尾句:排队+/stop",
  1663. "patterns": [
  1664. "your message is queued for when it finishes \\(use /stop to cancel everything\\)\\.?"
  1665. ],
  1666. "variants": [
  1667. "你这条已排队,等它干完就办(想全停发 /stop)。",
  1668. "先给你排上,完了就处理(要中止全部发 /stop)。",
  1669. "已进队列,跑完接着办(全停就发 /stop)。",
  1670. "排上了——要立刻全停,发 /stop。"
  1671. ]
  1672. }
  1673. ]
  1674. }