原因码
ANet 向用户报告的每一条拒绝、失败、等待和状态信息,都带有一个 原因码 和一句话。命令行、MCP 工具、本地 A2A 接口、控制平面和本地控制台从同一张表取得语句,因此同一事件在所有界面上产生相同的原因码和相同的文字。本页列出这张表。
原因码的报告方式
原因码是小写标识符,最长 30 个字符,匹配 [a-z][a-z0-9_]*。部分行带有 变体;此时行键由原因码、一个点和变体组成(例如 delivery_unconfirmed.queued)。变体只改变语句的措辞,不改变原因码。
同一个原因码出现在以下位置:
anet.reason本地 A2A 接口、MCP 任务投影和控制平面中,任务或单条消息的元数据键。
reason控制平面错误体中的字段。错误体的形式为
{"error": "...", "reason": "...", "next": "..."}。命令行将error语句输出到标准错误;存在next时,再输出以箭头(→)开头的第二行。命令行不输出 JSON 错误体。ErrorInfo本地接口返回的 A2A 错误的详情。
details数组包含两个google.rpc.ErrorInfo条目。第一个的域为a2a-protocol.org,原因为该 A2A 错误的原因。第二个的域为agentnetwork.org.cn,原因为原因码的大写形式,小写的原因码位于metadata.reason。
语句由节点按其环境的语言生成。语言取自 LC_ALL、LC_MESSAGES 和 LANG 中第一个非空的变量:以 zh 开头的值选择中文,其他值选择英文,未设置环境时选择英文。客户端原样传递该语句。
语句由模板生成。花括号中的占位符,例如 {aid}、{peer}、{task}、{retry} 和 {limit},只用节点自身持有的数据填充。远端对端写入的文本不会成为语句的一部分。没有值的占位符以中性形式替换;它不会以花括号表达式的形式输出,也不会留空。
原因码的类
各表的 类 列说明语句出现在何处,以及 A2A 如何承载该语句。
类 |
含义 |
A2A 与 a2a-x402 的对应关系 |
|---|---|---|
R |
对方确定没有执行该请求。 |
任务状态 |
F |
以失败结束。 |
任务状态 |
FP |
支付未结算。 |
|
IP |
等待用户决定是否支付。 |
任务状态 |
W |
会自行解除的等待。 |
任务状态不变。 |
M |
单条消息被拒绝。任务不变。 |
原因码即该消息的 |
E |
本节点拒绝了该请求,未发送任何内容。 |
A2A 错误:请求本身或节点的持续性状态为起因时,为 JSON-RPC |
C |
只出现在命令行或控制平面错误体中。 |
控制平面错误体 |
S |
状态语句。 |
|
I |
不改变任何状态的信息。 |
与任务相同的投影。 |
T |
终端提示或确认行。 |
仅由命令行输出。 |
各表的 下一步 列说明语句要求读者做什么。command 行给出命令及其占位符。其他取值为 none needed、auto(节点正在处理该事项)、retry later、change input(修改请求、参数、文件或节点的状况,然后重试)、contact(询问对方或运营人员)、start over(创建新任务)和 futile(重复该请求无济于事)。
不显示的原因码
部分状况由节点自行处理,没有语句:守护进程重新打开的已过期 hub 会话、出站引擎重新封装的过期加密密钥标识符、守护进程重新签名的重放或过期的请求时间戳,以及密封信封层大量以小写字母和连字符命名的拒绝计数器。这些情况会被计数并写入日志,不出现在 anet.reason、控制平面的 reason 或 ErrorInfo 中。
ANetLink C1 接口的拒绝会映射为用户原因码,不对外暴露:not_permitted 报告为 provider_policy,unknown_capability 和 not_found 报告为 capability_not_served,too_large 报告为 args_too_large,bad_request、unsupported_media、internal 和 c1_version 报告为 backend_failed。
原因码表
各表由 docs/_tools/gen_reason_codes.py 根据 ANet 源码中的原因表生成。每条语句同时给出英文和中文,两者均为节点实际输出的原文。
收到时被拒绝
对方在消息到达时拒绝了该消息。原因随送达确认一并返回。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
R UNAVAILABLE |
The other side does not take tasks from you and did not run it; ask them to run: |
对方不接受你的任务,没有执行;请对方执行 |
|
|
R UNAVAILABLE |
The other side has blocked tasks from you and did not run it; retrying will not help. |
对方已屏蔽你的任务,没有执行;重试无用。 |
futile |
|
R UNAVAILABLE |
The other side does not offer this capability to you and did not run it; see what it offers with |
对方没有向你开放这项能力,没有执行;请用 |
|
|
R UNAVAILABLE |
The other side's approval queue is full, so it was not taken; send it again later, or ask them to clear the queue. |
对方的待批队列已满,没有受理;请稍后再发,或请对方先处理待批项。 |
retry later |
|
R FP UNAVAILABLE / SETTLEMENT_FAILED |
The other side is too busy right now and did not run it; send it again in {retry}. |
对方此刻太忙,没有执行;请在 {retry} 后再发。 |
retry later |
|
R UNAVAILABLE |
A call to this capability is still running there, so this one was not run; send it again when that one ends. |
对方那里仍有一个对同一能力的调用未结束,这次没有执行;请待其结束后再发。 |
retry later |
|
R UNAVAILABLE |
This minute's calls to this capability are used up, so it was not run; send it again in {retry}. |
本分钟内对这项能力的调用次数已用完,没有执行;请在 {retry} 后再发。 |
retry later |
|
R UNAVAILABLE |
Today's (UTC) calls to this capability are used up, so it was not run; send it again in {retry}. |
今天(UTC)对这项能力的调用次数已用完,没有执行;请在 {retry} 后再发。 |
retry later |
|
R UNAVAILABLE |
The arguments are over the other side's limit, so it was not run; shorten them and send again (limits: |
参数超过对方的上限,没有执行;请缩短参数后重发(上限见 |
|
|
R UNAVAILABLE |
The number of files does not match what this capability takes, so it was not run; attach the number that |
文件个数不符合这项能力的要求,没有执行;请按 |
|
|
R UNAVAILABLE |
A file is over the other side's size limit, so it was not run; make it smaller and send again (limits: |
有文件超过对方的大小上限,没有执行;请压缩后重发(上限见 |
|
|
R UNAVAILABLE |
The other side does not take this file type, so it was not run; use a type that |
对方不接收这种文件类型,没有执行;请换成 |
|
|
R UNAVAILABLE |
The other side cannot accept the form of this request, so it was not run; update |
对方不接受这个请求的格式,没有执行;请升级 |
|
|
R M UNAVAILABLE |
The other side could not confirm that your identity key is current and did not take it; run |
对方无法确认你的身份密钥是最新的,没有接收;请运行 |
|
|
R M UNAVAILABLE |
The other side could not verify this message (time, signature or identity record) and did not take it; run |
对方无法核验这条消息(时间、签名或身份记录对不上),没有接收;请运行 |
|
|
C |
The other side rotated its keys in an emergency before you approved this, so the task may not be from them and was refused; retrying will not help. |
对方在你批准之前做了紧急密钥轮换,这个任务可能不是它本人发的,已拒绝;重试无用。 |
futile |
|
I |
Not run: the other side got your cancel first. |
没有执行:对方先收到了你的取消。 |
|
|
F M UNVERIFIED |
The other side has no such task (it expired or was removed); start a new task. |
对方没有这个任务(已过期或已被清理);请新建任务。 |
start over |
|
M |
This message was not used: the task had already ended on the other side; start a new task if you still need to. |
这条消息没有被使用:任务在对方那里已经结束;需要的话请新建任务。 |
start over |
|
R M UNAVAILABLE |
The other side refused it without a reason; retrying will not help, so contact them directly. |
对方拒收了,没有说明原因;重试无用,可以直接联系对方。 |
futile |
|
R M UNAVAILABLE |
The other side refused it (reason code {code}); ask them what it means. |
对方拒收了(原因码 {code});请联系对方了解原因。 |
contact |
接受后被拒绝或失败
对方先接受了消息,随后拒绝或失败,或本节点对结果作出了裁定。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
W |
The other side approves tasks by hand and has queued this one; it will not run before they approve it, nothing to do. |
对方要先人工批准这个任务,已进入待批队列;批准前不会执行,不需要操作。 |
none needed |
|
R UNAVAILABLE |
The other side's operator did not approve this task within 72 hours, so it expired unrun; contact them before sending it again if you still need it. |
对方运营者 72 小时内没有批准这个任务,已过期,没有执行;需要的话请先联系对方再重发。 |
contact |
|
R UNAVAILABLE |
The other side's operator turned this task down, so it was not run; retrying will not help. |
对方运营者拒绝了这个任务,没有执行;重试无用。 |
futile |
|
R UNAVAILABLE |
The other side's sandbox cannot run your task right now, so it was not run; send it again later, or contact its operator. |
对方节点的沙箱此刻不能运行你的任务,没有执行;请稍后再发,或联系对方运营者。 |
retry later |
|
R UNAVAILABLE |
The other side has used up today's runs for peers it does not trust, so it was not run; send it again in {retry}. |
对方节点今天为未信任对端运行 agent 的次数已用完,没有执行;请在 {retry} 后再发。 |
retry later |
|
R UNAVAILABLE |
The other side does not allow remote calls to this capability, so it was not run; see its other capabilities with |
对方节点不允许远程调用这项能力,没有执行;请用 |
|
|
R UNAVAILABLE |
The other side does not serve this capability now, so it was not run; see what it serves with |
对方现在没有提供这项能力,没有执行;请用 |
|
|
R UNAVAILABLE |
This capability is paid, but the other side cannot take payments right now, so it was not run; try again later, or contact them. |
这项能力要付款,但对方节点现在收不了款,没有执行;请稍后再试,或联系对方。 |
retry later |
|
R UNAVAILABLE |
The other side cannot run this capability right now, so it was not run; send it again later. |
对方暂时不能执行这项能力,没有执行;请稍后再发。 |
retry later |
|
F UNVERIFIED |
The other side timed out, and whether it took effect is not known; do not just send it again: ask them first, or check with |
对方执行超时,不知道是否已经生效;不要直接重发,先问对方,或用 |
|
|
F UNVERIFIED |
The other side lost its connection to its service while running this, so whether it took effect is not known; do not just send it again, ask them first. |
对方执行时与它的服务断开,不知道是否已经生效;不要直接重发,先问对方。 |
contact |
|
F UNVERIFIED |
The other side restarted while running this, so whether it took effect is not known; do not just send it again, ask them first. |
对方节点在执行中重启,不知道是否已经生效;不要直接重发,先问对方。 |
contact |
|
F UNVERIFIED |
The other side confirmed it got this but has not answered within {limit}; it may still be running, and a later answer is still recorded: check with |
对方已确认收到,但 {limit} 内没有任何回应;它可能还在执行,之后到达的答复仍会记下,可用 |
|
|
F UNVERIFIED |
The other side's service failed without saying why; try again later, or contact them. |
对方的服务执行失败,没有说明原因;请稍后重试,或联系对方。 |
retry later |
|
F FAILED |
The other side could not read the image (damaged or too large), so there is no result; use a different image and send again. |
对方读不了这张图片(损坏或尺寸过大),没有结果;请换一张图片重发。 |
change input |
|
F FAILED |
No face was found in the first image, so there is no result; use a clear, front-facing photo and send again. |
第一张图片里没有找到人脸,没有结果;请换一张清晰的正脸照片重发。 |
change input |
|
F FAILED |
No face was found in the second image, so there is no result; use a clear, front-facing photo and send again. |
第二张图片里没有找到人脸,没有结果;请换一张清晰的正脸照片重发。 |
change input |
|
F UNVERIFIED |
The other side's result does not match the conversation it signed, so this node discarded it; contact them, or start the task again. |
对方给出的结果与它签名的对话记录不符,本机已丢弃;请联系对方,或重新发起任务。 |
contact |
|
I |
The conversation the other side signed changes what you said, so this node keeps no evidence of it and you cannot review it; you can still read the result. |
对方签名的对话记录改动了你说过的话,本机不据此记证据,也不能评价;结果仍可查看。 |
|
|
I |
This is a retry of the call just made: the original task is returned and nothing was sent again. |
这是对刚才那次调用的重试,返回原任务,没有再次发送。 |
投递
本节点发送的消息:终止性失败、等待、发件箱和投递状态语句。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
F UNVERIFIED |
{limit} 内没有确认送达:信还在 hub 排队(对方可能不在线), |
{limit} 内没有确认送达:信还在 hub 排队(对方可能不在线), |
retry later |
|
F UNVERIFIED |
{limit} 内没有确认送达(最后一次:{wait}), |
{limit} 内没有确认送达(最后一次:{wait}), |
retry later |
|
F UNVERIFIED |
{limit} 内没有确认送达:hub 没有保存它,或一直连不上, |
{limit} 内没有确认送达:hub 没有保存它,或一直连不上, |
retry later |
|
F UNVERIFIED |
Delivery was not confirmed in 14 days, and the other side may still have got it; ask them before sending it again. |
14 天内没有确认送达,对方仍可能收到过;重发前请先问对方。 |
contact |
|
F UNAVAILABLE |
Not sent: it never left this node before it expired, so the other side never got it; see why with |
没有发出:消息过期前一直没能离开本机,对方没有收到;请运行 |
|
|
F E C UNVERIFIED |
The recipient cannot be found: no hub knows this AID; check it with |
找不到收件方:没有 hub 知道这个 AID;请用 |
|
|
E C |
The other side's identity record or encryption keys cannot be verified (a forked key history or a bad signature), so nothing was sent; run |
无法核验对方的身份记录或加密钥(密钥历史分叉或签名不符),什么都没有发出;请运行 |
|
|
F UNVERIFIED |
The hub refused it: it is over the hub's size limit; make the files smaller and send again. |
hub 拒收:超过它的大小上限;请减小附件后重发。 |
change input |
|
F UNVERIFIED |
The other side takes at most 64 MiB from senders who are not yet its contacts; send smaller files, or ask them to put you on their allow list and reply to you once, then send again. |
对方只收非联系人 64 MiB 以内的信;请减小附件,或请对方把你加入 allow 名单并回你一条消息后再发。 |
change input |
|
F UNVERIFIED |
The hub cannot accept the form of this message; update |
hub 不接受这条消息的格式;请升级 |
|
|
W |
发送过快,hub 要求稍等; |
发送过快,hub 要求稍等; |
auto |
|
W |
发送过快,hub 要求稍等; |
发送过快,hub 要求稍等; |
auto |
|
W |
The other side's inbox for senders who are not yet its contacts is full, so this is queued; it goes out on its own once they collect their mail. |
对方接收非联系人来信的通道已满,信在排队;对方取信后会自动送出。 |
auto |
|
W |
The other side's mailbox is full, so this is queued; it goes out on its own once they collect their mail. |
对方信箱已满,信在排队;对方取信后会自动送出。 |
auto |
|
W |
暂时连不上对方所在的 hub,信在排队; |
暂时连不上对方所在的 hub,信在排队; |
auto |
|
W warn |
This node's hub is not taking first contacts right now, so this is queued; run |
本节点的 hub 暂时不接受首次联系,信在排队;请运行 |
|
|
W |
The hub refused the delivery credential the other side gave you, so this is queued; if it is still refused after 10 minutes it goes on its own as a first contact (and the hub then knows it is from you). |
hub 拒绝了对方给你的投递凭据,信在排队;10 分钟后仍被拒就会自动改走首次联系(hub 会因此知道是你发的)。 |
auto |
|
W |
This node's hub has not confirmed the current key yet, so this is queued; it goes out on its own once it does (see the identity line of |
本节点的 hub 还没确认最新密钥,信在排队;确认后会自动发出,详见 |
auto |
|
W |
A key rotation is being published, so this is queued; it goes out on its own once that is done. |
密钥轮换正在发布,信在排队;发布完成后会自动发出。 |
auto |
|
S ok |
{n} messages are waiting for confirmation; the oldest for {dur}. |
{n} 条消息等待对方确认,最久 {dur}。 |
|
|
S warn |
{n} messages have not left this node for {dur}: the hub cannot be reached (last error: {error}); check the network and the hub address. |
{n} 条消息已有 {dur} 没能发出:连不上 hub(最后错误:{error});请检查网络与 hub 地址。 |
|
|
S warn |
{n} 条 24 小时前发出的消息还没有确认:对方一直没有取信;不需要操作, |
{n} 条 24 小时前发出的消息还没有确认:对方一直没有取信;不需要操作, |
|
|
S ok |
No messages are waiting for confirmation. |
没有等待确认的消息。 |
|
|
S unknown |
This node's outbox cannot be opened read-only ({error}); while the daemon runs, |
无法只读打开本机的出站队列({error});daemon 在运行时, |
|
|
I ok |
A task this node sends fails if its delivery is not confirmed within {limit}, or if it is confirmed but the other side does not answer within {limit} after that; a later answer is still recorded. |
本节点发出的任务 {limit} 内没有确认送达即算失败;确认送达后 {limit} 内对方没有任何回应也算失败,之后到达的答复仍会记下。 |
|
|
I info |
no_response_after is 0: a task whose delivery is not confirmed is resent until it expires after 14 days, and a confirmed task the other side never answers keeps waiting and does not fail on its own. |
no_response_after 为 0:没有确认送达的任务会一直重发,14 天后过期才算失败;已确认而对方一直不回应的任务保持等待,不会自动算失败。 |
|
|
I |
尚未发出:暂时连不上 hub, |
尚未发出:暂时连不上 hub, |
|
|
I |
Not sent yet: it goes out on its own once the task's previous message is confirmed. |
尚未发出:等这个任务的上一条消息确认后自动发出。 |
|
|
I |
Sent; waiting for the other side's node to confirm it. |
已发出,等待对方节点确认。 |
|
|
I |
Waiting at the hub for the other side to pick it up (they may be offline). |
已在 hub 排队,等对方取信(对方可能不在线)。 |
|
|
I |
Delivered: the other side's node confirmed it. |
已送达:对方节点已确认。 |
|
|
I |
Not sent: it never left this node. |
没有发出:消息从未离开本机。 |
|
|
I |
没有确认送达: |
没有确认送达: |
|
|
I |
If it is still not delivered by {time}, the task fails. |
到 {time} 仍未送达,任务会以失败结束。 |
|
|
I |
|
|
支付
支付决定、支付结果、支出拒绝和限额摘要。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
IP |
Quoted {amount} credits; {tier} is off (limit 0), so nothing was paid; run |
报价 {amount} credits;{tier}没有开启(额度为 0),没有付款;请执行 |
|
|
IP |
Quoted {amount} credits, above {tier} (≤{single} per payment, {left} left today), so nothing was paid; run |
报价 {amount} credits,超出{tier}额度(单笔 ≤{single},今日剩 {left}),没有付款;请执行 |
|
|
IP |
Quoted {amount} credits, above even the manual limit (≤{single} per payment, {left} left today), so nothing was paid; run |
报价 {amount} credits,也超出人工付款上限(单笔 ≤{single},今日剩 {left}),没有付款;请先执行 |
|
|
IP |
Quoted {amount} credits; the payee is not on your payee list, so nothing was paid automatically; run |
报价 {amount} credits,收款方不在付款名单里,没有自动付款;请执行 |
|
|
IP |
Quoted {amount} credits; the payee list cannot be read, so nothing was paid automatically; run |
报价 {amount} credits,付款名单读不了,没有自动付款;请执行 |
|
|
IP |
Quoted {amount} credits, above the {price} credits the other side signed, so nothing was paid automatically; to pay anyway run |
报价 {amount} credits,高于对方签名的价格 {price} credits,没有自动付款;确认要付请执行 |
|
|
IP |
Quoted {amount} credits, but there is no price signed by the other side ({why}), so nothing was paid automatically; to pay anyway run |
报价 {amount} credits,但没有对方签名的价格({why}),没有自动付款;确认要付请执行 |
|
|
I |
Quoted {amount} credits, within your automatic limit (≤{single} per payment, {left} left today): paid automatically. |
报价 {amount} credits,在你的自动付款额度内(单笔 ≤{single},今日剩 {left}),已自动付款。 |
|
|
I |
Quoted {amount} credits, within the agent limit (≤{single} per payment, {left} left today): paid. |
报价 {amount} credits,在 agent 付款额度内(单笔 ≤{single},今日剩 {left}),已付款。 |
|
|
I |
Paid {amount} credits (you confirmed it in the terminal; {left} left today). |
已付 {amount} credits(你在终端确认的,今日剩 {left})。 |
|
|
FP EXPIRED_PAYMENT |
The quote has expired, so nothing was paid; start the task again for a new quote. |
报价已过期,没有付款;请重新发起任务,获取新报价。 |
start over |
|
FP SETTLEMENT_FAILED |
The chosen option settles at a hub where this node holds no credit, so nothing was paid; use another option. |
所选付款选项要在本节点没有余额的 hub 上结算,没有付款;请换一个付款选项。 |
change input |
|
FP SETTLEMENT_FAILED |
The chosen option is not in the quote, so nothing was paid; use one copied unchanged from x402.payment.required.accepts. |
所选付款选项不在报价里,没有付款;请改用从 x402.payment.required.accepts 原样复制的一个选项。 |
change input |
|
FP SETTLEMENT_FAILED |
This node signs payments for you and does not take a payload from the client; send it again as payment-submitted without x402.payment.payload. |
本节点替你签名付款,不接受客户端自带的付款载荷;请改为只发 payment-submitted,不带 x402.payment.payload。 |
change input |
|
FP SETTLEMENT_FAILED |
This task has no quote waiting to be paid, so nothing was paid; nothing to do. |
这个任务没有待付的报价,没有付款;不需要操作。 |
none needed |
|
FP SETTLEMENT_FAILED |
The other side refused this payment (the authorization does not match this task), and nothing was charged; start the task again. |
对方拒收了这笔付款(授权与这个任务不匹配),没有扣款;请重新发起任务。 |
start over |
|
FP SETTLEMENT_FAILED |
The other side refused this payment (it was not signed by this task's requester), and nothing was charged; start the task again. |
对方拒收了这笔付款(签名人不是这个任务的请求方),没有扣款;请重新发起任务。 |
start over |
|
FP SETTLEMENT_FAILED |
Not settled: the payee is not on the hub that handled this payment, and nothing was charged; pay again: |
付款没有结算:处理这笔付款的 hub 上没有这个收款方,没有扣款;请重新付款: |
|
|
FP SETTLEMENT_FAILED |
The payment authorization is valid for more than 24 hours, which the hub refuses, and nothing was charged; pay again: |
付款授权的有效期超过 24 小时,hub 不接受,没有扣款;请重新付款: |
|
|
FP INSUFFICIENT_FUNDS |
Not enough credit, and nothing was charged; see your balance with |
余额不足,没有扣款;请用 |
|
|
FP INVALID_SIGNATURE |
The payment signature did not verify, and nothing was charged; pay again: |
付款签名没有通过核验,没有扣款;请重新付款: |
|
|
FP INVALID_SIGNATURE |
This authorization was signed with a key you have since rotated away, so the hub refused it, and nothing was charged; pay again: |
这笔授权是用已轮换掉的旧密钥签的,hub 拒收,没有扣款;请重新付款: |
|
|
FP EXPIRED_PAYMENT |
The payment authorization had expired when it arrived, and nothing was charged; pay again: |
付款授权提交时已经过期,没有扣款;请重新付款: |
|
|
FP DUPLICATE_NONCE |
This authorization was already used, and nothing was charged twice; nothing to do. |
这笔授权已经用过,没有重复扣款;不需要操作。 |
none needed |
|
FP NETWORK_MISMATCH |
The authorization was signed for another network, and nothing was charged; pay again: |
付款授权签的是另一个网络,没有扣款;请重新付款: |
|
|
FP INVALID_AMOUNT |
The amount does not match the quote, and nothing was charged; pay again: |
付款金额与报价不符,没有扣款;请重新付款: |
|
|
FP SETTLEMENT_FAILED |
The payment did not settle, and nothing was charged; pay again later: |
付款没有结算成功,没有扣款;请稍后重新付款: |
|
|
C |
{amount} credits is above the per-payment limit {single}, so nothing was paid; to pay it, first run |
{amount} credits 超出单笔上限 {single},没有付款;要付请先执行 |
|
|
C |
{spent} was already paid today, and {amount} more would pass the daily limit {daily}, so nothing was paid; pay tomorrow, or run |
今天已付 {spent},再付 {amount} 会超出每日上限 {daily},没有付款;明天再付,或执行 |
|
|
C |
The agent already paid {spent} today, and {amount} more would pass the agent daily limit {daily}, so nothing was paid; ask the operator to run |
agent 今天已付 {spent},再付 {amount} 会超出 agent 每日上限 {daily},没有付款;请让运营者执行 |
|
|
C |
The payee {peer8} is not on the payee list, so the agent cannot pay it; ask the operator to run |
收款方 {peer8} 不在付款名单里,agent 不能付;请让运营者执行 |
|
|
C |
The payee list cannot be read, so agent payments are paused; run |
付款名单读不了,agent 付款已暂停;请运行 |
|
|
S info |
Automatic payments: ≤{auto_max} each; agent payments: ≤{agent_max} each, {agent_left} left today for the agent; manual payments ( |
自动付款单笔 ≤{auto_max};agent 付款单笔 ≤{agent_max},agent 今日剩 {agent_left};人工付款( |
|
|
S info |
Automatic and agent payments are off (limit 0); manual payments ( |
自动付款与 agent 付款都关着(额度为 0);人工付款( |
身份、密钥与本地数据
身份操作与状态、因身份事件而结束的任务、本地数据、时钟和保存期。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
F E S fail |
This identity was recovered or rotated elsewhere, so this node has stopped; if that was you, remove this copy ( |
这个身份已在别处恢复或轮换,本机已停止收发;是你本人所为就删掉本机副本( |
|
|
F E S fail |
This identity is deactivated and can no longer send or receive; create a new one: |
这个身份已注销,不能再收发;请新建身份: |
|
|
F |
This node's data is older than its identity's last state at the hub, so this task was ended; start it again if needed. Unless you restored a backup or copied the data directory, this identity runs elsewhere and may have leaked: run {next}. |
本机数据比这个身份在 hub 上最后登记的旧,这个在途任务已结束,需要请重新发起;如果你没有从备份恢复或复制数据目录,说明这个身份正在别处运行、数据目录可能已泄露,请运行 {next}。 |
|
|
F |
The other node's data went back to an older state (for example a restored backup), and it ended this task; start it again if you still need it. |
对方节点的数据回退到了旧状态(例如从备份恢复),对方已结束这个任务;需要的话请重新发起。 |
start over |
|
F |
An emergency key rotation was made, so all tasks in progress were ended to stop the leaked keys from being used; start them again if still needed. |
已做紧急密钥轮换,为防泄露的密钥继续被使用,在途任务已全部结束;需要的话请重新发起。 |
start over |
|
F |
The other side rotated its keys in an emergency and ended this task; start it again and its new keys will be used. |
对方做了紧急密钥轮换并结束了这个任务;重新发起即可,会自动使用对方的新密钥。 |
start over |
|
C |
{action} has to be confirmed in your own terminal; run it there: |
{action}需要在你自己的终端里确认;请在终端运行: |
|
|
C |
这份恢复文件还没有设口令,只能与它所在的数据目录一起使用,不能用于恢复;请把整个数据目录复制到这台机器上运行,再运行 |
这份恢复文件还没有设口令,只能与它所在的数据目录一起使用,不能用于恢复;请把整个数据目录复制到这台机器上运行,再运行 |
|
|
C |
The recovery file {path} is not there; add |
找不到恢复文件 {path};请加 |
change input |
|
C |
Wrong passphrase: the recovery file did not open; try again, or use another copy of the file. |
口令不对,恢复文件没有解开;请重新输入口令后重试,或换另一份恢复文件。 |
change input |
|
C |
This recovery file belongs to {file_aid8}, not {aid8} (or it was altered); use this identity's recovery file. |
这份恢复文件属于 {file_aid8},不是 {aid8}(或文件被改过);请换成这个身份的恢复文件。 |
change input |
|
C |
This recovery file is out of date and does not match the identity's current key commitment; use the most recent one. |
这份恢复文件是旧的,与身份当前的密钥承诺不符;请换成最近一次生成的恢复文件。 |
change input |
|
C |
The passphrase needs at least 12 characters; use a longer one, such as four or more random words. |
口令至少要 12 个字符;请换一个更长的口令,例如 4 个以上的随机词。 |
change input |
|
C |
The passphrase has characters that cannot be read (the terminal is not using UTF-8); switch the terminal to UTF-8 (for example LANG=C.UTF-8) and try again. |
口令里有无法识别的字符(终端不是 UTF-8 编码);请把终端切换为 UTF-8(例如 LANG=C.UTF-8)后重试。 |
change input |
|
E C S info |
Not joined to a hub yet, so nothing can be sent or received; run |
还没有接入 hub,暂时不能收发;请运行 |
|
|
C |
The witness hub {hub} cannot be reached, and a scheduled rotation needs it online; try again later, or if a key has leaked use |
连不上本节点的见证 hub {hub},计划内轮换需要它在线;请稍后重试,确有泄露请用 |
retry later |
|
C S warn |
上一次密钥轮换还在发布,期间暂停收发(不会丢消息); |
上一次密钥轮换还在发布,期间暂停收发(不会丢消息); |
|
|
C |
加入这个 hub(首次加入或从别的 hub 换过来)需要一次密钥轮换,要输入恢复口令;请在终端运行 |
加入这个 hub(首次加入或从别的 hub 换过来)需要一次密钥轮换,要输入恢复口令;请在终端运行 |
|
|
C |
The new hub {hub} has not admitted your AID yet; send this line to its operator: |
新 hub {hub} 还没有准入你的 AID;请把这一行发给它的运营者: |
|
|
C |
{hub} is your witness hub: without it nobody can confirm your key and you could not send or receive; to switch hubs run |
{hub} 是你的见证 hub,离开它就没人能确认你的密钥,你将无法收发;要换 hub 请运行 |
|
|
C |
An identity named {name} already exists here; add |
本机已有名为 {name} 的身份;请加 |
change input |
|
C |
{hub} is not this identity's witness hub; add |
{hub} 不是这个身份的见证 hub;请加 |
change input |
|
C |
This computer's clock is more than 5 minutes off from the hub; fix the system time (for example enable NTP) and try again. |
本机时钟与 hub 相差超过 5 分钟;请校准系统时间(例如启用 NTP)后重试。 |
change input |
|
C |
This data directory is from |
这是 |
|
|
C |
This data directory was written by a newer |
这个数据目录由更新版本的 |
|
|
C |
身份文件 {path} 已损坏,读不出来, |
身份文件 {path} 已损坏,读不出来, |
change input |
|
I |
The emergency rotation is done; check your peer lists and config.json for changes, replace model API keys with each provider, restart wired coding tools, and run |
紧急轮换已完成;请检查 peers 名单与 config.json 是否被改过,到各服务商更换模型 API key,重启已接入的编码工具,A2A 客户端请重新运行 |
|
|
I |
已在本机注销;你的见证 hub {hub} 还没确认, |
已在本机注销;你的见证 hub {hub} 还没确认, |
auto |
|
S ok |
{name} {aid8}, key confirmed by {hub} {ago} ago. |
{name} {aid8},密钥已由 {hub} 确认({ago}前)。 |
|
|
S warn |
This node's hub has not confirmed its key for {dur}; check the connection to the hub. |
本节点的 hub 已 {dur} 没有确认密钥;请检查与 hub 的连接。 |
|
|
S fail |
This node's hub has not confirmed its key for {dur}, so outgoing messages are queued; check the connection to the hub, and switch hubs if it stays down. |
本节点的 hub 已 {dur} 没有确认密钥,发出的消息在排队;请检查与 hub 的连接,hub 长期不可用时请换 hub。 |
|
|
S info |
新 hub 已生效;旧 hub {hub} 还没确认收到这次轮换, |
新 hub 已生效;旧 hub {hub} 还没确认收到这次轮换, |
|
|
S warn |
This node's hub was just restored from a backup and is checking identity records; nothing to do, it takes at most 30 minutes. |
本节点的 hub 刚从备份恢复,正在核对身份记录;不需要操作,最多 30 分钟。 |
|
|
S warn |
The witness hub {hub} returned an identity record that does not verify; this node's identity is not affected. Send this message to the hub's operator, and switch hubs if it keeps happening. |
本节点的见证 hub {hub} 给出的身份记录验证不过,本机身份不受影响;请把这条信息发给 hub 运营者,持续出现时请换 hub。 |
|
|
S warn |
{n} identity records of peer hubs did not match the ones this node keeps, so the kept ones stay; send this message to your hub's operator. |
有 {n} 份对等 hub 的身份记录与本机保存的不一致,已保留原记录;请把这条信息发给你的 hub 运营者。 |
|
|
S warn |
This node's hub refused its signed requests {n} times recently; check it with |
本节点的 hub 最近 {n} 次拒绝了本节点的签名请求;请运行 |
|
|
S warn |
This identity has no recovery passphrase yet: if its data directory leaks, the identity can be taken over and cannot be recovered. Run |
身份还没有设恢复口令:数据目录一旦泄露,身份可能被抢走且无法找回。请在终端运行 |
|
|
S warn |
Setting the recovery passphrase is one step short: run |
设置恢复口令还差最后一步:请在终端运行 |
|
|
E C |
本机没有任务 {task}:任务结束后按保存期删除(现在是 {retention},公开调用 7 天),也可能是本机的数据比这个任务旧;留下的证据可用 |
本机没有任务 {task}:任务结束后按保存期删除(现在是 {retention},公开调用 7 天),也可能是本机的数据比这个任务旧;留下的证据可用 |
|
|
S warn |
This computer's clock is {dur} off from the hub, so deleting expired keys and content has slowed to avoid early deletion (after a day of running it uses this clock), widening the forward-secrecy window; fix the system time (e.g. enable NTP). |
本机时钟与 hub 相差 {dur},为防误删已放慢删除过期密钥和内容(本机累计运行满 1 天后改按本机时钟删除),前向保密窗口因此变长;请校准系统时间(例如启用 NTP)。 |
|
|
S warn |
The clock could not be checked against the hub recently, so deleting expired keys and content has slowed to avoid early deletion (after a day of running it uses this clock); it recovers once the hub can be reached. |
最近无法与 hub 核对本机时钟,为防误删已放慢删除过期密钥和内容(本机累计运行满 1 天后改按本机时钟删除);恢复与 hub 的连接后自动恢复。 |
|
|
S info |
No hub is configured, so the clock cannot be checked; expired keys and content are deleted by this computer's clock, so keep the system time correct. |
没有配置 hub,无法核对本机时钟;过期密钥与内容按本机时钟删除,请确保系统时间准确。 |
|
|
S warn |
{n} expired encryption keys have been kept {dur} longer than usual because the hub mailbox never finished reading, which widens the forward-secrecy window; check that the hub is working. |
有 {n} 把过期加密钥已多保留 {dur},因为 hub 信箱一直没有读完,前向保密窗口因此变长;请检查 hub 是否正常。 |
|
|
S warn |
{n} messages in the last 24 hours were sealed to keys this node had already deleted; their senders resend them automatically; if this keeps happening, run |
最近 24 小时有 {n} 封信因封给了已删除的密钥而无法打开;发件方会自动重发,持续出现请运行 |
|
|
S warn |
At {time} this node found its data had gone back to an older state and ended {n} tasks in progress; if you did not restore a backup or copy the data directory, this identity is running elsewhere and its data may have leaked: run {next}. |
{time} 检测到本机数据回退,当时 {n} 个在途任务已结束;如果你没有从备份恢复或复制数据目录,说明这个身份正在别处运行、数据目录可能已泄露,请运行 {next}。 |
|
|
S fail |
This node's data went back to an older state more than once in 7 days, so this identity is running somewhere else; if that is your own other copy, stop it; otherwise the data directory has leaked: run {next}. |
7 天内本机数据回退了不止一次,说明这个身份正在另一处运行;如果那是你自己的另一份数据目录,请停掉它,否则数据目录已泄露,请运行 {next}。 |
|
|
S info |
任务内容的保存期是 {retention},从任务结束起算(公开调用 7 天)。 |
任务内容的保存期是 {retention},从任务结束起算(公开调用 7 天)。 |
|
|
S info |
The data directory is on a copy-on-write filesystem; deleted data may remain in snapshots. |
数据目录在写时复制文件系统上,删除的数据可能仍留在快照里。 |
|
|
C fail |
Write the retention as a number of days from 1 to 3650 followed by d, or forever; for example: |
保存期应写成 1 到 3650 的天数加 d,或写 forever;例如 |
|
|
I |
任务内容的保存期现在是 {retention},从任务结束起算。 |
任务内容的保存期现在是 {retention},从任务结束起算。 |
|
|
T |
Setting {retention} deletes {n} tasks that ended more than {retention} ago, with their content, and this cannot be undone; type yes to confirm: |
改为 {retention} 会立即删除 {n} 个已结束超过 {retention} 的任务及其内容,无法恢复;输入 yes 确认: |
|
|
I |
Content kept until {time} (retention {retention}). |
内容保存到 {time}(保存期 {retention})。 |
加入 hub 与准入
加入 hub 与准入的各种状态。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
S ok |
Registered at {hub}. |
已在 {hub} 注册。 |
|
|
S info |
Registered at {hub}; the new account is on probation until {time} and cannot upload reviews before then. |
已在 {hub} 注册;新账户见习期到 {time},期间不能上传评价。 |
|
|
E C S warn |
This hub ({hub}) needs its operator to admit your AID first; send this line to the operator: |
这个 hub({hub})需要运营者先准入你的 AID;请把这一行发给运营者: |
|
|
E C S warn |
暂时无法在 {hub} 完成注册({why}), |
暂时无法在 {hub} 完成注册({why}), |
none needed |
|
E C S warn |
暂时无法在 {hub} 完成注册(你所在网段今天的注册名额已用完), |
暂时无法在 {hub} 完成注册(你所在网段今天的注册名额已用完), |
|
|
E C S fail |
{hub} 拒绝了注册({code}), |
{hub} 拒绝了注册({code}), |
contact |
|
E C S fail |
The registration data has something an organization module marks confidential, so it was not sent to {hub}; remove it from the agent name, capability descriptions or profile, then run |
注册资料里有组织模块标为保密的内容,本节点没有把它发给 {hub};请从 agent 名称、能力描述或资料里去掉后重新运行 |
|
|
C |
{hub} cannot be reached, and nothing was changed; check the address or the network and run |
连不上 {hub},配置没有改动;请检查地址或网络后重新运行 |
|
|
C |
{hub} cannot be reached, so this node has not left it and nothing was changed; check the network and run |
连不上 {hub},没有离开,配置没有改动;请检查网络后重新运行 |
|
|
C |
Hubs no longer use invites; run |
hub 已不再使用邀请码;请直接运行 |
|
|
E S fail |
本节点的 |
本节点的 |
|
|
E S fail |
{hub} runs an older version than this node, so they cannot talk; ask the hub's operator to upgrade, or use another hub. |
{hub} 的版本比本节点旧,双方不能通信;请联系 hub 运营者升级,或换一个 hub。 |
contact |
|
C |
新账户见习期(到 {time})内不能上传评价; |
新账户见习期(到 {time})内不能上传评价; |
none needed |
|
C |
This interaction has already been reviewed; each can be reviewed once, so retrying will not help. |
这次交互已经评价过了;每次交互只能评价一次,重试无用。 |
futile |
|
C |
Only this interaction's requester can review it; retrying will not help. |
只有这次交互的请求方能评价它;重试无用。 |
futile |
|
C |
这张回执不能用于评价:它缺少评价承诺,或签名与评价对不上;只能评价用 |
这张回执不能用于评价:它缺少评价承诺,或签名与评价对不上;只能评价用 |
futile |
|
C |
The interaction ended more than 30 days ago and can no longer be reviewed; retrying will not help. |
交互结束已超过 30 天,不能再评价;重试无用。 |
futile |
|
I |
The review is signed and will be uploaded at a random time within 6 hours, to make it harder to match it to an interaction by timing. |
评价已签好,将在 6 小时内的随机时刻自动上传(让别人更难按时间对应到某次交互)。 |
被本节点拒绝
本节点立即拒绝的请求。未发送任何内容。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
E C |
This messageId is already used by the open task {task} with different content, so nothing was sent; if this is a retry, wait for task {task}; if it is a new request, use a new random messageId. |
这个 messageId 已用于进行中的任务 {task},内容不同,本次没有发送;如果是重试,请等待任务 {task};如果是新请求,请换一个新的随机 messageId。 |
change input |
|
E C |
This messageId is already used by a different message on task {task}, so nothing was sent; use a new random messageId for a new message. |
这个 messageId 已用于任务 {task} 上内容不同的一条消息,本次没有发送;新消息请换一个新的随机 messageId。 |
change input |
|
E C |
Keys starting with $ are reserved by |
参数里以 $ 开头的键是 |
change input |
|
C |
Previews are off on this node, so nothing was sent; run |
本节点的预览开关是关的,没有发送;需要时运行 |
|
|
C |
This task has ended or is not a text task sent to this node, so the preview was not sent; nothing to do. |
这个任务已结束,或不是发给本节点的文本任务,预览没有发送;不需要操作。 |
none needed |
|
C |
The requester did not ask for a preview this turn, so this frame was not sent; nothing to do. |
请求方这一轮没有要预览,这一帧没有发送;不需要操作。 |
none needed |
|
E |
For you this agent has only its public card, nothing to do; skills open only to its lists show up after your first exchange with it, and you can call one directly if you know its name. |
对你来说这个 agent 只有公开卡片,不需要操作;只对名单开放的能力,要在你与它第一次往来之后才会显示,已知能力名时可以直接调用。 |
none needed |
|
E |
This agent's extended card for you is the same as its public card (no prices and no extra skills), nothing to do. |
这个 agent 给你的扩展卡片与公开卡片相同(没有价格,也没有多出的能力),不需要操作。 |
none needed |
|
E |
This agent's extended card cannot be fetched right now (no answer, or it is busy), so its public card is shown; try again later. |
暂时取不到这个 agent 的扩展卡片(对方没有回应或太忙),下面是它的公开卡片;请稍后再试。 |
retry later |
|
E |
This agent's extended card has an invalid signature and was discarded, so its public card is shown; contact them. |
这个 agent 的扩展卡片签名无效,已丢弃,下面是它的公开卡片;请联系对方。 |
contact |
|
C |
|
|
|
|
C |
|
|
retry later |
|
C |
本节点没能把这次改动写进数据目录({error});请检查磁盘空间与数据目录的权限后重试。 |
本节点没能把这次改动写进数据目录({error});请检查磁盘空间与数据目录的权限后重试。 |
change input |
|
C |
{value} is not a full AID; copy the full AID from the AID column of |
{value} 不是完整的 AID;请从 |
|
|
C |
{what} was removed in 0.3.0; {instead}. |
{what} 已在 0.3.0 删除;{instead}。 |
change input |
|
C fail |
The setting {key} was removed in 0.3.0; {instead}. |
配置项 {key} 在 0.3.0 已删除;{instead}。 |
change input |
|
C fail |
The setting {key} is not valid: {rule}; fix it and try again. |
配置项 {key} 的值不合法:{rule};请改正后重试。 |
change input |
|
E C |
{why},什么都没有做;{fix}。 |
{why},什么都没有做;{fix}。 |
change input |
|
C S fail |
配置里有 {key},但{why}, |
配置里有 {key},但{why}, |
change input |
|
IP |
这个任务要付 {amount} credits,但{why},什么都没有签;要付款请{fix}后运行 |
这个任务要付 {amount} credits,但{why},什么都没有签;要付款请{fix}后运行 |
|
|
C |
|
|
|
|
C |
配置里有 {key},先删掉它再关闭{name}模块({m});什么都没有改。 |
配置里有 {key},先删掉它再关闭{name}模块({m});什么都没有改。 |
change input |
|
C |
这个 |
这个 |
change input |
|
C |
这个 |
这个 |
change input |
|
C |
这个版本还不能在构建时去掉{name}模块({m}),随 v0.3.x 提供;现在可以用 |
这个版本还不能在构建时去掉{name}模块({m}),随 v0.3.x 提供;现在可以用 |
change input |
|
C |
API keys are not taken on the command line; this one has appeared there (local users and your shell history may have it) and was not saved; replace it with the provider, clear your shell history, then use {next}. |
API key 不接受命令行参数;这把 key 已出现在命令行里(本机其他用户与 shell 历史可能看到),没有保存;请到服务商更换它、清理 shell 历史,再改用 {next} 读入新 key。 |
|
|
C |
The API key read was empty; check the file and try again. |
读到的 API key 是空的;请检查文件内容后重试。 |
change input |
|
C |
egress_allow takes whole host names only (such as pypi.org), and {value} {why}; fix it and try again. |
egress_allow 只接受完整主机名(例如 pypi.org),{value} {why};请改正后重试。 |
change input |
|
C |
{value} is a model service host and cannot be in egress_allow (the sandboxed agent could reach it with a key of its own); remove it from egress_allow, since model requests already go through this node. |
{value} 是模型服务主机,不能放进 egress_allow(否则沙箱里的 agent 能拿自己的 key 直连它);请删掉这一项,模型请求本来就由本节点代发。 |
change input |
|
C |
egress_allow takes at most 64 hosts; remove some and try again. |
egress_allow 最多 64 个主机;请删减后重试。 |
change input |
|
C |
An http |
|
change input |
|
C |
auto_reply.work_dir 不能位于数据目录或沙箱工作目录之内,也不能包含它们;请换一个目录。 |
auto_reply.work_dir 不能位于数据目录或沙箱工作目录之内,也不能包含它们;请换一个目录。 |
change input |
|
C |
Budgets must be whole numbers from 0 to 1000, and the per-peer one cannot exceed the global one; fix them and try again. |
预算必须是 0 到 1000 的整数,且每个对端的上限不能大于全局上限;请改正后重试。 |
change input |
本地沙箱
本地沙箱的状态语句。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
S ok |
Tasks from untrusted peers run in the sandbox: they reach models only through this node and have no network. |
未信任对端的任务在沙箱中运行:只能经本节点访问模型,不能联网。 |
|
|
S ok |
Tasks from untrusted peers run in the sandbox: they reach models only through this node, and may reach {n} hosts ({hosts}), each of which could be used to send data out. |
未信任对端的任务在沙箱中运行:只能经本节点访问模型;可联网访问 {n} 个主机({hosts}),每个都可能被用来外发数据。 |
|
|
S info |
不为未信任对端运行本机 agent(untrusted=off,或预算设为 0)。 |
不为未信任对端运行本机 agent(untrusted=off,或预算设为 0)。 |
|
|
S info |
Trusted peers run local agents directly as your user, which is the same as giving them your user's rights. |
信任的对端直接以你的用户身份运行本机 agent,等同授予你的用户权限。 |
|
|
S info |
Trusted peers also run local agents in the sandbox, outside the run budget. |
信任的对端也在沙箱中运行本机 agent,不计入预算。 |
|
|
S fail |
bubblewrap is not installed, so the sandbox is unavailable; install the bubblewrap package and try again. |
本机没有 bubblewrap,沙箱不可用;请安装 bubblewrap 包后重试。 |
|
|
S fail |
Ubuntu's AppArmor stops bubblewrap from creating user namespaces by default, so the sandbox is unavailable; run: {next} |
Ubuntu 的 AppArmor 默认禁止 bubblewrap 创建用户命名空间,沙箱不可用;请执行:{next} |
|
|
S fail |
This kernel or container does not allow user namespaces, so the sandbox is unavailable; use a host that does, or set |
本机的内核或容器不允许创建用户命名空间,沙箱不可用;请换到允许的主机,或设 |
|
|
S fail |
The sandbox self-check failed (network isolation); run |
沙箱自检失败(网络隔离);请运行 |
|
|
S fail |
The sandbox self-check failed (system call filter); run |
沙箱自检失败(系统调用过滤);请运行 |
|
|
S fail |
The sandbox self-check failed (file and process isolation); run |
沙箱自检失败(文件与进程隔离);请运行 |
|
|
S fail |
沙箱自检失败(网络隔离:{detail}),沙箱不可用,未信任对端的任务不会运行;请运行 |
沙箱自检失败(网络隔离:{detail}),沙箱不可用,未信任对端的任务不会运行;请运行 |
|
|
S fail |
沙箱自检失败(系统调用过滤:{detail}),沙箱不可用,未信任对端的任务不会运行;请运行 |
沙箱自检失败(系统调用过滤:{detail}),沙箱不可用,未信任对端的任务不会运行;请运行 |
|
|
S fail |
沙箱自检失败(文件与进程隔离:{detail}),沙箱不可用,未信任对端的任务不会运行;请运行 |
沙箱自检失败(文件与进程隔离:{detail}),沙箱不可用,未信任对端的任务不会运行;请运行 |
|
|
S fail |
bubblewrap 没能建立沙箱({error}),沙箱不可用;请运行 |
bubblewrap 没能建立沙箱({error}),沙箱不可用;请运行 |
|
|
S fail |
{name} cannot run in the sandbox (it cannot send its model requests through this node); use {agents} instead, or set |
{name} 不能在沙箱里运行(它不能把模型请求交给本节点代发);请换用 {agents},或设 |
|
|
S fail |
{name} 在沙箱里不能用这个模型服务地址({why});请改或去掉 |
{name} 在沙箱里不能用这个模型服务地址({why});请改或去掉 |
|
|
S fail |
In the sandbox this node calls the model for the agent and needs an API key; run |
沙箱里的 agent 由本节点代为调用模型,需要 API key;请执行 |
|
|
S fail |
{name} needs a model service address; run |
{name} 需要模型服务地址;请执行 |
|
|
S fail |
A custom model service needs a model name; run |
自定义模型服务需要指定模型;请执行 |
|
|
S fail |
本平台没有沙箱(只支持 Linux 与 macOS);Windows 请在 WSL2 中运行 |
本平台没有沙箱(只支持 Linux 与 macOS);Windows 请在 WSL2 中运行 |
|
|
S fail |
macOS 沙箱随 v0.3.x 提供,本版本在 macOS 上没有沙箱,未信任对端的任务不会运行;可设 |
macOS 沙箱随 v0.3.x 提供,本版本在 macOS 上没有沙箱,未信任对端的任务不会运行;可设 |
|
|
S fail |
/usr/bin/sandbox-exec is missing, so the sandbox is unavailable; set |
本机找不到 /usr/bin/sandbox-exec,沙箱不可用;请设 |
|
|
S warn |
The sandbox has no memory or process limits (no user systemd here); the other limits still apply; to add them, enable user systemd (loginctl enable-linger). |
沙箱没有内存与进程数上限(本机没有用户级 systemd),其余限制照常生效;要启用请开启用户级 systemd(loginctl enable-linger)。 |
|
|
S ok |
{n}/{daily} runs for untrusted peers today (at most {per_peer} per peer). |
今天已为未信任对端运行 {n}/{daily} 次(每个对端至多 {per_peer} 次)。 |
沙箱内 agent 读取的出口拒绝信息
沙箱内的 agent 读取的语句,不向运营人员显示。少数原因码直接关闭连接,不带语句。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
|
|
|
|
模型 |
(连接关闭,无语句) |
(连接关闭,无语句) |
|
|
模型 |
(连接关闭,无语句) |
(连接关闭,无语句) |
|
|
模型 |
(连接关闭,无语句) |
(连接关闭,无语句) |
本地后端
面向节点运营人员的本地服务后端与 C1 接口的状态语句。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
S fail |
This platform cannot read who is on the other end of {path}, so the connection was refused; if only you can change that path, set "peer_check": "path-only" for this backend. |
本平台读不到 {path} 对端进程的用户身份,已拒绝连接;若确认只有你能改动这条路径,可在这个后端配置 "peer_check": "path-only"。 |
|
|
S fail |
The process listening on {path} runs as uid {n}, not the expected {name}; check who is listening, or set expected_user. |
{path} 的监听进程以 uid {n} 运行,不是预期的 {name};请检查是谁在监听,或设置 expected_user。 |
|
|
S fail |
ANetLink 与 |
ANetLink 与 |
|
|
S info |
Refused uid {n} on c1.sock (not in allow_users); to allow it, add the user to c1.allow_users in the ANetLink config. |
拒绝 uid {n} 连接 c1.sock(不在 allow_users 中);如需允许,在 ANetLink 配置 c1.allow_users 加入该用户。 |
审计结果
对 hub 发行链和余额证明进行审计的结果。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
S fail |
On {time} the hub reported your balance as {amount}, but the previous period and the ledger say {need}; save the evidence with |
hub 在 {time} 报告你的余额是 {amount},按上一纪元与账目应为 {need};请运行 |
|
|
S fail |
A {amount}-credit entry the hub signed a receipt for is missing from the ledger; save the output of |
hub 签过收据的一笔 {amount} credits 不在账目里;请保存 |
|
|
S fail |
The ledger shows a {amount}-credit debit this node never authorized; save the evidence and contact the hub's operator. |
账目里有一笔 {amount} credits 的扣款,本节点没有签过对应的授权;请保存证据,并联系 hub 运营者。 |
|
|
S fail |
The hub's balance proof does not match the record it signed publicly ({code}); save the evidence, and consider redeeming your balance or switching hubs. |
hub 给的余额证明与它公开签名的记录不符({code});请保存证据,并考虑把余额兑付回 hub 或更换 hub。 |
|
|
S fail |
The hub refused to give a balance proof for {time}, when you were registered; contact the hub's operator. |
hub 拒绝给出 {time} 的余额证明,而你当时已注册;请联系 hub 运营者。 |
|
|
S warn |
{n} periods could not be checked in time (the hub keeps 14 days); checking resumed from {time}; keeping the daemon running avoids this. |
有 {n} 个纪元没来得及核对(hub 只保留 14 天);已从 {time} 起重新核对,保持 daemon 运行即可避免。 |
终端输出行与提示
命令行输出的确认提示和常见输出行。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
T |
Type yes to confirm: |
输入 yes 确认: |
|
|
I |
Not confirmed; nothing changed. |
没有确认,什么都没有改。 |
|
|
I |
|
|
|
|
T |
Add {name} ({peer}) to the allow list: it can send tasks to this node. |
把 {name}({peer})加入 allow 名单:它可以给本节点发任务。 |
|
|
T |
Approve the held task {task} (from {name}, {peer}): it will then run on this node. |
批准待批任务 {task}(来自 {name},{peer}):批准后它会在本节点执行。 |
|
|
T |
Loosen the inbound policy to approve: tasks from peers not on your lists wait in the approval queue until you approve them. |
放宽入站策略为 approve:名单外对端的任务先进待批队列,由你批准后执行。 |
|
|
T |
Loosen the inbound policy to open: anyone can send you tasks. |
放宽入站策略为 open:任何人都能给你发任务。 |
|
|
T |
Change this node's payment limits: |
修改本节点的付款额度: |
|
|
T |
{key} {from} → {to} |
{key} {from} → {to} |
|
|
T |
Add {name} ({peer}) to the payee list: automatic payments (≤{auto_max} each) and agent payments (≤{agent_max} each, ≤{daily} a day) can go to it. |
把 {name}({peer})加入付款名单:自动付款(单笔 ≤{auto_max})与 agent 付款(单笔 ≤{agent_max},每日 ≤{daily})可以付给它。 |
|
|
T |
Redeem {amount} credits back to the hub {hub} (manual limit: ≤{single} per payment, {left} left today). |
把 {amount} credits 兑付回 hub {hub}(人工付款上限:单笔 ≤{single},今日剩 {left})。 |
|
|
T |
Turn on reasoning previews: requesters who ask for previews also get the reasoning. |
开启推理预览:要预览的请求方也会收到推理内容。 |
|
|
T |
首次接入 hub:请设置恢复口令。以后轮换密钥、换 hub、在别的机器上恢复身份都要用它; |
首次接入 hub:请设置恢复口令。以后轮换密钥、换 hub、在别的机器上恢复身份都要用它; |
|
|
T |
Recovery passphrase: |
恢复口令: |
|
|
T |
New recovery passphrase: |
新的恢复口令: |
|
|
T |
Type it again: |
再输一次: |
|
|
T |
The two entries differ; enter it again. |
两次输入不一致,请重新输入。 |
|
|
I |
Recovery file written to {path} (passphrase-encrypted). Keep a copy somewhere else. |
已写入恢复文件 {path}(口令加密)。请另存一份到别处。 |
|
|
I |
With your passphrase, this file can rotate, recover or deactivate this identity; on its own it is useless. Keep a copy somewhere else. |
这份文件加上你的口令,可以轮换、恢复或注销这个身份;单独这份文件无法使用。请另存一份到别处。 |
|
|
I |
Together with recovery_local.key in the same directory, this file can rotate or take over this identity; run |
这份文件与同目录的 recovery_local.key 一起就能轮换或接管这个身份;请尽快在终端运行 |
|
|
T |
为 {name}({aid8})设置恢复口令:以后轮换密钥、换 hub、在别的机器上恢复身份都要用它; |
为 {name}({aid8})设置恢复口令:以后轮换密钥、换 hub、在别的机器上恢复身份都要用它; |
|
|
T |
Setting the recovery passphrase stopped halfway last time; enter the passphrase you set then to finish the last rotation. |
上次设置恢复口令只完成了一半;请输入刚才设的恢复口令,完成最后一次轮换。 |
|
|
I |
Recovery passphrase set: key number {from} → {to}, confirmed by {hub}; the unprotected recovery file in the data directory is deleted, and a copy taken earlier can no longer rotate or take over this identity. |
已设置恢复口令:密钥序号 {from} → {to},{hub} 已确认;数据目录里未设口令的恢复文件已删除,此前复制走的那份不能再轮换或接管这个身份。 |
|
|
I |
Recovery passphrase set; the unprotected recovery file in the data directory is deleted, and joining the hub will use the new one. |
已设置恢复口令;数据目录里未设口令的恢复文件已删除,接入 hub 时会用新的恢复文件。 |
|
|
I |
This identity already has a recovery passphrase, nothing to do; to change it, run |
这个身份已经设置了恢复口令,不需要操作;要更换口令请运行 |
|
|
I |
number {n}, last rotated {time} ({how}) |
序号 {n},上次轮换 {time}({how}) |
|
|
I |
number 0, never rotated |
序号 0,还没有轮换过 |
|
|
I |
{hub}, key confirmed {ago} ago |
{hub},密钥已确认({ago}前) |
|
|
I |
{path} (passphrase-encrypted) |
{path}(口令加密) |
|
|
I |
not at the default place {path}; if you saved a copy elsewhere, nothing to do |
不在缺省位置 {path};若你已另存一份,不需要处理 |
|
|
I |
{path} (no passphrase, kept with the data directory) |
{path}(未设口令,与数据目录在一起) |
|
|
T |
This rotates the signing key of {name} ({aid8}); others update when they get your next message, and tasks in progress are not affected. |
将轮换 {name}({aid8})的签名密钥;对方会在收到你的下一条消息时自动更新,进行中的任务不受影响。 |
|
|
I |
Rotated: key number {from} → {to}, confirmed by {hub}. |
已轮换:密钥序号 {from} → {to},{hub} 已确认。 |
|
|
T |
Emergency rotation of {name} ({aid8}): for when the private key or the data directory may have leaked. It will: |
紧急轮换 {name}({aid8}):用于私钥或数据目录可能已经泄露的情况。将会: |
|
|
T |
· stop the old key at once: peers that know your new key refuse messages signed with the old one right away, the rest within 6 hours |
· 立即停用旧密钥:已知道你新密钥的对方立即拒收旧密钥签的消息,其余对方最迟 6 小时后拒收 |
|
|
T |
· replace your encryption keys and void every delivery credential you have issued |
· 更换加密钥,作废你发出的全部投递凭据 |
|
|
T |
· end every task in progress (the other side sees that you rotated keys in an emergency) |
· 结束所有进行中的任务(对方会看到你做了紧急密钥轮换) |
|
|
T |
· replace this node's control and A2A tokens, and the recovery passphrase |
· 更换本机控制令牌与 A2A 令牌,并更换恢复口令 |
|
|
T |
· replace this node's control and A2A tokens, and set a recovery passphrase (the unprotected recovery file in the data directory is then deleted) |
· 更换本机控制令牌与 A2A 令牌,并设置恢复口令(数据目录里未设口令的恢复文件随即删除) |
|
|
T |
Witness hub {hub} is unreachable: the old key stops here now and the rotation is published when the hub is back; sending and receiving pause until then. If it is gone for good, press Ctrl-C and switch hubs first ( |
本节点的见证 hub {hub} 现在连不上:紧急轮换会先停用本机的旧密钥,等它恢复后自动发布,期间暂停收发。若它已永久关闭,请按 Ctrl-C 取消,先换 hub( |
|
|
I |
Done: key number {from} → {to}. |
已完成:密钥序号 {from} → {to}。 |
|
|
T |
Switching your witness hub from {old} to {hub} takes one key rotation. |
把见证 hub 从 {old} 换到 {hub},需要一次密钥轮换。 |
|
|
I |
Switched to {hub} (key number {from} → {to}). |
已换到 {hub}(密钥序号 {from} → {to})。 |
|
|
I |
旧 hub {old} 已确认收到这次轮换; |
旧 hub {old} 已确认收到这次轮换; |
|
|
T |
Recovering identity {aid8} (witness hub {hub}). |
恢复身份 {aid8}(见证 hub {hub})。 |
|
|
T |
Recovering also replaces the recovery passphrase. |
恢复会同时更换恢复口令。 |
|
|
I |
Recovered as local identity {name} (data directory {path}). The new recovery file is {file}; keep a copy somewhere else. The old recovery file no longer works. |
已恢复为本机身份 {name}(数据目录 {path})。新的恢复文件在 {file},请另存一份到别处;旧的恢复文件已作废。 |
|
|
I |
This identity has stopped working on the old machine; within 6 hours everyone accepts only the new key. Task records and lists from the old machine are not here. |
旧机器上的这个身份已停用;对方最迟 6 小时后只认新密钥。旧机器上的任务记录与名单不在这里。 |
|
|
T |
Deactivating {name} ({aid8}) is permanent: nobody will accept this identity's signatures again, and it cannot be undone. |
注销 {name}({aid8})是永久的:任何人都不会再接受这个身份的签名,也无法撤销。 |
|
|
T |
{n} tasks in progress will end at once without telling the other side; finish them first if you need to. |
有 {n} 个进行中的任务会直接结束,对方不会收到通知;需要的话先结束它们再注销。 |
|
|
T |
Type the last 8 characters of the AID to confirm: |
输入 AID 末 8 个字符确认: |
|
|
I |
Deactivated. Local data stays in {path}; to remove it: |
已注销。本机数据保留在 {path},不需要可删除: |
|
|
T |
Removing local data does not deactivate this identity; to deactivate it, run |
删除本机数据不会注销这个身份;要注销请先运行 |
|
|
T |
本节点的见证 hub 还没确认这次注销;现在删除后 |
本节点的见证 hub 还没确认这次注销;现在删除后 |
|
|
I |
Auto-reply updated. |
已更新自动回复。 |
|
|
I |
Auto-reply updated (API key set). |
已更新自动回复(API key 已设置)。 |
|
|
S |
{backend} / {name} |
{backend} / {name} |
|
|
S |
Set. |
已设置。 |
|
|
I |
direct: passed ({n}-character reply). |
direct:通过(回复 {n} 字)。 |
|
|
I |
sandbox: passed ({n} model calls through this node, {m} network connections). |
sandbox:通过(经本节点调用模型 {n} 次,联网连接 {m} 次)。 |
|
|
I |
{path}: failed — {why} |
{path}:没有通过——{why} |
|
|
T |
Trust {name} ({peer}): its tasks will run local agents directly as your user, which is the same as giving it your user's rights, including for third-party content it forwards. |
信任 {name}({peer}):它的任务会直接以你的用户身份运行本机 agent,等同授予你的用户权限,也包括它转来的第三方内容。 |
|
|
T |
Trust {name} ({peer}): its tasks will run local agents in the sandbox, outside the run budget. |
信任 {name}({peer}):它的任务会在沙箱中运行本机 agent,不计入预算。 |
|
|
T |
信任 {name}({peer}):本节点没有自动回复,不会为它运行本机 agent;信任只决定本机后端是否接收它的任务。 |
信任 {name}({peer}):本节点没有自动回复,不会为它运行本机 agent;信任只决定本机后端是否接收它的任务。 |
|
|
T |
放行出网主机 {hosts}:未信任对端的任务可以经这些主机向外发送数据, |
放行出网主机 {hosts}:未信任对端的任务可以经这些主机向外发送数据, |
|
|
T |
Switch back to direct runs: trusted peers will run local agents as your user, which is the same as giving them your user's rights. |
改回直接运行:信任的对端将以你的用户身份运行本机 agent,等同授予你的用户权限。 |
|
|
T |
API key: |
API key: |
|
|
I |
{name} {peer} ({state}) {charge} |
{name} {peer}({state}) {charge} |
|
|
I |
{skill} {price} credits |
{skill} {price} credits |
|
|
I |
{skill} free |
{skill} 免费 |
|
|
I |
{skill} — |
{skill} — |
|
|
I |
Prices are signed by the other side, fetched {time}; payment follows the quote in the task, and a quote above these prices is not paid automatically. |
价格由对方签名,取于 {time};付款时以任务里的报价为准,高于这里的价格不会自动付。 |
|
|
I |
None of the skills above charge. |
以上能力都不收费。 |
|
|
I |
This agent sends previews while it writes its reply; |
这个 agent 会在写答复时发预览;用 |
|
|
T |
Quoted {amount} credits, to {peer} ({name}), for {skill}. |
报价 {amount} credits,付给 {peer}({name}),能力 {skill}。 |
|
|
T |
The price the other side signed is {price} credits. |
对方签名的价格是 {price} credits。 |
|
|
T |
The price the other side signed is {price} credits; this quote is higher. |
对方签名的价格是 {price} credits,这次报价更高。 |
|
|
T |
No price signed by the other side was fetched. |
没有取到对方签名的价格。 |
|
|
T |
Manual limit: ≤{single} per payment, {left} left today. |
人工付款上限:单笔 ≤{single},今日剩 {left}。 |
|
|
I |
The hub's issuance chain: {n} periods, signatures and links valid, matching the head this node last recorded. |
hub 发放链:{n} 个纪元,签名与链接都有效,与本机上次记录的链头一致。 |
|
|
I |
Balance proofs: {n} periods checked, latest {time} balance {amount} credits. |
余额证明:{n} 个纪元核对通过,最新 {time} 余额 {amount} credits。 |
|
|
I |
No problems found. |
没有发现问题。 |
|
|
I |
Balance {amount} credits (held at the hub {hub}). |
余额 {amount} credits(托管在 hub {hub})。 |
|
|
I |
The new account is on probation until {time}; 20 trial credits are paid automatically after that. |
新账户见习期到 {time};期满后自动发 20 credits 体验额度。 |
|
|
I |
见习期已结束;体验额度待发(今天的名额已用完), |
见习期已结束;体验额度待发(今天的名额已用完), |
|
|
I |
Probation is over; {amount} trial credits arrived at {time}. |
见习期已结束;体验额度 {amount} credits 已于 {time} 到账。 |
|
|
S |
your messages carry no sender identity (the hub may still infer it from network address and timing) |
信里不带你的身份(hub 仍可能凭网络地址和时间推断) |
|
|
S |
the hub will know directly that your next message is from you (this changes on its own once they reply) |
下一封信 hub 会直接知道是你(对方回信后自动改为不带身份) |
|
|
S |
they may charge: the hub will know directly that new tasks are from you |
对方的服务可能收费:发新任务时 hub 会直接知道是你 |
|
|
S |
Previews off: no reply snapshots are sent to requesters. |
预览关:不向请求方发送答复片段。 |
状态摘要行
状态摘要中的语句,以及告知 agent 如何继续的文本中的语句。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
I |
Join with |
没有终端也能用 |
|
|
S ok |
Takes tasks only from the {n} peers on the allow list; {m} public capabilities; auto-reply {auto_reply}. |
只接受 allow 名单里 {n} 个对端的任务;公开 {m} 项能力;自动回复{auto_reply}。 |
|
|
S ok |
Tasks from peers not on the list wait for approval ({k} waiting now); {m} public capabilities; auto-reply {auto_reply}. |
名单外对端的任务先进待批队列(现有 {k} 个待批);公开 {m} 项能力;自动回复{auto_reply}。 |
|
|
S ok |
Takes tasks from anyone; {m} public capabilities; auto-reply {auto_reply}. |
接受任何人的任务;公开 {m} 项能力;自动回复{auto_reply}。 |
|
|
S info |
Previews on: requesters who ask get a snapshot of the reply every 5 seconds or more. |
预览开:要预览的请求方每 5 秒以上收到一帧答复片段。 |
|
|
S warn |
Previews on, with reasoning: reasoning is also sent to requesters who ask for it. |
预览开(含推理):推理内容也会发给要求它的请求方。 |
诊断检查
仅由诊断报告输出的语句。
原因码 |
类 |
英文 |
中文 |
下一步 |
|---|---|---|---|---|
|
S info |
The recovery passphrase is needed only to rotate, switch hubs, recover or deactivate; without it those are impossible, but the identity keeps working. If the recovery file is not in the default place and you saved a copy, nothing to do. |
恢复口令只在轮换、换 hub、恢复与注销时需要;忘记口令后这些操作都做不了,身份仍可正常收发。恢复文件不在缺省位置时,若你已另存则不需要处理。 |
|
|
S warn |
The recovery file {path} is not mode 0600; run |
恢复文件 {path} 的权限不是 0600;请执行 |
|
|
S warn |
There is an unfinished new recovery file {path}; any |
有一份没有完成的新恢复文件 {path};运行任意 |
|
|
S warn |
本机的信箱签名钥还没登记到 hub, |
本机的信箱签名钥还没登记到 hub, |
|
|
S warn |
In the last hour the hub found this node's signing time behind {n} times, so the clock may be jumping; enable NTP. |
最近 1 小时有 {n} 次签名时间被 hub 判为落后,本机时钟可能在跳变;请启用 NTP。 |
|
|
S warn |
Automatic or agent payments are on, but the payee list is empty, so nothing is paid automatically; add payees with |
已开自动付款或 agent 付款,但付款名单是空的,自动付款不会发生;请用 |
|
|
S unknown |
The daemon is not running; run |
daemon 没在运行;运行 |
|
|
S ok |
This computer's clock is {n} seconds off from the hub. |
本机时钟与 hub 相差 {n} 秒。 |
|
|
S info |
This node holds {n} delivery credentials from others (its messages to them carry no sender identity); it has issued {m}. |
本节点持有 {n} 个对方给的投递凭据(向对方发信时信里不带本节点的身份);已给出 {m} 个。 |
|
|
S warn |
有 {n} 个投递凭据的收回超过 1 小时没送到 hub; |
有 {n} 个投递凭据的收回超过 1 小时没送到 hub; |
|
|
S warn |
最近 24 小时有 {n} 个投递凭据被 hub 拒绝且查不出原因,相关的信已改走首次联系,hub 因此知道是你发的;如果反复出现,请考虑换用其他 hub。 |
最近 24 小时有 {n} 个投递凭据被 hub 拒绝且查不出原因,相关的信已改走首次联系,hub 因此知道是你发的;如果反复出现,请考虑换用其他 hub。 |
|
|
S warn |
hub 返回的目录分组少于 32 条,更容易猜出你在查谁; |
hub 返回的目录分组少于 32 条,更容易猜出你在查谁; |
|
|
S warn |
hub 报告的信箱签名钥序号大得不可能, |
hub 报告的信箱签名钥序号大得不可能, |
|
|
S info |
p2p dials local-network addresses (LAN mode is on); use this only in a LAN lab. |
p2p 会拨局域网地址(LAN 模式已开);只在局域网实验室这样设置。 |
|
|
S ok |
Encryption keys are published 14 days ahead, and no expired keys are being kept. |
加密钥已提前 14 天发布,没有多保留的过期密钥。 |
|
|
S fail |
The capability {name} declares files but is not served by the service module; serve it through the service module, or remove files. |
能力 {name} 声明了 files,但不是由 service 模块提供;请改由 service 模块提供,或去掉 files。 |
|
|
S warn |
本节点有标了价的能力({n} 个),但{why},这些能力的调用都会被拒绝;请{fix},或去掉价格。 |
本节点有标了价的能力({n} 个),但{why},这些能力的调用都会被拒绝;请{fix},或去掉价格。 |
|
|
S fail |
能力 {name} 声明了 files,但{why},没有能接收文件的服务;请{fix},或去掉 files。 |
能力 {name} 声明了 files,但{why},没有能接收文件的服务;请{fix},或去掉 files。 |
|
|
S warn |
The capability {name} has a timeout over 60 seconds and max_inflight below 2, so one call fills it; raise max_inflight. |
能力 {name} 的超时超过 60 秒而 max_inflight 小于 2,一个调用就能占满;请调大 max_inflight。 |
|
|
S info |
{name} is open only to your lists ({n} callers). |
{name} 只对名单开放({n} 个调用方)。 |
|
|
S warn |
{name} is open only to your lists, but the allow and trust lists are both empty, so nobody can call it; add callers with |
{name} 只对名单开放,但 allow 与 trust 名单都是空的,没有人能调用;请用 |
|
|
S info |
Previews are on, but there is no openai auto-reply, so previews come only from /tasks/preview. |
预览开关已开,但没有 openai 自动回复,预览只来自 /tasks/preview。 |
|
|
S ok |
The last balance-proof check passed ({time}). |
余额证明最近一次核对通过({time})。 |
|
|
S info |
{n} reviews are waiting to be uploaded. |
{n} 条评价等待上传。 |
|
|
S warn |
Some reviews have not been uploaded for over 7 days; check your connection to the hub. |
有评价超过 7 天没能上传;请检查与 hub 的连接。 |
|
|
S fail |
There are priced capabilities, but the extended card failed to build or verify ({code}); run |
有标价的能力,但扩展卡片生成或验签失败({code});请运行 |
|
|
S fail |
The price of the capability {name} is not between 1 and 2^63−1; fix it in config.json. |
能力 {name} 的价格不在 1 到 2^63−1 之间;请改正 config.json。 |
|
|
S warn |
Only allow-listed capabilities are priced and none is public, so there is no extended card: listed callers see no signed price and pay each task by hand; to let them pay automatically, make at least one capability public. |
只有名单内的能力标了价,本节点没有公开能力,所以没有扩展卡片:名单里的调用方看不到签名的价格,每笔都要手动付款;要让他们自动付款,请至少公开一个能力。 |
|
|
S info |
Auto-reply is off. |
自动回复关。 |
|
|
S warn |
A proxy variable ({key}) is set in the daemon's environment; the sandbox does not use it, so check that this is what you want. |
daemon 的环境里设了代理变量({key});沙箱不会使用它,请确认这是你想要的。 |
|
|
S info |
At most {daily} runs a day, each with at most 60 model requests and 16 MiB sent. |
每天至多 {daily} 次运行,每次至多 60 次模型请求、上行 16 MiB。 |
|
|
S warn |
The backend {name} is set to path-only, so its peer is checked by path only. |
后端 {name} 设为 path-only,只按路径核实对端。 |
|
|
S warn |
The public capability {name} does not take remote calls in ANetLink (no c1.remote match), so callers get provider_policy; allow it with c1.remote in the ANetLink config, or stop publishing it. |
公开能力 {name} 在 ANetLink 里不接受远端调用(c1.remote 没有匹配),别人调用会得到 provider_policy;请在 ANetLink 配置 c1.remote 放行,或不公开它。 |
hub 运营人员语句
anet-hub 输出的语句保存在 ANetHub 源码中的另一张表里。类 列中,C 表示拒绝,I 表示结果。拒绝使用表中给出的退出码。
键 |
类 |
退出码 |
英文 |
中文 |
|---|---|---|---|---|
|
I |
0 |
Admitted {aid}; it finishes joining on its own once it runs |
已准入 {aid};对方运行 |
|
I |
0 |
Admitted {aid}; the {n}-credit grant is paid when it first registers. |
已准入 {aid};附赠 {n} credits 在它首次注册时到账。 |
|
I |
0 |
{aid} is already registered here; it is now admitted and off probation. |
{aid} 已在本 hub 注册,已准入并结束其见习期。 |
|
I |
0 |
{aid} is already registered here; it is now admitted and off probation, and the {n}-credit grant has been paid. |
{aid} 已在本 hub 注册,已准入并结束其见习期;附赠 {n} credits 已到账。 |
|
I |
0 |
{aid} already received its grant, so none is paid this time; the admission stays. |
{aid} 的附赠已经发过,这次不再发放;准入保持不变。 |
|
I |
0 |
Admitted {n} AIDs from {path}; {m} of them are already registered. |
已准入 {n} 个 AID(来自 {path}),其中 {m} 个已注册。 |
|
I |
0 |
The sign-up window is open until {time} (at most {n}; proof of work required; new accounts are on probation for 72 hours). |
报名窗口已开放到 {time}(至多 {n} 个;需要工作量证明,新账户有 72 小时见习期)。 |
|
I |
0 |
The sign-up window is closed ({n} joined through it). |
报名窗口已关闭(这次进来 {n} 个)。 |
|
C |
1 |
A sign-up window is already open (until {time}); to replace it, run |
已有开放中的报名窗口(到 {time});要换一个,请先运行 |
|
C |
1 |
Not a valid AID: {value}; copy the full AID that |
不是合法的 AID:{value};请复制对方 |
|
C |
1 |
Line {n} is not a valid AID, so nothing from the file was imported; fix it and try again. |
第 {n} 行不是合法的 AID,整个文件都没有导入;改正后重试。 |
|
C |
1 |
A sign-up window lasts at most 7 days and takes at most 10000; reduce it and try again. |
报名窗口至多 7 天、至多 10000 个;请缩小后重试。 |
|
I |
0 |
Revoked the admission of {aid}. |
已撤销 {aid} 的准入。 |
|
I |
0 |
Revoked the admission of {aid} and deregistered it; its {n} credits stay on the ledger. |
已撤销 {aid} 的准入并注销它;余额 {n} credits 仍记在账上。 |
|
C |
1 |
{aid} is not on the admission list; see the list with |
{aid} 不在准入名单里;用 |
|
I |
0 |
Sign-up: open (proof of work, daily quota per network, 72-hour probation). |
注册方式:开放(工作量证明 + 按网段的每日名额 + 72 小时见习)。 |
|
I |
0 |
Sign-up: admission list only ( |
注册方式:只接受准入名单( |
|
I |
0 |
Granted {n} credits to {aid} ({name}); balance now {m}. |
已给 {aid} 发放 {n} credits(原因:{name}),余额 {m}。 |
|
C |
1 |
{aid} is not registered here, so nothing was granted; check the AID and try again. |
{aid} 没有在本 hub 注册,没有发放;请核对 AID 后重试。 |
|
I |
0 |
Paid {n} credits to {peer}; this hub still owes it {m}. |
已向 {peer} 结清 {n} credits;本 hub 仍欠它 {m}。 |
|
C |
1 |
This hub owes {peer} only {m} credits, so {n} cannot be cleared; see |
本 hub 只欠 {peer} {m} credits,不能结清 {n};请用 |
|
C |
1 |
{peer} did not accept the discharge ({value}), so this hub's record is unchanged; contact the operator of {peer} to compare the two hubs' records. |
{peer} 没有接受这次结清({value}),本 hub 的记录没有改;请联系 {peer} 的运营者核对两边的记录。 |
|
C |
1 |
No answer came from {peer}, so whether it recorded the discharge is unknown and this hub's record is unchanged; contact the operator of {peer} before clearing again. |
没有收到 {peer} 的确认,不知道它是否记下了这次结清,本 hub 的记录没有改;请先联系 {peer} 的运营者核对,再决定是否重新结清。 |
|
C |
2 |
{flag} is now a subcommand; run |
{flag} 已改为子命令;请运行 |
|
C |
2 |
{flag} 已改为固定值;请删去这个参数后重新启动 |
{flag} 已改为固定值;请删去这个参数后重新启动 |
|
C |
2 |
{flag} was removed with no replacement (the ledger keeps 14 days, so there is no gap to repair); remove it from the command. |
{flag} 已删除,没有替代(账目只保留 14 天,不再有需要修复的缺口);请删去这个参数。 |
|
C |
1 |
You can only raise it: {key} cannot be below the default {value}; use a value of at least {value}. |
只能调高:{key} 不能低于缺省值 {value};请改用不小于 {value} 的值。 |
|
C |
2 |
{key} needs a whole number from 1 to 2147483647; use a whole number in that range. |
{key} 需要一个 1 到 2147483647 之间的整数;请改用这个范围内的整数。 |
|
I |
0 |
{n} redemptions in the last 14 days, {m} credits in total; older records are deleted, so handle each within 14 days. |
最近 14 天共 {n} 笔兑付,合计 {m} credits;更早的明细已删除,请在 14 天内处理。 |
|
I |
0 |
Restored the hub database from {path} ({n} agents); once the hub starts, each agent's key confirmation pauses for up to 30 minutes, or until its node connects again if it is offline. |
已从 {path} 恢复 hub 数据库({n} 个 agent);启动 hub 后,各 agent 的身份确认会暂停最多 30 分钟,不在线的等它的节点重新连上。 |
|
C |
1 |
The hub is running, so nothing was changed; stop the hub and try again when it has stopped. |
hub 正在运行,什么都没有改;请先停止 hub,停下后重试。 |
|
C |
1 |
No hub backup (hub-backup-<date>.db) was found at {path}, so nothing was changed; point to a backup file or the directory that holds one and try again. |
在 {path} 找不到 hub 备份(hub-backup-日期.db),什么都没有改;请指向备份文件或它所在的目录后重试。 |
|
C |
1 |
There is no hub identity in {path}, so nothing was changed; put the hub's identity file back there, or point |
{path} 里没有 hub 身份,什么都没有改;请把原 hub 的身份文件放回这个目录,或用 |
|
C |
1 |
{path} is not a whole hub backup from this version of |
{path} 不是本版本 |
|
C |
1 |
{path} 由更新版本的 |
{path} 由更新版本的 |
|
C |
1 |
{path} 里没有 hub 数据,什么都没有改;请用 |
{path} 里没有 hub 数据,什么都没有改;请用 |
|
C |
1 |
This hub data (identity file or database) is from 0.2, and 0.3.0 does not migrate old data; move the hub data directory away and try again to create a new identity. |
这是 0.2 的 hub 数据(身份文件或数据库),0.3.0 不迁移旧数据;请把 hub 数据目录移走后重试(会生成新身份)。 |
|
C |
1 |
这个 hub 数据目录由更新版本的 |
这个 hub 数据目录由更新版本的 |
|
C |
1 |
{path} 正被另一个 |
{path} 正被另一个 |
|
C |
1 |
The hub's recovery passphrase is not set: if the data directory leaks, the hub identity cannot be taken back; run |
hub 的恢复口令还没设置:数据目录泄露时无法收回 hub 身份;请在 hub 停止时运行 |
|
C |
1 |
The hub is running; stop it first, then run |
hub 正在运行;请先停止它,再运行 |
|
C |
1 |
The passphrase needs at least 12 characters; use a longer one, such as four or more random words. |
口令至少要 12 个字符;请换一个更长的口令,例如 4 个以上的随机词。 |
|
C |
1 |
The passphrase has characters that cannot be read (the terminal is not using UTF-8); switch the terminal to UTF-8 (for example LANG=C.UTF-8) and try again. |
口令里有无法识别的字符(终端不是 UTF-8 编码);请把终端切换为 UTF-8(例如 LANG=C.UTF-8)后重试。 |
|
I |
0 |
The hub identity was rotated: key number {from} → {to}; it takes effect at the next start, and peers and nodes pick it up within 10 minutes. |
hub 身份已轮换:密钥序号 {from} → {to};下次启动生效,对等 hub 与节点在 10 分钟内同步。 |
|
I |
0 |
Regenerated: {list}. |
已重新生成:{list}。 |
|
I |
0 |
这些不在 hub 数据目录里, |
这些不在 hub 数据目录里, |
|
I |
0 |
Recovery file written to {path} (passphrase-encrypted). Keep a copy somewhere else. |
已写入恢复文件 {path}(口令加密)。请另存一份到别处。 |
|
I |
0 |
With the passphrase, this file can rotate this hub's identity; on its own it is useless. Keep a copy somewhere else. |
这份文件加上口令可以轮换这个 hub 的身份;单独这份文件无法使用。请另存一份到别处。 |
|
I |
0 |
The hub's recovery passphrase is already set, nothing to do; to change it, run |
hub 的恢复口令已经设置过,不需要操作;要更换口令请运行 |
|
C |
1 |
This step reads the recovery passphrase from a terminal, so nothing was changed; run |
这一步要在终端里输入恢复口令,什么都没有改;请在终端里运行 |
|
C |
1 |
There is no recovery file at {path}, so nothing was changed; point |
找不到恢复文件 {path},什么都没有改;请用 |
|
C |
1 |
{path} is not a whole recovery file, so nothing was changed; use the copy you kept elsewhere and try again. |
{path} 不是一份完整的恢复文件,什么都没有改;请改用另存的那份副本后重试。 |
|
C |
1 |
{path} is not the recovery file of this hub identity (or it was altered), so nothing was changed; point |
{path} 不是这个 hub 身份的恢复文件(或者被改过),什么都没有改;请用 |
|
C |
1 |
{path} no longer works (the recovery passphrase was changed after it was written), so nothing was changed; use the recovery file written last and try again. |
{path} 已经作废(之后又换过恢复口令),什么都没有改;请改用最近一次写下的恢复文件后重试。 |
|
C |
1 |
There is already a recovery file at {path}; it was not overwritten and nothing was changed; choose another place with |
{path} 已经有一份恢复文件,没有覆盖,什么都没有改;请用 |
|
C |
1 |
The recovery passphrase is wrong, so nothing was changed; enter the passphrase this recovery file was set with and try again. |
恢复口令不对,什么都没有改;请输入设置这份恢复文件时用的口令后重试。 |
|
T |
0 |
Recovery passphrase: |
恢复口令: |
|
T |
0 |
New recovery passphrase: |
新的恢复口令: |
|
T |
0 |
Type it again: |
再输一次: |
|
T |
0 |
The two entries differ; enter it again. |
两次输入不一致,请重新输入。 |
另请参阅
命令行参考:命令行的退出码。
故障排查:运营人员最常遇到的原因码清单及其常见成因。
hub HTTP API:hub 在线路上返回的原因码。