docs: v0.2.0-rc.1 CHANGELOG + 版本号 + README 示例列表
- CHANGELOG.md 新增 [0.2.0-rc.1] 条目(Added/Changed/Non-exhaustive/ Deprecated/Fixed/Migration Guide 六节) - Cargo.toml version: 0.1.0 → 0.2.0-rc.1 - README 示例列表: 7 → 10(新增 quick_start / end_to_end / simple_visit),依赖版本 0.1 → 0.2 验收: 人工 review + git diff 确认版本号与示例数对齐。
This commit is contained in:
@@ -2,6 +2,67 @@
|
||||
|
||||
本项目所有重要变更均记录于此文件。格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/)。
|
||||
|
||||
## [0.2.0-rc.1] - 2026-07-05
|
||||
|
||||
v0.2.0 候选发布。Phase 5-7 三大 P0 全部交付完成,API 稳定性扫尾,新增 2 个面向新用户的集成示例。
|
||||
|
||||
### Added
|
||||
|
||||
**Phase 5 — 热身准备**
|
||||
- `ProviderConfig::from_env(prefix)`:从 `{prefix}_BASE_URL` / `{prefix}_API_KEY` / `{prefix}_MODEL` / `{prefix}_TIMEOUT_SECS` / `{prefix}_MAX_RETRIES` 环境变量构造配置
|
||||
- `ProviderConfig::timeout_secs` / `max_retries` 字段(默认 30 / 3)
|
||||
- `OllamaProvider`:本地推理 Provider(OpenAI-compatible,`http://localhost:11434/v1` 默认端点)
|
||||
- `ProviderType::Ollama` 变体 + `FromStr` 解析
|
||||
|
||||
**Phase 6 — ToolDef IR 正式化**
|
||||
- `ToolDef` 结构体(name / description / parameters)替代已废弃的 `OpenaiToolDefinition`
|
||||
- `MessageRequest.tools` 切换为 `Vec<ToolDef>`
|
||||
- `OpenaiToolDefinition` 降级为 `#[doc(hidden)]`,仅供 OpenAI 适配层内部消费
|
||||
|
||||
**Phase 7 — SqliteStore 持久化**
|
||||
- `SqliteStore`:`MemoryStore` 的 SQLite 后端实现,基于 `rusqlite 0.32` bundled
|
||||
- WAL 模式 + `synchronous=NORMAL` + `busy_timeout=5s` 兼顾崩溃安全与吞吐
|
||||
- `Arc<Mutex<Connection>>` + `spawn_blocking` 卸载 IO;10×10 并发写入无 race
|
||||
- `MemoryStore::save / get / delete / list` CRUD + prefix / since / offset+limit 过滤
|
||||
- 进程重启数据不丢的 round-trip 验证
|
||||
|
||||
**Phase 8 — MVP 集成出口**
|
||||
- `examples/quick_start`:30 行最小可运行示例(MockProvider + EchoTool + submit_turn)
|
||||
- `examples/end_to_end`:3 工具 + 3 轮对话 + SqliteStore 持久化跨连接验证
|
||||
|
||||
### Changed
|
||||
|
||||
- **API 稳定性护栏**:14 个公开枚举标记 `#[non_exhaustive]`,覆盖 P0 核心 IR(`Message` / `ContentBlock` / `ContentBlockType` / `StreamEvent` / `HookEvent`)、P0 Error(`AgentError` / `LlmError` / `ToolError` / `MemoryError` / `PromptError`)、P1 其他(`MemoryStrategy` / `StepStatus` / `ToolChoice` / `ResponseFormat`)
|
||||
- **`StepStatus::Completed` 字段类型**:从废弃的 `ChatResponse` 切换为 IR 层 `MessageResponse`(同时清理 `task_agent_demo.rs` 的 `ChatResponse` / `OpenaiChatMessage` / `FinishReason` 三处废弃类型引用)
|
||||
|
||||
### Non-exhaustive 清单
|
||||
|
||||
为防止未来新增变体时下游 exhaustive match 静默失效,14 个枚举追加 `#[non_exhaustive]`:
|
||||
|
||||
| 优先级 | 枚举 |
|
||||
|--------|------|
|
||||
| P0 核心 IR | `Message`, `ContentBlock`, `ContentBlockType`, `StreamEvent`, `HookEvent` |
|
||||
| P0 Error | `AgentError`, `LlmError`, `ToolError`, `MemoryError`, `PromptError` |
|
||||
| P1 其他 | `MemoryStrategy`, `StepStatus`, `ToolChoice`, `ResponseFormat` |
|
||||
|
||||
明确不加:内部 wire-format(`OpenaiChatMessage` 等)/ 语义已收敛(`Role` / `ServiceTier` / `Modality` / `ImageDetail` / `AudioFormat` / `StopSequence`)/ 使用面窄(`Permission` / `McpTransport` 等)。
|
||||
|
||||
### Deprecated
|
||||
|
||||
(继承自 0.1.0,无新增)`ChatResponse` / `ToolDefinition` 保持 `#[deprecated]` 标记。
|
||||
|
||||
### Fixed
|
||||
|
||||
- 修复 `StepStatus::Completed(ChatResponse)` 字段类型与 IR 体系不一致问题(已完成迁移)
|
||||
|
||||
### Migration Guide (v0.1 → v0.2.0-rc.1)
|
||||
|
||||
1. **枚举 match**:14 个 `#[non_exhaustive]` 枚举在 crate 外必须使用 `_ =>` 通配分支
|
||||
2. **`StepStatus::Completed`**:字段类型从 `ChatResponse` 切换为 `MessageResponse`,需做字段映射(参考 `docs/15-phase8-mvp-integration.md` §3.1.2)
|
||||
3. **`ToolDefinition` → `ToolDef`**:Phase 6 已彻底替换 `#[deprecated]` 别名,需全局重命名
|
||||
|
||||
---
|
||||
|
||||
## [0.1.0] - 2026-07-04
|
||||
|
||||
首个公开版本。涵盖 Phase 0-4c 的全部核心能力、Provider IR 重构、LlmCycle 简化,以及面向用户的 7 个离线示例。
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "agcore"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0-rc.1"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
|
||||
@@ -26,7 +26,7 @@ AG Core 不是 Agent 产品,而是 Agent 的**底层依赖库**:上层应用
|
||||
|
||||
```toml
|
||||
[dependencies]
|
||||
agcore = "0.1"
|
||||
agcore = "0.2"
|
||||
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
|
||||
```
|
||||
|
||||
@@ -110,10 +110,12 @@ let provider = create_provider(
|
||||
).expect("创建 Provider 失败");
|
||||
```
|
||||
|
||||
更多端到端示例见 [`examples/`](./examples/) 目录(共 7 个,全部可 `cargo run --example <name>`):
|
||||
更多端到端示例见 [`examples/`](./examples/) 目录(共 10 个,全部可 `cargo run --example <name>`):
|
||||
|
||||
| 示例 | 说明 |
|
||||
|------|------|
|
||||
| `quick_start` | **30 行最小示例**:MockProvider + EchoTool + submit_turn,新用户 5 分钟上手 |
|
||||
| `end_to_end` | **完整集成示例**:3 工具 + 3 轮对话 + SqliteStore 持久化跨连接验证 |
|
||||
| `agent_session_demo` | Agent + 会话 + SessionMemory 完整链路(MockProvider 离线) |
|
||||
| `custom_tool` | 自定义工具注册、单次 / 并行调用、权限检查 |
|
||||
| `prompt_composer` | 提示词模板与组合器(纯离线) |
|
||||
@@ -121,6 +123,7 @@ let provider = create_provider(
|
||||
| `conversation_memory_demo` | 对话记忆滑动窗口与隔离 |
|
||||
| `knowledge_search_demo` | 知识页面关键词检索 |
|
||||
| `streaming_events_demo` | LLM 流式响应事件消费(含错误路径) |
|
||||
| `simple_visit` | 真实 LLM 调用(OpenAI / Anthropic,设置 `OPENAI_*` / `ANTHROPIC_*` 环境变量) |
|
||||
|
||||
## 核心模块
|
||||
|
||||
|
||||
Reference in New Issue
Block a user