2026-04-11 22:32:43 +08:00
|
|
|
|
# hxclaw AI 行为指南
|
|
|
|
|
|
|
|
|
|
|
|
## 开发规范
|
|
|
|
|
|
|
|
|
|
|
|
### 设计原则
|
|
|
|
|
|
|
|
|
|
|
|
- **面向对象 + 设计模式**:所有功能拆分成模块,模块可复用
|
|
|
|
|
|
- **模块化**:每个功能独立成包,包内高内聚,包间低耦合
|
|
|
|
|
|
- **设计模式**:常用单例、工厂、策略模式
|
|
|
|
|
|
|
|
|
|
|
|
### 代码要求
|
|
|
|
|
|
|
|
|
|
|
|
- **注释**:全局使用中文注释,注释内容详细,说明意图和实现逻辑
|
|
|
|
|
|
- **测试**:所有代码需编写单元测试和功能测试,通过后才可交付
|
|
|
|
|
|
- **命名**:变量、函数、文件名使用英文,注释使用中文
|
|
|
|
|
|
|
|
|
|
|
|
### 交流规范
|
|
|
|
|
|
|
|
|
|
|
|
- **语言**:全程使用中文回答和思考
|
|
|
|
|
|
- **问题处理**:一个问题若超过3次尝试仍无法解决,立即停止,告诉用户遇到的问题,询问用户接下来怎么办
|
|
|
|
|
|
- **进度同步**:每次开始编写代码前,更新讨论记录和其他文档
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 项目背景
|
|
|
|
|
|
|
|
|
|
|
|
### 定位
|
|
|
|
|
|
|
|
|
|
|
|
- hxclaw 是 picoclaw 的 CLI 增强工具
|
|
|
|
|
|
- 提供流式输出和 Markdown 终端渲染
|
|
|
|
|
|
- 作为独立二进制,与 picoclaw 共存
|
|
|
|
|
|
|
|
|
|
|
|
### 技术栈
|
|
|
|
|
|
|
|
|
|
|
|
- 语言:Go 1.21+
|
|
|
|
|
|
- 依赖:通过 go.mod replace 复用 picoclaw
|
|
|
|
|
|
- 终端库:charmbracelet/lipgloss
|
|
|
|
|
|
- 测试:Go 标准测试框架
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 当前任务
|
|
|
|
|
|
|
|
|
|
|
|
### v0.1.0 目标
|
|
|
|
|
|
|
|
|
|
|
|
实现流式输出功能:
|
|
|
|
|
|
1. 创建 go.mod 配置依赖
|
|
|
|
|
|
2. 实现 main.go 入口
|
|
|
|
|
|
3. 实现流式 Provider 调用
|
|
|
|
|
|
4. 实时打印 token
|
|
|
|
|
|
5. 处理非流式 Provider 回退
|
2026-04-12 02:26:17 +08:00
|
|
|
|
6. Markdown 终端渲染(glamour)
|
2026-04-11 22:32:43 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-04-12 02:26:17 +08:00
|
|
|
|
## 实现进度
|
|
|
|
|
|
|
|
|
|
|
|
### v0.1.0 已完成功能
|
|
|
|
|
|
|
|
|
|
|
|
1. **流式输出**
|
|
|
|
|
|
- 实时打印 token
|
|
|
|
|
|
- Spinner 显示"思考中..."
|
|
|
|
|
|
- 第一个 token 到达时停止 spinner
|
|
|
|
|
|
|
|
|
|
|
|
2. **Markdown 渲染**
|
|
|
|
|
|
- 使用 glamour 库渲染 Markdown
|
|
|
|
|
|
- 支持多种主题(dark, light, dracula, tokyo-night 等)
|
|
|
|
|
|
- 通过 GLAMOUR_STYLE 环境变量配置主题
|
|
|
|
|
|
|
|
|
|
|
|
3. **重绘逻辑**
|
|
|
|
|
|
- 响应完成后尝试重绘
|
|
|
|
|
|
- 使用 termenv 库清除屏幕
|
|
|
|
|
|
- ⚠️ 存在轻微残留 bug(可接受)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 依赖管理
|
|
|
|
|
|
|
|
|
|
|
|
### Go 依赖
|
|
|
|
|
|
|
|
|
|
|
|
- `charm.land/glamour/v2` - Markdown 渲染
|
|
|
|
|
|
- `charm.land/lipgloss/v2` - 终端样式
|
|
|
|
|
|
- `charm.land/x/term` - 终端控制
|
|
|
|
|
|
- `github.com/muesli/termenv` - 终端环境工具
|
|
|
|
|
|
|
|
|
|
|
|
### 配置文件
|
|
|
|
|
|
|
|
|
|
|
|
- `cmd/hxclaw/main.go` - 主入口逻辑
|
|
|
|
|
|
- `cmd/hxclaw/internal/markdown.go` - Markdown 渲染器
|
|
|
|
|
|
- `cmd/hxclaw/internal/helpers.go` - 辅助函数
|
2026-04-11 22:32:43 +08:00
|
|
|
|
|
2026-04-12 02:26:17 +08:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 已知问题
|
|
|
|
|
|
|
|
|
|
|
|
1. **重绘残留**:某些情况下有轻微文本重复(可接受)
|
|
|
|
|
|
2. **终端兼容性**:termenv 在某些终端可能不完全工作
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 待优化
|
|
|
|
|
|
|
|
|
|
|
|
1. 优化重绘逻辑,解决残留问题
|
|
|
|
|
|
2. 添加更多主题支持
|
|
|
|
|
|
3. 添加命令-line 参数支持主题选择
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 注意事项
|
2026-04-11 22:32:43 +08:00
|
|
|
|
- 不要修改 picoclaw 源码
|
|
|
|
|
|
- 保持代码独立,便于后续版本同步
|
|
|
|
|
|
- 优先实现核心功能,再考虑增强功能
|
|
|
|
|
|
- 文档和代码同步更新
|