news 2026/9/15 16:36:09

Craft Agents craft-cli 完全参考:ping 到 run 的 14 个命令逐个拆解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Craft Agents craft-cli 完全参考:ping 到 run 的 14 个命令逐个拆解

Craft Agents craft-cli 完全参考:ping 到 run 的 14 个命令逐个拆解

【免费下载链接】craft-agents-oss项目地址: https://gitcode.com/GitHub_Trending/cr/craft-agents-oss

Craft Agents的命令行工具craft-cli是一个面向 AI Agent 终端场景的瑞士军刀:通过 WebSocket 连接运行中的 Craft Agent 服务器,14 个命令覆盖从连通性诊断(ping)、资源列表、会话管理到一步式 AI 问答(run)的全部日常操作。本文逐个拆解这 14 个命令的用途、参数与典型用法,帮你快速把它写进自动化脚本。

1 分钟上手:安装与首次运行 craft-cli

使用前需安装 Bun 运行时,然后克隆仓库并安装依赖:

git clone https://gitcode.com/GitHub_Trending/cr/craft-agents-oss cd craft-agents-oss bun install

有两种运行方式:

# 方式 A:直接用 Bun 执行入口脚本 bun run apps/cli/src/index.ts ping # 方式 B:全局链接,之后可用 craft-cli 命令 cd apps/cli && bun link craft-cli ping

最省心的体验是run命令——它会自动拉起一个本地无头服务器,无需任何前置配置:

ANTHROPIC_API_KEY=sk-... craft-cli run "Hello, world!"

📌 工作区是 Agent 的"作业目录"。比如注册一个项目目录作为工作区后,Agent 就能读取其中的文档和图片:

完整参考见官方文档 docs/cli.md,命令实现位于 apps/cli/src/index.ts。

14 个命令总览

#命令分类一句话说明
1ping诊断验证连通性,返回 clientId 与延迟
2health诊断检查凭据存储健康状态
3versions诊断显示服务器运行时版本
4workspaces列表列出所有工作区
5sessions列表列出工作区内的会话
6connections列表列出已配置的 LLM 连接
7sources列表列出已配置的数据源
8session会话操作含 create / messages / delete 三个子命令
9send会话操作向会话发消息并流式输出 AI 回复
10cancel会话操作取消进行中的处理
11run一步式自动拉起服务器 + 发消息 + 流式输出 + 退出
12invoke高级对任意 RPC 通道发起裸调用
13listen高级订阅服务器推送事件
14--validate-server诊断21 步服务器集成自检

命令分发逻辑集中在 index.ts 的 switch 语句中;WebSocket 客户端封装在 apps/cli/src/client.ts。

诊断三兄弟:ping、health、versions

这三个命令都是"先连通再说"的基础检查,排障时第一步就该跑它们。

ping—— 验证与服务器能否握手,返回客户端 ID 和往返延迟:

craft-cli ping # 输出:Connected: clientId=xxx latency=12ms

health—— 调用credentials:healthCheck,检查凭据存储是否可用:

craft-cli health

versions—— 调用system:versions,显示服务端各运行时版本,出现PROTOCOL_VERSION_UNSUPPORTED报错时用它对比版本:

craft-cli versions

配合--json可得到机器可读输出,方便写监控脚本:

craft-cli --json ping

资源列表四命令:workspaces、sessions、connections、sources

这四个命令只读、无副作用,适合放进健康巡检脚本。

craft-cli workspaces # id + 名称 + 路径 craft-cli sessions # 会话 id + 名称 + 预览 + 处理中状态 craft-cli connections # 所有 LLM 连接 craft-cli sources # 工作区内配置的数据源

💡sessionssources依赖工作区:省略--workspace时 CLI 会自动检测第一个可用工作区(逻辑见 resolveWorkspace);若服务器上没有工作区会报错提示你显式指定--workspace <id>

session 三个子命令:创建、回看、清理

session是一个带子命令的组命令(实现见 cmdSessionCreate 等):

# 创建会话,可指定名称与权限模式 craft-cli session create --name "CI Run" --mode allow-all # 打印某会话的完整消息历史 craft-cli session messages <session-id> # 删除会话 craft-cli session delete <session-id>

典型脚本套路:先session create拿到 id(加--json用 jq 提取),干完活再session delete收尾,全程不碰桌面应用。

send:流式输出 AI 回复

send是交互核心:向已有会话发送消息,并实时流式打印 AI 回复(cmdSend 与事件订阅实现):

craft-cli send abc-123 "What files are in the current directory?" # 支持管道输入(stdin 自动识别) echo "Summarize this" | craft-cli send abc-123 cat document.txt | craft-cli send abc-123 --stdin

事件流会按类型渲染到终端:

事件表现
text_delta文本逐字流式输出
tool_start显示[tool: 名称 — 意图]标记
tool_result工具结果(截断至 200 字符)
complete退出码 0
error输出到 stderr,退出码 1
interrupted退出码 130

默认等待完成的上限是 5 分钟,可用--send-timeout <ms>调整。

cancel:一键打断正在跑的任务

会话处理时间较长、发现方向跑偏时,不必等超时:

craft-cli cancel <session-id>

它调用sessions:cancel中断当前处理,适合放进 CI 的失败分支做优雅清理。

run:最强大的一步式命令

run是唯一自包含的命令——不需要预先运行服务器,它会自动完成整个生命周期(cmdRun 完整实现):

  1. 用 server-spawner.ts 拉起本地无头服务器
  2. 自动配置 LLM 连接(从--api-key/$LLM_API_KEY/ 各厂商环境变量解析密钥)
  3. 可选注册--workspace-dir <path>作为工作区
  4. 创建临时会话 → 发送提示词 → 流式打印回复
  5. 结束后自动删除会话并关闭服务器(--no-cleanup可保留)

常用参数:

# 指定目录 + 数据源 craft-cli run --workspace-dir ./project --source github "List open PRs" # 换用 OpenAI craft-cli run --provider openai --model gpt-4o "Summarize this repo" # 自定义端点(代理 / 自托管模型) craft-cli run --provider anthropic --base-url https://my-proxy/v1 --api-key $KEY "Hello" # 管道输入提示词 cat error.log | craft-cli run "What's causing these errors?"
参数默认值说明
--workspace-dir目录直接注册为工作区
--source <slug>启用的数据源(可重复)
--modeallow-all会话权限模式
--output-formattexttextstream-json
--no-cleanupfalse结束后保留会话
--server-entry自定义服务器入口路径

支持的 provider 包括anthropicopenaigoogleopenroutergroqmistraldeepseekxaicerebrashuggingfaceamazon-bedrock等(密钥解析逻辑)。stream-json输出让每个事件变成一行 JSON,方便下游程序消费。

invoke 与 listen:给高阶玩家的后门

这两个命令让你绕过封装、直接触达服务器 RPC 层:

# 裸 RPC 调用:任意通道 + JSON 参数 craft-cli invoke system:homeDir craft-cli invoke sessions:get '"workspace-123"' # 订阅推送事件,Ctrl+C 退出 craft-cli listen session:event

想调试服务器内部通道或写监控探针时非常有用——所有参数按 JSON 解析,解析失败则当普通字符串传入(cmdInvoke 实现)。

--validate-server:21 步一键体检

怀疑部署有问题?一条命令跑完覆盖完整生命周期的 21 步集成自检:

# 对着已有服务器 craft-cli --validate-server --url ws://127.0.0.1:9100 --token <token> # 或不带 --url,自动拉起本地服务器自检 craft-cli --validate-server --json

步骤从握手、凭据健康检查、版本比对,一直覆盖到会话创建、消息流式、工具调用、数据源与技能创建清理、断开连接。📋 注意它会临时创建并清理会话/数据源/技能等测试资源,全部步骤失败也会继续跑完并输出汇总报告。步骤定义见 getValidateSteps。

全局参数速查表

run外,其他命令都需要服务器地址(--url或环境变量CRAFT_SERVER_URL):

参数环境变量默认值说明
--urlCRAFT_SERVER_URL服务器 WebSocket 地址
--tokenCRAFT_SERVER_TOKEN认证令牌
--workspace自动检测工作区 ID
--timeout10000请求超时(毫秒)
--tls-caCRAFT_TLS_CA自签名 TLS 证书路径
--jsonfalse原始 JSON 输出,便于脚本
--send-timeout300000send等待超时

🔐 远程 TLS 服务器(wss://)自签证书时加上--tls-ca /path/ca.pem即可。

常见问题排查

现象原因解决
Connection timeout服务器未启动或地址错误确认服务器在运行并核对--url
AUTH_FAILEDtoken 不对检查CRAFT_SERVER_TOKEN与服务器一致
PROTOCOL_VERSION_UNSUPPORTED版本不匹配CLI 与服务器升级到同版本
No workspace available尚无工作区用桌面应用或 API 先创建

总结

craft-cli 的 14 个命令形成了清晰的三层结构:诊断层(ping / health / versions / --validate-server)保障连通性,资源层(workspaces / sessions / connections / sources)摸清现状,操作层(session / send / cancel / run / invoke / listen)完成真正的工作。其中run一步到位,--json让一切输出可脚本化——把这套 CLI 接进 CI 或定时任务,你的 AI Agent 就能 7×24 无人值守地跑起来了。

【免费下载链接】craft-agents-oss项目地址: https://gitcode.com/GitHub_Trending/cr/craft-agents-oss

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 16:36:05

基于BusterNet的图像复制粘贴篡改检测与定位

简介&#xff1a;本资源是一套面向计算机相关专业本科生的毕业设计实战项目&#xff0c;聚焦图像复制粘贴篡改检测这一数字图像取证核心任务&#xff0c;提供完整可运行的Python实现方案。项目经导师指导与评审&#xff0c;获98分高分&#xff0c;代码全部本地编译调试通过&…

作者头像 李华
网站建设 2026/9/15 16:35:08

华为OD面试全流程经验:机试、技术面、薪资与转正避坑指南

先声明一句&#xff1a;我不是华为员工&#xff0c;也不是猎头&#xff0c;就是一个前两年自己走完华为OD全部流程、最终拿到offer并入职过的普通人。写这篇东西的起因很简单&#xff0c;身边陆陆续续有朋友问我“华为OD到底值不值得去”“机试难不难”“学历一般能不能过”。与…

作者头像 李华
网站建设 2026/9/15 16:35:06

可变形卷积与注意力机制在滚动轴承故障诊断中的应用

简介&#xff1a;滚动轴承是旋转机械的关键部件&#xff0c;其故障诊断对保障设备安全运行意义重大。面向这一应用场景&#xff0c;资源提供基于可变形卷积和注意力机制的故障诊断算法实现&#xff0c;重点解决传统神经网络特征提取能力不足与可解释性较弱的问题&#xff1b;算…

作者头像 李华
网站建设 2026/9/15 16:35:04

零散对话转可筛选Excel的三套实操方案

1. 项目概述&#xff1a;为什么“零散对话信息整理成可筛选Excel”是高频刚需 你刚结束一场30分钟的客户语音访谈&#xff0c;录音转文字后得到2800字的纯文本&#xff1b;或者你每天在飞书/钉钉里和5个部门来回沟通&#xff0c;聊天记录里埋着采购价、交付周期、负责人姓名、…

作者头像 李华
网站建设 2026/9/15 16:34:12

Linux下MySQL启动失败?拆解systemd报错与七大排查方法

如果你在 Linux 上装 MySQL&#xff0c;走到最后一步&#xff0c;systemctl start mysqld敲下去&#xff0c;结果屏幕上甩来一行&#xff1a;Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service&q…

作者头像 李华