Files
HxClaw/agents.md
titor f85092175e feat: 添加 tokens 统计和耗时显示功能
- 添加进程级别累计 CompletionTokens 统计
- 显示此次消耗 tokens 和耗时
- 显示累计 tokens(hxclaw 进程级别)
- 使用 lipgloss 样式(icon #ffcc80, text #5c7a9a)
- 更新 AGENTS.md 构建说明
2026-04-12 03:04:54 +08:00

2.8 KiB
Raw Permalink Blame History

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. 流式输出

    • 实时打印 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 - 辅助函数

已知问题

  1. 重绘残留:某些情况下有轻微文本重复(可接受)
  2. 终端兼容性termenv 在某些终端可能不完全工作

待优化

  1. 优化重绘逻辑,解决残留问题
  2. 添加更多主题支持
  3. 添加命令-line 参数支持主题选择

构建命令

go build -o hxclaw ./cmd/hxclaw

生成的可执行文件位于项目根目录。


注意事项

  • 不要修改 picoclaw 源码
  • 保持代码独立,便于后续版本同步
  • 优先实现核心功能,再考虑增强功能
  • 文档和代码同步更新