• Benin

    本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:

    - 我的帖子已经打上 开源推广 标签: 是

    - 我的开源项目完整开源,无未开源部分: 是

    - 我的开源项目已链接认可 LINUX DO 社区: 是

    - 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是

    - 以上选择我承诺是永久有效的,接受社区和佬友监督: 是

    以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


    Grok Build 的 TUI 有着自己的特点,是我非常喜欢的一款 Herness,随着近些天的使用,我越来越想尽所有时间都能让我不同设备的 Agent 们一起干活,而我也能在不同的设备上管理监督查看这些 Agents,于是我便手搓了一款 Agents Herness(for GrokBuild),本版本专门为 Grok Build 进行适配,未来可能会对其他支持 ACP 协议的 Agent 适配。

    为什么要做这个

    最核心的需求其实是我想在手机上操控任意电脑上的 Agent,其实这个需求非常常见,早在 Claude Code 火的时候不仅是官方还是社区都已经有了很多的方案,但这些方案都或多或少有自己的特点和理解,而我想要的是一款保留 GrokBuild 操作UI特点且支持多设备切换,多会话切换的远程Agent工具,在社区看了许多诸如同类别产品都不满足我的需求。

    审美是各异的,有些人觉得TUI好难看,有些人觉得CodexDesktop的风格好看,所以我决定自己从ACP协议入手,进行专项适配。好在 GrokBuild 采用 Rust 语言开发,并且开源,我能够很快的确定技术栈后,用 OpenCode Go 提供的几乎无限 V4 Flash 来互相对比开发。

    现在达成了这样的效果,正常工作中的效果如下:

    图片

    图片

    而在手机浏览器里,它是这样的:

    图片

    可以发现工作区的设计基本完全对齐Grok的TUI,而会话切换部分我做了新的设计,将各个工作区的对话进行分组后显示,不再受到仅限当前工作区的对话限制。

    操作习惯

    操作习惯方面也是对齐 Grok的,但为了移动端,无键盘的场景有一些细微的区别:

    - Tab 切换Prompt输入框和工作滚动区域,这个一样;

    - 思考、工具调用等鼠标单击展开预览,双击弹窗查看细节,对应到键盘上是上下箭头切换,左右箭头展开折叠,回车弹窗查看细节。

    图片

    - model 和 effort 切换做成了直接点击切换的形式。

    图片

    - 提问也改成了弹窗,但后续会考虑对齐TUI的形式。

    - 我喜欢看当前模型的输出速度,特意在状态右侧加入速度统计 ^-^ 227 t。

    图片

    - 扩展区域也就是右上角有一些功能面板,特地做了usage查看,也有git mcp等但不是很完善,用的频率也很低。

    图片

    - 支持置顶对话或者工作目录。

    图片

    部署教程(可以交给你的Agent)

    首先你需要安装 Grok:https://grok.com/build 按照网页的提示安装。

    然后你需要启动grok一次:

    如果你有账号有代理,可以登录就登录;

    如果你平常不开代理,也不想登录,需要额外做一些配置:

    打开~/.grok/config.toml加入下面的配置:```
    [endpoints]
    models_base_url = "127.0.0.1"
    ```并在待会启动的时候带上任意环境变量,有个占位就可以。

    XAI_API_KEY = “sk”

    其实这步骤主要是让grok不要去请求自家xai网页,否则没代理会卡十秒进不去,很影响体验。

    紧接着是配置第三方API,这里以 OPC 为例子:```
    [models]
    default = "grok-4.5"
    default_reasoning_effort = "high"

    [model.deepseek-v4-flash-go]
    model = "deepseek-v4-flash"
    base_url = "https://opencode.ai/zen/go/v1"
    name = "DeepSeek V4 Flash Go"
    api_backend = "chat_completions"
    context_window = 1000000
    api_key = "替换我"
    reasoning_efforts = [
    "low",
    "high",
    "max",
    ]
    ```上方的 chat_completions 可根据实际情况改成 responses、messages

    然后在这里找到最新版本下载我的项目,记得下对版本:

    图片

    GitHub

    图片

    Releases · AgentsHerness/herness-node

    Local ACP host service (Go): spawns grok agent stdio, exposes ACP sessions to console and relay. - AgentsHerness/herness-node

    使用自己的环境变量启动即可:```
    PORT = "8765"
    GROK_BIN = ""
    HOST_ID = ""
    HOST_NAME = ""
    XAI_API_KEY = "sk" # 如果你是官方登录就不需要,需要不挂代理使用就需要占位,内容任意
    HUB_URL = "" # 部署的远程 HUB 服务网址,不给就默认本地模式
    .\acp-host # 启动即可
    ```这里如果你不输入 HUBURL 则视为本地模式,用localhost:8765即可进入前端开始使用。

    但我们做这个就是为了远程对吧,所以还需要一台服务器,部署 acp-hub。

    github.com

    图片

    GitHub - AgentsHerness/herness-relay: Central ACP relay (Go): multi-host pairing,...

    Central ACP relay (Go): multi-host pairing, discovery, event aggregation, NAT-friendly QUIC/WS transport.

    这块内容完全可以交给你的 Agent,我就不赘述了。

    结语

    刚用 3B Token 搓出来 99% 的缓存命中率,说明搭配 GrokBuild+V4F 还是不错的,项目在所难免有一些 bug,欢迎大家通过 issue 或者回帖反馈,一起享用多设备协同管理 Agent 体验,给 Agents 加上 Herness!

    主楼
  • 白学森

    话说为什么是Herness而不是Harness,,

    #1
  • wz

    佬,我想请问一下,缓存命中率是如何提高的?小白求问

    #2
  • Benin

    打错字母了,下个版本修复哈哈感谢指正

    #3
  • Benin

    命中率没有做特别的优化,单纯是GrokBuild本身的命中率。

    #4
  • wz

    好的佬,我去研究一下这个项目 ^-^

    #5

发表回复

登录后回复