67 lines
3.9 KiB
Markdown
67 lines
3.9 KiB
Markdown
# newgrok
|
||
|
||
[`xai-org/grok-build`](https://github.com/xai-org/grok-build) 的非官方 fork。上游是 xAI 的终端 coding agent(全屏 TUI `grok`);本仓库在其上叠了一组可回放的补丁。
|
||
|
||
本仓库与 xAI 无关。编出来的二进制会标成 `grok [newgrok] <version>`,不会和官方发行版搞混。
|
||
|
||
改代码、跟进上游、补丁怎么排,见 [CONTRIBUTING.md](CONTRIBUTING.md)。
|
||
|
||
## 这个 fork 多了什么
|
||
|
||
### `/rc` — 当前会话镜像到 grok-glance
|
||
|
||
`/rc` 把你正在用的会话经 ACP 镜像到 grok-glance 服务器。终端里的 TUI 完全不受影响:不重启、不切 headless、不把会话交出去。glance 变成同一会话的第二个视图,两端都能跟 turn 流、发 prompt、打断正在跑的 turn,以及回答权限请求、提问和 plan 批准。**两边都能答;谁先答谁赢**,另一边的对话框会自己关掉。
|
||
|
||
```
|
||
/rc 开关
|
||
/rc on 连接(start / connect)
|
||
/rc off 断开(stop / disconnect)
|
||
/rc status 看链路状态
|
||
```
|
||
|
||
在 `~/.grok/config.toml` 里配 glance:
|
||
|
||
```toml
|
||
[remote_control]
|
||
url = "wss://glance.example.com/api/acp/agent"
|
||
api_key = "glance_sk_..."
|
||
auto_start = false # 启动就连,不用先敲 /rc
|
||
```
|
||
|
||
`GROK_RC_URL` / `GROK_RC_API_KEY` / `GROK_RC_AUTO_START` 会覆盖文件里的值。API key 更适合走环境变量,不要把 bearer token 写进明文配置。服务端用 `glance apikey add <name>` 签发。
|
||
|
||
链路只活在当前会话里,退出即断,什么都不落盘。glance 连不上会退避重试,`/rc status` 会说明原因——对端挂了、慢了或中途被杀,都不会拖垮本地会话。远端 cancel 记成 `Client("glance")`(和按 Esc 同一类),远端 prompt 带 `clientIdentifier`,会话日志里分得清是谁做的。
|
||
|
||
### 专用工具优先
|
||
|
||
每个主会话用户 turn 会写入一份**只写一次、之后不再改**的 dispatch checklist,让模型在动手前先考虑 `explore` / search / read / plan / `deep-research`,而不是自己开一轮宽搜索,或拿 bash 去 `cat` / `grep` / `find` / `ls`。checklist 按当前工具集渲染进用户消息,前缀对 prompt cache 是稳定的。
|
||
|
||
如果 bash 还是做了有专用工具的文件操作,工具结果后面会跟一条 **nudge**(命令已经执行过了,只提醒下次换工具)。子 agent 同样会收到这条 nudge。
|
||
|
||
两段 reminder 在送给 compaction 摘要模型之前会被剥掉,避免把 agent 内部指令写进会话摘要。
|
||
|
||
### 会话级 `prompt_cache_key`
|
||
|
||
主 turn 会显式钉上会话级的 `prompt_cache_key`(就是 conversation id)。Responses 路径以前靠 `x_grok_conv_id` 回退也能走到同一把钥匙;钉死之后,Chat Completions 的 `user` 字段、以及 recap / `/btw` 这类复用父会话前缀的旁路调用,都会共用同一个 key。
|
||
|
||
刻意不按 agent 加后缀:那样会把旁路调用设计上要蹭的前缀缓存拆开。
|
||
|
||
## 从源码构建
|
||
|
||
```sh
|
||
make setup # 装 Rust 1.94.0 + dotslash/protoc(幂等,可重跑)
|
||
make apply # 用 upstream.rev + patches/ 生成 work/
|
||
make build # 编出 work/target/debug/xai-grok-pager
|
||
make run # 编完直接开 TUI
|
||
```
|
||
|
||
`make setup` 会把工具链装到 `~/.cargo`,脚本自己把它加进 `PATH`。若要在交互 shell 里直接用 `cargo`:fish 执行 `source ~/.cargo/env.fish`,bash 执行 `source ~/.cargo/env`。
|
||
|
||
第一次启动会打开浏览器做官方登录,见上游的 [authentication guide](https://github.com/xai-org/grok-build/blob/main/crates/codegen/xai-grok-pager/docs/user-guide/02-authentication.md)。打好补丁之后,更完整的用户手册在 `work/crates/codegen/xai-grok-pager/docs/user-guide/`(`/rc` 写在 slash commands 那一页)。
|
||
|
||
日常开发循环、跟进上游、以及 `make` 全表见 [CONTRIBUTING.md](CONTRIBUTING.md)。
|
||
|
||
## 许可
|
||
|
||
上游代码为 Apache-2.0(见 `work/LICENSE`)。`patches/` 里的改动同样按 Apache-2.0 分发。
|