Releases: lzx1413/clawseed
release v0.2.0
ClawSeed v0.2.0 Release Notes
相比 v0.1.2,v0.2.0 带来了 Skill 技能系统、记忆整合/卫生/快照/冲突检测、Android 定时后台任务、Soul 人格自定义、Gateway 共享组件架构,以及多项 Android UI 增强和 Bug 修复。
New Features
Skill 技能系统
完整的工作流编排系统,将多步骤流程与原子工具执行分离。技能通过 Skill 工具按需加载,声明所需权限,活跃技能内容持久化到系统提示以抵抗上下文压缩。支持多根目录发现(workspace / user / extra_roots)、YAML frontmatter 格式、POST /api/skills/reload 热重载。
记忆系统增强
- 整合 (Consolidation) — 每次 agent turn 后启发式两阶段提取:自动创建 Daily 历史 + 重要性评分 ≥ 0.6 时晋升 Core 记忆
- 卫生 (Hygiene) — 12 小时节奏控制的定期清理,修剪过期 Conversation/Daily 条目(Core 记忆永不修剪)
- 快照 (Snapshot) — 导出 Core 记忆到
MEMORY_SNAPSHOT.md,冷启动时若brain.db缺失可自动水合恢复 - 冲突检测 (Conflict) — Jaccard 相似度检测矛盾的 Core 条目,标记
[SUPERSEDED by 'newer_key'] - 新增配置项:
hygiene_enabled、conversation_retention_days、snapshot_enabled、auto_hydrate、conflict_threshold
Gateway 共享组件架构
- Gateway 连接间共享
Provider/Memory/Observer(Arc<dyn>),避免每连接重复创建 HTTP 连接池和 SQLite 连接 - BuiltIn 工具实例跨连接共享(
Arc<[Arc<dyn Tool>]>),通过register_all_arc()注册到每连接注册表 - Agent.provider 从
Box改为Arc,新增shared_provider()构建方法 PUT /api/config返回警告:provider/model/memory 变更需重启网关生效
Android 定时后台任务
基于 AlarmManager 的定时任务,支持三种重复模式(单次/每天/工作日):
- 精确闹钟调度,Android 12+ 自动回退到非精确闹钟
BootReceiver设备重启后自动重新调度所有任务- 独立 WebSocket 会话执行任务,避免与聊天 UI 冲突
- 高优先级通知(声音/振动),点击跳转对应会话
- 支持任务编辑(名称、消息、时间、重复模式)
Soul 人格自定义
- 新增
GET /api/personality和PUT /api/personality端点,读写工作区人格文件(SOUL.md 等,白名单验证) - Android 设置页内置 Soul 编辑器,保存后 Gateway 自动重启
Android UI 增强
- 外观设置 — 浅色/深色/跟随系统主题 + OLED 纯黑模式
- 重新生成 — 一键重新生成最后一条助手响应(WebSocket
regenerate消息类型),支持自由文本选择 - 可折叠设置区 — LLM、搜索引擎、Soul、工具、外观、开发者等区域可折叠
- 技能刷新 — 设置页 "刷新技能" 按钮,调用
/api/skills/reload
Bug Fixes
- max_tokens 默认值 — 从 4096 提升到 128K(131,072),解决定时任务和长响应被截断的问题
- 工具调用修复 —
Provider::chat()现在正确调用chat_with_tools()以支持原生工具调用 - 配置保存热更新 — 修复
PUT /api/config时allowed_tools/denied_tools/skill_index的 borrow-after-move 问题;skills 禁用时自动拒绝 Skill 工具 - Gateway 超时 — Android 端从 30s 提升到 300s,适应长时间 agent 执行
- 设置页交互 — 整行可点击展开/折叠,修复仅图标可点击的问题
Architecture Changes
- 移除 TypeId 能力注入系统 — 零消费者的死代码(ContextProvider、ctx.get::()、ToolContextExt),所有工具使用构造函数注入
- Agent provider 类型 —
Box<dyn Provider>→Arc<dyn Provider> - 新增
from_config_with_shared_components()构造函数 — Gateway 使用共享组件,CLI/嵌入式仍用from_config_with_registry()
New API Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /api/skills/reload |
从磁盘重新加载技能索引,无需重启 |
| GET | /api/personality |
读取工作区人格文件 |
| PUT | /api/personality |
写入人格文件(白名单验证) |
New WebSocket Message Types
| Direction | Type | Description |
|---|---|---|
| Client → Server | regenerate |
重新生成最后一条助手响应 |
New Android Permissions
| Permission | Purpose |
|---|---|
SCHEDULE_EXACT_ALARM |
精确定时闹钟(Android 12+,未授予时回退到非精确闹钟) |
RECEIVE_BOOT_COMPLETED |
设备重启后重新调度定时任务 |
New Config Options
[memory]
hygiene_enabled = true # 启用定期清理(默认 true)
conversation_retention_days = 30 # Conversation/Daily 修剪保留天数(默认 30)
snapshot_enabled = false # 导出 Core 记忆到 MEMORY_SNAPSHOT.md(默认 false)
auto_hydrate = true # brain.db 缺失时从快照重新索引(默认 true)
conflict_threshold = 0.6 # 冲突检测 Jaccard 阈值(默认 0.6)
[skills]
enabled = true # 启用技能系统(默认 true)
max_active = 5 # 最大并发活跃技能数(默认 5)
excluded = [] # 排除的技能
extra_roots = [] # 额外技能根目录Version Numbers
| Component | v0.1.2 | v0.2.0 |
|---|---|---|
| Rust workspace | 0.1.2 | 0.2.0 |
| Android SDK | 0.1.0 | 0.2.0 |
| Android app | 1.5 (versionCode 3) | 1.6 (versionCode 4) |
Full Changelog: v0.1.2...v0.2.0
support CETP(ClawSeed External Tool Protocol)
add CETP(ClawSeed External Tool Protocol)support
Full Changelog: v0.1.1...v0.1.2
update andorid sdk and demo app
What's New in v0.1.1
Features
- Tavily Web Search — Built-in Tavily API integration as a new web search provider (alongside DuckDuckGo, Brave,
SearXNG, Bing). Tavily is purpose-built for AI agents with structured JSON results and 1,000 free calls/month.
Configure via tavily_api_key in [web_search] or CLAWSEED_WEB_SEARCH_TAVILY_API_KEY env var. - Android Search Engine Selector — Settings UI now includes a search engine card with Bing/Tavily dropdown.
Selecting Tavily shows an API key input field with password toggle and a link to get a free key. - Auto-generate Session Title — Gateway automatically generates a session title from the first Q&A turn via LLM,
displayed in the Android app's top bar and drawer. - Android SDK Restructuring — Refactored the monolithic lib module into a three-tier SDK: sdk:core (session, chat
client, tool registry), sdk:android (ClawSeedAndroid singleton, SessionManager, ChatAccumulator), sdk:embedded
(gateway process, config, foreground service). - Parallel Tool Execution — Agent now executes independent tool calls concurrently instead of sequentially.
- Remote Tools in Settings — Android settings and /api/tools API now display remote tools (registered via
WebSocket) with source type labels (Built-in / Remote / MCP). - WebSocket Protocol Versioning — Added protocol version negotiation on WebSocket connect.
Bug Fixes
- Abort Button Not Working — Gateway now handles {"type":"abort"} WebSocket messages, cancelling the in-flight turn
via CancellationToken. Android abort uses WebSocket first (low latency) with REST fallback. - Session Title Lost on Rotation — Screen rotation no longer resets session state. switchToSession skips
reconnection when already connected to the same session. - Git Repo Path — Fixed incorrect repository URL in README.
Documentation
- Android README Overhaul — Updated both English and Chinese READMEs to reflect SDK restructuring, new features
(search engine config, gateway status, developer options), and corrected dependencies (kotlinx-serialization
instead of Gson).
Configuration
New [web_search] options:
[web_search]
enabled = true
provider = "tavily"
tavily_api_key = "tvly-..." # new field
New environment variable: CLAWSEED_WEB_SEARCH_TAVILY_API_KEY
Full Changelog: v0.1.0...v0.1.1
init clawseed sdk and android app
Chat
- Real-time streaming via WebSocket
- Full message history per session
- Extended Thinking display (collapsible)
- Debug mode showing full prompt and token estimate
Session Management
- Create / resume / rename / delete sessions
- Auto-naming from first user message
- Session history in navigation drawer
Tool Calling
- On-device tools (registered via WebSocket):
device_info— device model, manufacturer, Android versionget_location— GPS location (WGS84→GCJ-02) + reverse geocoding
- Gateway built-in tools: web_fetch, http_request, web_search, etc.
LLM Configuration
- 11 provider presets (DeepSeek, Qwen, Moonshot, GLM, Doubao, Baidu, OpenAI, Anthropic, OpenRouter, Ollama, Custom)
- Model list fetching (direct or via gateway proxy)
- Thinking Mode toggle
- Form editing or raw TOML editing
Markdown Rendering
- Headings (h1-h6), code blocks (with language label + copy button), lists, tables
- Inline formatting: bold, italic,
monospace
Full Changelog: https://github.com/lzx1413/clawseed/commits/v0.1.0