@bendyline/gezel-cli

中文文档
1.2.13发布于 2026/11/05MITES Module构建来源已验证近 30 天下载 1764

Gezel命令行工具:与你的Gezels聊天,运行手写本,管理终端的本地模型.

中文使用文档
文档目录14 节
  1. 快开始
  2. 图标
  3. 开始和停止
  4. 一发催泪弹和管道
  5. 提供者密钥
  6. 命令行的手提书
  7. 仓库工作流程
  8. 宣布手工业手册需要什么
  9. 项目手稿及其脚本
  10. 没有进一步设置有什么用
  11. 在自己的机器上运行模型
  12. CLI怎么找到格泽尔的
  13. 稳定
  14. 文档

@bendyline/gezel-cli (英语)

这个 gezel 命令行: 组装一组 AI 同伴 (宝石并设置 他们从你的终端工作.

快开始

在全球安装CLI。 它需要节点24或更新;检查 node --version,如果它是长的, brew install node (macOS), (英语:, winget install OpenJS.NodeJS.LTS (窗户)或 nvm install 24 (任何地点) 安装当前 .

npm install -g @bendyline/gezel-cli

没有瞄准镜 gezel-cli 软件包是 此处的短名 : npx gezel-cli 运行它不安装,和 npm install -g gezel-cli 安装同一程序。 安装其中之一 全球范围,而不是两者:两者都提供 gezel 命令.

然后选择AI运行的地方.

在这台电脑上. 看看哪个聊天模式适合你的机器 下载一个, 用它来聊天:

gezel model list --available
gezel model pull <id>
gezel model use <id>

以云供养. 保存您的 API 密钥而不放在命令上 中,然后选择一个提供商的模型 /model 内部 gezel数字 :

gezel secret set openaiApiKey --env OPENAI_API_KEY
gezel secret set anthropicApiKey --stdin < anthropic-key.txt

现在开始工作:

gezel                                   # the interactive terminal app
gezel run "Summarize this project"      # one prompt, one reply

你第一次跑的时候 gezel {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}在一台新机器上 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}它让你走过同样的路 选项:它提供了经过验证的 Gezel 本地工具包,然后是最佳聊天模式 用于此设备( 建议和最小的首次下载), 可选 完整的图像、语音、读取和视频辅助工具组合,适合,或其他 兼容聊天模式。 下载显示现场进展并生效 重新启动 。 您已经拥有的模型, 在您自己的商店或桌面应用程序中 此机上的共享, 用于不下载另一个副本 .

格泽尔是当地第一。 在你的磁盘下创造出的一切 ~/.gezel/ 作为普通文件,你可以 cat 财务报告和审定财务报表 grep,然后与任何 模型提供者你指向它。 我们没有云服务 站在你和 那个模特儿 npm 软件包是您需要的; 桌面应用程序是可选的 .

图标

运行 gezel --help,或 --help 任何命令,每个选项.

命令它会做什么
gezel为此文件夹的项目打开交互式终端应用程序
gezel run [prompt…]一个迅速,一个答复,使用 这个项目的船员领先 除非你通过 --gezel <id>单人 - 从 stdin 读取提示
gezel do <craftbook…>启动一个手写本作为此文件夹项目的任务: 它的名称, 然后需要值, key=value 参数和您的请求. --wait 跟着它到底
gezel <craftbook> …简指 gezel do <craftbook> …,在 crawbook 命令名上精确匹配;内置命令总是获胜
gezel craftbook list [words…]列出手写本 gezel do 可在此文件夹的工程( 命令名称、 标题、 类别) 中开始; 以命令、 标题和标签来过滤单词 . --json 脚本
gezel workflow <name-or-file> [args…]运行仓库工作流程 .gezel/workflows/<name>.mjs 或模块路径
gezel task list|show|create每个项目的任务
gezel task wait|resume|pause <ref>尾随任务, 重试一个已暂停的任务并跟踪它, 或者暂停一个任务
gezel task notes <ref>任务笔记,包括暂停原因和失败的检查(--warnings 添加运行时间警告)
gezel agent list|create|show|output-limit管理您的 gezels( 命令名称为历史名称)
gezel project list|create|install|indexing管理项目、其 npm 软件包和背景索引( )gezel env 是同一个命令)
gezel skills list|import|convert找到 SKILL.MD 技能并将其转化为工艺书
gezel app …构建、安装、应用和服务AI Apps(.gezapp: new, (中文(简体) ), validate, (中文(简体) ), pack, (中文(简体) ), add, (中文(简体) ), update, (中文(简体) ), list, (中文(简体) ), show, (中文(简体) ), apply, (中文(简体) ), status, (中文(简体) ), serve, (中文(简体) ), enable, (中文(简体) ), disable, (中文(简体) ), remove, (中文(简体) ), schemas
gezel model list|pull|use|export在线聊天模式. list --available 显示适合此机器的目录模型,并有大小; use <id> 使聊天使用一个已下载的模型( 当没有设定工作默认时, 牵引本身会这样做 ); export <id> [file] 写一个便携式、 校验和验证 .gezmodel
gezel model context|concurrency本地模型的上下文窗口, 以及有多少请求本地引擎同时服务
gezel native install|list|status在这个计算机上运行模型的本地引擎
gezel image status|models|pull|rm图像生成模型
gezel create-image|create-video|create-audio生成图像、视频或口语音频
gezel knowledge …构建、检查和搜索 .gezk 知识目录init, (中文(简体) ), build, (中文(简体) ), validate, (中文(简体) ), inspect, (中文(简体) ), export-parquet, (中文(简体) ), search, (中文(简体) ), nearby),并管理被安装在Gezel(available, (中文(简体) ), install, (中文(简体) ), list, (中文(简体) ), remove, (中文(简体) ), find(中文(简体) )
gezel secret list|set|remove提供者密钥, 只存储写入
gezel security external-services [on|off]Gezels 是否可以使用网络搜索和其他外部服务
gezel mode [mode]显示或设定 AI 活动程度 : read-only, (中文(简体) ), reactive, (中文(简体) ), reactive+tasks,或 full-play
gezel start 编号 : status 编号 : stop开始、检查或停止您的 Gezel 服务(参见 开始和停止(中文(简体) )
gezel doctor检查安装
gezel cleanup显示或回收此设备上的空间 Gezel 用途(--redownloadable, (中文(简体) ), --models, (中文(简体) ), --dry-run, (...) (中文(简体) )
gezel backup <file> 编号 : restore <file>将您的宝石、工程和文件写入备份文件,或带回(restore --list 看着第一)
gezel handboek export --out <dir>(原始内容存档于2018-10-21). Render the Handboek, Gezel的内置文档,作为静态网站

开始和停止

  • gezel start 确保你的Gezel服务运行. --port <n> 针头 a 端口,以及 --foreground 保持它附着在终端上(Ctrl+C停止).
  • gezel start --web 还服务于此计算机上的浏览器界面和 打印带有签名符的浏览器 URL,该签名符在服务前有效 重启 . --open 为您打开它。 当运行中的服务启动时 没有网络界面, gezel start --web --restart 替换它.
  • gezel status 报告服务是否在上方和在哪里; 当 它不是运行或不健康.
  • gezel stop 取消任何人工智能工作并关闭您的用户Gezel服务.
  • gezel stop --keep-running 是紧急刹车: 取消人工智能工作, 卸下 引擎,切换到Reactive,使服务运行. ()--daemon 实值 仍被接受为平地站的别名. )

如果桌面应用程序的全机服务在使用中, gezel stop 显示 紧急刹车 并说服务由操作系统管理.

在互动应用程序内, /mode 切换相同的四个活性水平 /model 列出每个已安装的模型 下载新模式 要获取 另外一个; 下载被选择给活动的 gezel 并开始一个新的聊天. /continue 处理适当的时间表并抓取当前项目的活动 任务,以及 /nightshift start|stop|list 管理"夜行". /allow edits 财务报告和审定财务报表 /disallow edits 让 Gezel 自己的工具和背景工作编辑当前 工程,或只让他们读; codexedits 财务报告和审定财务报表 claudeedits 做到这一点 对运行在 Codex 或 Claude 命令行工具上的宝石一样.

一发催泪弹和管道

gezel run - 读取管道或重定向文件中的 UTF-8 提示。 写着 至 EOF 并保持换行和缩进 :

printf 'Summarize these notes:\nThe launch is Friday.\n' | gezel run -
gezel run - < prompt.txt

回复到 stdout, 这样您就可以重定向到一个文件; 诊断到 师曰. 空输入退出状态 1 。 没有了 -, (中文(简体) ), gezel run "your prompt" 用它的论点 gezel run 显示 用途。 在模型建立之前, run 下载什么也没有: 它命名了设置 命令和退出.

提供者密钥

提供方密钥进入桌面应用程序使用的同一证书存储处,从 一个环境变量,或者从 stdin ,所以数值从不出现在您的 命令参数或 shell 历史 :

gezel secret list
gezel secret set openaiApiKey --env OPENAI_API_KEY
gezel secret set anthropicApiKey --env ANTHROPIC_API_KEY
gezel secret set braveSearchApiKey --env BRAVE_SEARCH_API_KEY --use-for-search
gezel secret remove openaiApiKey

--stdin 读取管道或重定向文件的值。 受支助者 名称是 openaiApiKey, (中文(简体) ), openaiOrganization, (中文(简体) ), anthropicApiKey, (中文(简体) ), googleAiApiKey, (中文(简体) ), githubToken, (中文(简体) ), braveSearchApiKey, (中文(简体) ), tavilyApiKey, (中文(简体) ), webhookBearerToken,以及 webhookBasicAuth· ; gezel secret list 给他们看 ,但从不打印一个值。 所有三个命令都接受 --json。存储使用您的系统密钥环,或者在有加密文件的地方 无.

--use-for-search (与 braveSearchApiKey) 也使网络搜索变得勇敢 供养. 网络搜索还需要外部服务允许: gezel security external-services 显示此设置,以及 on 或者说 off 改变它。 保存一个钥匙永远不会为你打开它.

保存 OpenAI 或 Anthropic 密钥后, 运行 gezel 和使用情况 /model 选择 一个供应商的模型。 在桌面应用程序或 CLI 中保存的密钥是 两者均可使用.

3 个设置对长期未处理的批次有帮助 :

  • gezel model context <id> 65536 设置本地模型的背景窗口 ; 省略数字以查看,或使用 auto 来清理它.
  • gezel model concurrency 1 将本地引擎限制为一次一个请求, 也保留较少的记忆; auto 恢复自动缩放.
  • gezel env indexing off 在此文件夹中暂停可选的背景索引 项目(或 --project 目标); on 还原它.

--provider llama-cpp|mlx|ds4 为模型命令选择引擎 (默认: 此平台的安装引擎), 所有三个都接受 --json。 。 。 .

命令行的手提书

工艺书是杰泽尔作为任务完成的作品的配方. gezel craftbook list 显示您可以在当前文件夹中启动的 项目,以及 gezel craftbook list deck 按命令、标题、 缩小列表, 还有标签.

gezel do 取出手书,然后取出它的价值观。 下一个是空值 所需的参数,按手书列出的顺序. key=value 财务报告和审定财务报表 可重复 --param key=value 设置任何参数,包括应用程序的参数 发射表隐藏。 每一个字都是你的要求: 成为任务 说明,并且,当手书用到一个时,其主要内容。 引文为 选项.

任何工艺书都用名字来写,所以 gezel summarize-long "…" 实值 gezel do summarize-long "…"。名称必须符合手书的命令 名称( 其 id, 除非它声明一个) , 内置命令总是 赢了。 错误的类型名称报告一个未知的命令而不创建项目 .

gezel do summarize-long "Summarize notes.txt for the board"
gezel summarize-long "Summarize notes.txt for the board"
gezel do powerpoint-deck "A deck about Delft" audience=investors --wait --json
gezel task wait my-project/12 --timeout 7200 --json
gezel task resume my-project/12 --json
gezel task notes my-project/12 --warnings --json

只发送您给出的值; 服务在默认值之后填充 创建任务。 任务完成后等待 0 退出, 1 退出 取消 暂停或等待回答时取消2个 超时3个 A 类 超时让任务运行 。 当任务被阻断时, --wait 打印原因 (最新注),并指出 gezel task notes <ref>。前进 标准; --json 将结果写入 studout . resume 重试已暂停的任务 用它保存的食谱。 在Gezel再等待之前回答悬而未决的问题.

仓库工作流程

对于围绕多本手稿的脚本管弦乐,请在下面添加一个模块 .gezel/workflows/,例如 .gezel/workflows/quarterly-reports.mjs数字 :

export async function run({ args, log, runCraftbook }) {
  const results = [];
  for (const region of args) {
    log(`Writing the ${region} report`);
    results.push(await runCraftbook('region-report', { region }));
  }
  return results;
}

运行它 gezel workflow quarterly-reports north south --json,或给出 模块路径 : gezel workflow ./pipeline/quarterly-reports.mjs north编辑 模块接收公众 GezelClient (单位:千美元)client),文件夹的项目编号 (单位:千美元)projectId),绝对值 workspace、 args,一个 stderr log,并:

  • runCraftbook(id, params, options) 开始 a 项目 手书(列在下) .gezel/craftbooks/)并等来. 选项包括 timeoutMs,一个保存 taskRef 接下来, parentTaskRef 将儿童与其批次联系起来 onCreated(task) 以检查新的引用。 它检查了手书的 (b) 宣布需求为第一(见下文).
  • complete(request) 在工程引擎上调用一个限定的模型 队列,用于对模块已经持有的输入进行判断。 没有工具、会话或 笔录涉及;模块验证答案并保存内容 继续.
  • validateCraftbook(document) 检查生成的手写本与相同 在安装前, 设置和步骤规则为服务 .
  • ensureSetup({ services, models }) 请求设置模块 运行时间,同样的方式 gezel do 已经.
const { json } = await complete({
  gezelId: 'checker',          // or provider + model
  system: 'You are a meticulous fact-checker.',
  prompt: `FACTS:\n${facts}\n\nSENTENCES:\n${sentences}`,
  jsonSchema: verdictSchema,   // grammar-constrained on local engines
  thinking: false,             // skip a local model's reasoning phase
  maxTokens: 4000,
  timeoutMs: 300_000,
  label: 'fact-check, paragraph 3',
});

complete 返回时 { content, json?, jsonError?, elapsedMs }返回时 对象为 exitCode 从 run 设置 shell 退出状态.

要将工作流程显示为手工艺书命令,请添加 "cliWorkflow": { "module": ".gezel/workflows/quarterly-reports.mjs" } 改为 项目工艺手册和申报其投入 paramSchema,列出 空值应填入 required接下来 gezel do quarterly-reports north --json 运行它,模块也收到 craftbook 和审定的 params。工作流程手册不需要请求文本,模块拥有 创建父任务、默认、检查站,以及有多少儿童在 一次 一次吗 模块必须生活在项目工作空间内; --strict-sandbox 拒绝他们.

工作流在前景中运行 即使没有 --wait,所以保留终端 打开。 每一个孩子都要等待时间。 如果 CLI 退出, 任务已经完成 创建持续运行,但其他工作流程需要再次运行; gezel task wait 跟踪父母及其子女,但不重新启动 工作流程.

宣布手工业手册需要什么

手工艺书可以声明它运行的聊天模式及其能力 无法运行没有. gezel do 在事发前检查他们:

"services": [{ "kind": "web-search", "reason": "research checks every fact" }],
"models": [
  { "id": "qwen3.8-27b-q4", "reason": "writes the report" },
  { "id": "{{checkerModel}}", "provider": "llama-cpp", "reason": "checks every sentence" }
]

web-search 指按键搜索提供者(Brave);维基百科不计数. 这意味着 external-services,只获取页面的工艺书可以 自行宣说. 一个模型 id (或 provider可能是一个 {{param}} 引用,从运行的值或默认值中填入;解决为 什么都没有跳过. provider 默认此计算机的安装引擎 .

在一个终端,每个缺失的作品是一个问题:打开外部服务 (命名移动到的安全级别),粘贴一个勇敢的搜索 API 密钥 (隐藏,然后通过一次测试搜索得到证明)并下载模型(a 磁盘空间检查, 如果缺少引擎的话). 任何"不",或者没有逃跑 终端,在运行开始前停止并打印修正它的命令:

gezel security external-services on
gezel secret set braveSearchApiKey --env BRAVE_SEARCH_API_KEY --use-for-search
gezel model pull qwen3.8-27b-q4 --provider llama-cpp

项目手稿及其脚本

项目手册 .gezel/craftbooks/<id>/manifest.json (标识) 财务报告和审定财务报表 versions/<version>/craftbook.json (完整的食谱,包括其 剧本). 改变食谱会影响新的任务;运行中的任务会保留其副本.

国家行动倡议的发射,包括 /do 在交互式应用程序中,信任精确 该任务中的脚本内容 复制的食谱。 编辑的脚本没有 继承这种信任, 一个模型永远不会给予它。 在平台上没有 可执行的操作系统网络边界,例如Windows,这些脚本 与最佳网络隔离运行; gezel do … --strict-sandbox 需求 操作系统边界。 宣布的能力和项目以及 安全政策仍然适用。 工作流程模块本身为普通运行 本地节点代码, 如 npm 脚本 .

没有进一步设置有什么用

CLI不捆绑模型重量或本地推论引擎 只在您选择在线设备模型时才下载。 你可以直接使用:

  • 互动应用程序( E)gezel),它让你通过选择一个模型 和一发提示gezel run "…"一旦一个模型建立.
  • 云提供商: OpenAI, Anthropic, GitHub 副驾驶, 以及任何兼容 OpenAI 的 终点.
  • 您的宝石、 工程和任务( E)gezel agent, (中文(简体) ), gezel project, (中文(简体) ), gezel task) (中文(简体) ).
  • gezel skills convert 财务报告和审定财务报表 gezel handboek export,不需要运行 服务.
  • 您已有的知识目录 : gezel knowledge validate, (中文(简体) ), inspect, (中文(简体) ), 和全文 search 工作离线,没有服务.

建立目录( E)gezel knowledge build和 gezel knowledge search --semantic 还需要嵌入运行时间, npm 将它安装出叶. 在 Gezel 安装的地方添加( 滴放) -g 用于工程安装); 桌面 应用已包含:

npm install -g @huggingface/transformers@^4.3.1

在项目安装中,还添加 overrides 从 @bendyline/gezel-service 读取, (中文(简体) ), 使Kokoro在相同的变形器上。 Js复制服务.

在自己的机器上运行模型

在线聊天、本地图像和视频生成以及语音对文本的需要 本土引擎(llama.cpp,稳定-分流.cpp,低语.cpp,uv). 他们很远 对 npm 软件包来说太大了( CUDA 单是 超过 700 MB), 所以它们 当您询问时, 下载一次 :

gezel native install                 # this platform's default backend
gezel native install --variant cuda  # or cpu / vulkan / metal
gezel native status

下载来自 native-v* 发布 GitHub 图像 并经过验证 使用时。 每个CLI发布一个精确的 本地发布,每个存档 SHA-256被编译入包. Gezel 自己的 Windows 二进制也必须 携带 Bendyline 的认证码签名及其 macOS 二进制 开发者 ID; Linux 二进制对照编译的散列检查 。 没什么 被获取直到你要求它.

CLI怎么找到格泽尔的

没有连接旗,CLI使用你自己的每个用户Gezel服务. 这个 找到它通过 ~/.gezel/runtime (其端口和被绑定的TLS证书)和 连接为您, 因此不需要立即批准, 也不需要桌面 应用.

  • 管理命令在服务不运行时启动, 并说这样的话 师曰. 它一直运行 之后,直到 gezel stop日志为 ~/.gezel/logs/service-YYYY-MM-DD.log (以10 MB 滚动,保存了7天).
  • 只读诊断,例如 gezel native status 从不离开服务 后面 后面那个.
  • 互动应用程序关闭了您退出时开始的服务 .
  • gezel run 没有服务运行 启动一个 的提示并停止它 后结. 当运行中的服务不健康时,它不会这样做.

CLI 免费时在端口 6228 开始收听服务, 所以其他的应用程序 获得一个稳定的 OpenAI 兼容地址 (https://127.0.0.1:6228/v1),并在a 自由端口; --port 针一. 当桌面应用程序安装完毕时 全机服务,该服务拥有6228. 目前的全机服务 只运行模型: CLI 从未发送它的项目, 密钥, 工具, 以及您自己的 服务将其用于模型下载和推断. 当你从一个升级 旧的桌面发布器, 旧的全机服务, 仍保留您的 转而使用宝石和项目; --standalone 跳过它.

您自己的服务可能会重新使用桌面应用程序的机器安装的两样东西 发布,只读:其下载的模型(你自己的模型优先, 在首次使用之前,一个共享型号将重新安装) 当它们匹配 CLI 的被绑定的放出文件以获取文件并通过签名时 检查。 其他的都被下载到自己的家里 CLI从来没有读过 机器服务的私人数据.

连接旗有:

gezel --connect https://host:6228                  # another Gezel; approve on first use
gezel --connect https://host:6228 --token "$TOKEN"
gezel --standalone                                 # skip an older machine-wide service
gezel --home /path/to/another-home                 # a separate Gezel home

--connect 需要Gezel的CLI资助 没有节省的赠款或 --token,终端显示一个六字符代码 等待你批准 格泽尔CLI 在Gezel软件。 可撤销的证书保存在 ~/.gezel/cli/tokens/。 。 。 . gezel stop 无法关闭您获取的服务 --connect· ; gezel stop --keep-running 停止它的人工智能工作.

--home <dir> (或明示) GEZEL_HOME隐含 --standalone一个你的家 名称为 --home 与 Gezel 桌面应用的分离 机器安装发布:其共享的宝石和项目及其模型 下载。 设定 GEZEL_DISABLE_MACHINE_SHARED=0 包括他们。  默认家, ~/.gezel,仍然看到他们.

稳定

这个软件包的支持的公开表面是它的 命令行页:1 命令,他们的旗帜,和他们的输出。 它没有载运 JavaScript API; 导入 从它不支持,其内部模块可以在任何发行中更改.

打破对命令或旗帜的更改会跟随semver.

文档

麻省理工学院

版本与发布记录

@bendyline/gezel-cli 共发布 26 个版本,首次发布于 2026/08/11;过去 12 个月发布了 26 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.2.13latest2026/11/054 天前
1.2.122026/11/045 天前
1.2.112026/10/2813 天前
1.2.102026/10/2713 天前
1.2.92026/10/2714 天前
1.2.82026/10/2417 天前

关于 @bendyline/gezel-cli 的常见问题

@bendyline/gezel-cli 是什么?

Gezel命令行工具:与你的Gezels聊天,运行手写本,管理终端的本地模型.

如何安装 @bendyline/gezel-cli?

在项目目录运行 npm install @bendyline/gezel-cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 gezel,可以用 npx gezel 直接运行。

@bendyline/gezel-cli 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/bendyline__gezel-cli 是否存在。

@bendyline/gezel-cli 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@bendyline/gezel-cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@bendyline/gezel-cli 可以商用吗?

@bendyline/gezel-cli 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@bendyline/gezel-cli 的下载量有多少?

根据 npm 官方下载统计,@bendyline/gezel-cli 在 2026/10/08 – 2026/11/06 这 30 天内被下载 1,764 次,日均约 59 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bendyline/gezel-cli 还在维护吗?

最新版本 1.2.13 发布于 2026/11/05(4 天前);至今共发布 26 个版本,其中过去 12 个月发布了 26 个;首次发布于 2026/08/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。