Files
HxClaw/agents.md

155 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 回退
6. Markdown 终端渲染glamour
---
## 实现进度
### v0.1.0 已完成功能
1. **流式输出(新流程)**
- 等待 AI 返回完整响应
- Markdown 转译
- 模拟流式输出(从配置读取速度)
- 效果更好,无残留问题
2. **Markdown 渲染**
- 使用 glamour 库渲染 Markdown
- 支持多种主题dark, light, dracula, tokyo-night 等)
- 通过 project.config.yml 配置主题
3. **项目配置**
- 通过 project.config.yml 统一管理配置项
- 支持流式速度、渲染主题、Logo 等配置
---
## 项目配置
### project.config.yml
项目配置文件位于项目根目录:
```yaml
# hxclaw 项目配置文件
# 项目级配置,会覆盖默认配置但被用户配置覆盖
# 模拟流式输出配置
streaming:
line_delay_ms: 1000 # 每行输出后的延迟(毫秒)
last_line_delay_ms: 600 # 最后一行延迟(毫秒)
# Markdown 渲染配置
markdown:
theme: dark # 渲染主题dark, light, dracula, tokyo-night 等
line_width: 0 # 自动换行宽度0=自动,>0=固定宽度,-1=禁用)
# UI 配置
ui:
logo: "🦐" # Logo
user_icon: "👀 " # 用户输入提示符
```
配置加载优先级(从高到低):
1. 用户配置 `~/.config/hxclaw/config.yml`
2. 环境变量 `HXCLAW_CONFIG` 指定路径
3. 项目根目录 `project.config.yml`
4. 代码中的默认值
---
## 依赖管理
### Go 依赖
- `charm.land/glamour/v2` - Markdown 渲染
- `charm.land/lipgloss/v2` - 终端样式
- `charm.land/x/term` - 终端控制
- `github.com/muesli/termenv` - 终端环境工具
- `gopkg.in/yaml.v3` - 配置文件解析
### 配置文件
- `cmd/hxclaw/main.go` - 主入口逻辑
- `cmd/hxclaw/internal/config.go` - 配置加载(支持用户配置和项目配置合并)
- `cmd/hxclaw/internal/markdown.go` - Markdown 渲染器
- `cmd/hxclaw/internal/helpers.go` - 辅助函数Readline、SimpleReader
- `cmd/hxclaw/internal/spinner.go` - 加载动画组件
- `cmd/hxclaw/internal/markdown_test.go` - Markdown 测试
---
## 已解决
1. ~~**重绘残留**:某些情况下有轻微文本重复~~ - 已通过新流程解决
---
## 构建命令
picoclaw GitHub地址https://github.com/sipeed/picoclaw.git
```bash
go build -o hxclaw ./cmd/hxclaw
```
生成的可执行文件位于项目根目录。
---
## 注意事项
- 不要修改 picoclaw 源码
- 保持代码独立,便于后续版本同步
- 优先实现核心功能,再考虑增强功能
- 文档和代码同步更新