v0.2.8
Pre-releasev0.2.8
本 Release 作为 Development Techology Preview Level 1 的一部分发布。
安装
# Linux
curl -sSL https://alk.cxykevin.top/i.sh | bash# Windows
irm https://alk.cxykevin.top/i.ps1 | iex更新日志
Features
- PTY 命令执行: 重构命令执行系统,Linux 和 Unix 集成 PTY 终端,Windows ConPTY 由于在服务模式下无法使用故退回至管道,提升命令执行体验和兼容性
- 会话断连延迟释放: 新增 SessionTimeout 配置(默认 60s),连接断开后延迟释放会话资源;支持后台运行模式(
/background on),断连期间仍可保持活跃处理 - 配置热加载 RPC: 新增
alk.cxykevin.top/config/get和config/setRPC 方法,支持运行时读写全局配置,变更自动广播到所有会话 - 命令重命名:
/reasoning命令重命名为/effort,语义更清晰,支持 unset 参数提升供应商兼容性
Stability & Performance
- 数据竞争修复: 全面修复多处数据竞争问题,包括 session Context 指针包装、timer callback 竞态、goroutine 泄漏
- 优雅关闭: 实现
signal.NotifyContext信号处理(SIGTERM/SIGINT/SIGQUIT)、显式 HTTP Server Shutdown、连接 semaphore 并发控制 - Panic→Error 转换: 将 prompts/utils、HookTool、SubAgent consumer 等多处的 panic 路径转为 error 返回,提升系统健壮性
Testing
- 测试覆盖率大幅提升: 80+ 新增测试函数,涉及 14 个包,总计 2683 行新增测试代码
provider/request/agents: 85.6%(新增 17 个测试)storage/structs: 94.1%mock/openai: 38.7% → 72.6%ui/loop: 22.3% → 51.4%(启用 mock 服务器集成测试)server/actions: 40.9% → 59.6%terminal/pty: 39.7% → 64.7%
- CI 增强: GitHub Actions 新增
go vet和go test -race步骤 - 测试基础设施: mock OpenAI 服务新增流式响应、thinking 标签、边缘用例测试
Chore
- 调整系统提示词中的身份与动机设定
- 提示词加入 Co-Authored-By 署名
- ChanCall 缓冲区优化 64 → 4096,增加 recover 保护
本次更新由
Deepseek V4 Flash完成全程编写。使用 Claude Code 进行。期待 alkaid0 能早日完成自举!
从 v0.1.0 的迁移指南
参考下面的配置补齐 Server 字段即可。
程序不再内置客户端,需要自行安装任意 ACP 客户端(如 multicoder,ACP UI 等)使用!配置请参考下方 客户端 内说明配置。
在启动客户端前,你需要预先启动服务器(不带任何参数启动)!
配置
路径
# 从二进制文件启动
~/.config/alkaid0/config.json
# Linux 软件包安装版本
/etc/alkaid0/config.json
# Windows 软件包安装版本
C:\ProgramData\alkaid0\config.json{
"$schema": "https://raw.githubusercontent.com/cxykevin/alkaid0/refs/heads/main/docs/schemas/config.json",
"Version": 1,
"Model": {
"ProviderURL": "https://openrouter.com/api/v1(这里暂时没有用)",
"ProviderKey": "sk-or-xxx(这里暂时没有用)",
"DefaultModelID": 1,
"Models": {
"1": {
"ModelName": "模型名",
"ModelID": "模型ID",
"ProviderURL": "https://模型供应商/v1",
"ProviderKey": "sk-模型密钥",
"EnableThinking": true,
"CompressSize": 128000,
"ProviderSpecificConfig": {
"EnableDeepseekThinking": false,
"EnableReasoningEffort": true,
"EnableTopP": false,
"EnableTopK": false,
"EnableTemperature": false
}
}
}
},
"Agent": {
"Agents": {
"frontend": {
"AgentName": "前端工程",
"AgentDescription": "前端工程Agent",
"AgentPrompt": "你是一个前端工程师,请根据用户的需求,提供前端工程解决方案。",
"AgentModel": 1,
"AutoApprove": "",
"AutoReject": ""
}
},
"GlobalPrompt": "始终使用中文回答",
"SummaryModel": 1,
"MaxCallCount": 50,
"AutoApprove": "",
"AutoReject": ""
},
"ThemeID": 0,
"Server": {
"Key": "<你的 webcsocket key>",
"Path": "/acp",
"Host": "127.0.0.1",
"Port": 7433,
"DisableStdioServer": false
}
}客户端
配置完上述 json 后直接启动主程序,服务端会在 ws://<host>:<port>/<path> 开启一个 websocket 服务。此时服务端同时会启动一个标准的 stdio 服务器便于调试。
服务端使用 Query 参照认证。在 Query 参数中添加 key=<key> 即可。如果没有 Query 参数选项,则可以在 Path 中设置 /acp?k=<key>。
支持 Websocket 桥接的客户端可以直接链接。只支持 stdio 的客户端可以使用提供的 helper 链接。注意:由于 ACP 规范并未明确标注 websocket 的具体连接协议内容,因此其存在一定兼容性问题。
目前 helper 只支持
ws,不支持wss。
可以通过 ./可执行文件 acp 启动服务端内置 helper。如果你需要轻量化部署并链接到远程,则可以使用单独的 helper 可执行文件并不带任何参数启动。如果你使用 go install 安装,则服务器绑定到了 alkaid0,单独的 helper 可以使用 alk 命令。
helper 会自动读取本机的 ~/.config/alkaid0/config.json 或系统级配置文件 /etc/alkaid0/config.json (linux) 和 C:\ProgramData\alkaid0\config.json (windows) 并自动链接,一般本机无需再次手动配置 key。
如果你需要链接到远程或自动链接无效,可以使用以下参数:
-config配置文件路径-host服务器的 host-port服务器的 port-path服务器的 path-key服务器配置的 websocket key
如果你无法链接请检查是否在服务端和客户端都设置了
Key。服务端空key启动会自动生成一个随机秘钥并写入配置。如果内置的 stdio 导致服务器自动退出或其它问题,则可在
config.json中设置DisableStdioServer为true以禁用。
不要在用户目录或者根目录运行 Alkaid!
平台支持
Linux(amd64,arm64) (binary,deb,rpm,apk,archlinux)Windows(amd64) (binary,msix)MacOS(实验性amd64,实验性arm64)(沙盒除外) (binary)
本 Release 仅供测试,不代表任何效果!不要在生产环境使用!
--- alkaid0 启航 ---
日志位于配置文件同目录 log.log,经过简单脱敏,会包含您的聊天记录!提交前请手动审计!