Ally - 我写的桌面 Agent 是怎么跑的
Ally 是一个本地优先的桌面 AI 编程助手,Go + Wails 写的,Windows / macOS / Linux 都有包,代码在 github.com/Bronya0/ally-agent,GPLv3。
下面写它的实现:主循环、工具定义、一批工具的调度、上下文压缩和前缀缓存、边界拦住哪些操作,最后是踩坑记录。
Ally 是一个本地优先的桌面 AI 编程助手,Go + Wails 写的,Windows / macOS / Linux 都有包,代码在 github.com/Bronya0/ally-agent,GPLv3。
下面写它的实现:主循环、工具定义、一批工具的调度、上下文压缩和前缀缓存、边界拦住哪些操作,最后是踩坑记录。
AgentGo 是一个基于 OpenClaw 架构设计的轻量级通用 Agent 框架,使用 Go 语言实现。它设计目标是领域通用、可靠稳定、简单易用、高度可扩展,可作为学习现代 Agent 架构的绝佳起点,也可直接用于生产环境中的智能任务自动化场景。
在 macOS 上实现动态壁纸一直是个技术挑战。市面上的方案要么功耗极高,要么实现复杂。我开发的 OnlyWallpaper 通过 GPU 硬件加速实现了一个高效、低功耗的视频壁纸解决方案,功耗仅 10-50mW,是传统方案的百分之一。
在 Windows 上实现动态壁纸需要与系统核心组件交互,包括桌面窗口管理、电源状态监控、注册表配置等。 于是我开发了OnlyWallpaper-Win,采用微服务架构思路,通过 CLI + 守护进程的分离设计,实现了一个稳定、低耗的 Windows 动态壁纸解决方案。
定时任务是一个常见的需求,例如定时清理数据、发送通知、执行备份等。Go 语言提供了多种方式来实现定时任务,网上的资料大多是github.com/robfig/cron,但这个库许多年不维护了,这里不推荐。
go-co-op/gocron 是一个功能强大且易于使用、维护积极的定时任务调度库。本文介绍使用 gocron/v2 实现高效的定时任务管理,并结合数据库记录任务状态。
最近用go的日志库,很多人用的zap,为了追求高性能。但是zap功能很少,缺少日志切分和滚动,导致经常在代码里集成一些三方切割库,反而导致代码交叉,影响性能。