feat: Agent 思考模式前端可控、子代理全链路持久化、权限系统、工具 ID 追踪体系、前端面板与文档架构重构
- AgentConfig/LlmClient 新增 enable_thinking 参数,前端 SSE 请求传递 thinking 开关,仅千问/DashScope 时启用 - 完善权限系统,支持细粒度的权限控制和用户权限申请 - delegate_research 工具重命名为 subagent,SubAgentTool/SubAgentRunner 重构 - 子代理消息(system/user/assistant/tool)持久化到 agent_messages 表,带 agent_name 标识 - 子代理活动日志(工具调用列表+思考摘要)注入返回结果,Hooks 获得正确 session_id 和 subagent_name - LLM 工具调用 ID 回退生成 UUID(llm.rs),ToolCall/ToolResult SSE 事件增加 id/tool_call_id 双字段 - ToolContext 扩展 session_id/sse_tx/enable_thinking 字段,executor 统一注入而非构造函数传参 - agent_messages 新增 metadata+raw_json 列,agent_sessions 暴露 summary 字段 - 删除文件级 transcript 快照(compact.rs),改为依赖 DB 持久化 - ResearchAgentPanel 重写:TimelineItem 类型替代 StreamStep,支持会话历史回放 - 新增 AgentMetricsPanel/AskUserQuestionCard/AuditLogViewer 三个前端组件,types.ts 完整类型定义 - docs/architecture/ 分层重组:概览/核心模块/核心工作流 + agent/ 子目录 11 篇专题文档 - docs/api.md 补充 RAG/Target/Agent 接口,docs/development.md 新建开发指南 - .env.example 完全重写,补充 FALLBACK_MODEL 等变量说明
This commit is contained in:
@@ -85,15 +85,14 @@ cp .env.example .env
|
||||
|
||||
## 3. 技术文档结构 (Documentation Directory)
|
||||
|
||||
详细的技术和部署设计文档已集中整理至 `docs/` 目录:
|
||||
|
||||
- 🏗️ **[架构设计](docs/architecture.md)**:包含系统宏观流程图与序列图。
|
||||
- 🌐 **[API 接口规范](docs/api.md)**:后端 Axum 路由及 HTTP 接口格式。
|
||||
- 🗄️ **[数据库设计](docs/database.md)**:SQLite 表结构、ER 图与索引优化。
|
||||
- 🎨 **[视觉与交互设计](docs/design.md)**:高对比度浅色中文控制台、自研 Canvas 图谱引擎说明。
|
||||
- 🛠️ **[排障指南](docs/troubleshooting.md)**:人机校验、解析失败等常见问题解法。
|
||||
- 🚀 **[编译与部署指南](docs/deployment.md)**:单执行文件打包与发布流程。
|
||||
- 🤝 **[参与贡献指南](docs/contributing.md)**:开发规范及单元测试。
|
||||
- 🏗️ **[架构设计](docs/architecture.md)** — 系统宏观架构、Agent 子系统、Mermaid 流程图
|
||||
- 🌐 **[API 接口规范](docs/api.md)** — 全部 Axum REST 端点与 SSE 事件
|
||||
- 🗄️ **[数据库设计](docs/database.md)** — SQLite 表结构、ER 图、迁移历史
|
||||
- 🛠️ **[开发指南](docs/development.md)** — 构建/测试/环境变量/项目结构
|
||||
- 🎨 **[视觉设计](docs/design.md)** — UI 设计系统与交互体验
|
||||
- 🚀 **[部署指南](docs/deployment.md)** — 生产构建与发布
|
||||
- 🔧 **[排障指南](docs/troubleshooting.md)** — 常见问题与解决方案
|
||||
- 🤝 **[参与贡献](docs/contributing.md)** — 代码规范与测试要求
|
||||
|
||||
---
|
||||
|
||||
@@ -102,50 +101,38 @@ cp .env.example .env
|
||||
```
|
||||
AstroResearch/
|
||||
├── src/
|
||||
│ ├── main.rs # Axum 服务入口:路由注册、中间件、静态资源托管
|
||||
│ ├── lib.rs # 库入口:Config 配置结构体与环境变量加载
|
||||
│ ├── api/ # API 层(模块化拆分)
|
||||
│ │ ├── mod.rs # AppState / StandardPaper 定义 + handlers 兼容命名空间
|
||||
│ │ ├── helpers.rs # 共享工具函数:格式转换、数据库读写、路径校验
|
||||
│ │ ├── papers.rs # 文献相关:检索、下载、上传、解析、翻译、引文、导出
|
||||
│ │ ├── notes.rs # 笔记 CRUD:创建、查询、删除
|
||||
│ │ └── sync.rs # 批量同步:元数据同步、资源同步、查询管理
|
||||
│ ├── bin/
|
||||
│ │ └── health_check.rs # 独立二进制:馆藏健康度诊断与修复工具
|
||||
│ ├── clients/
|
||||
│ │ ├── ads.rs # NASA ADS API 客户端
|
||||
│ │ ├── arxiv.rs # arXiv Atom XML API 客户端
|
||||
│ │ └── qiniu.rs # 七牛云对象存储客户端
|
||||
│ └── services/
|
||||
│ ├── batch/ # 批量同步引擎(模块化拆分)
|
||||
│ │ ├── mod.rs # 公共导出
|
||||
│ │ ├── meta.rs # 元数据大批量采集 (MetaSync)
|
||||
│ │ └── asset.rs # 物理资源批量处理 (AssetSync)
|
||||
│ ├── download.rs # 文献下载器:反爬伪装、多级回退、错误记录
|
||||
│ ├── parser.rs # HTML/PDF → Markdown 解析器
|
||||
│ ├── translation.rs # LLM 翻译器 + Trie 词典
|
||||
│ ├── query_parser.rs # 高级检索语法解析
|
||||
│ └── logging.rs # 日志系统:控制台美化 + 滚动文件
|
||||
├── dashboard/
|
||||
│ └── src/
|
||||
│ ├── App.tsx # 全局状态管理与布局
|
||||
│ ├── types.ts # TypeScript 类型定义
|
||||
│ ├── components/
|
||||
│ │ ├── CitationGalaxyCanvas.tsx # Canvas 力导向引文星系图
|
||||
│ │ └── CustomSelect.tsx # 可复用下拉选择组件
|
||||
│ └── features/
|
||||
│ ├── search/SearchPanel.tsx # 跨源检索面板
|
||||
│ ├── library/LibraryPanel.tsx # 馆藏管理面板
|
||||
│ ├── reader/ReaderPanel.tsx # 双语对照阅读器
|
||||
│ ├── citation/CitationPanel.tsx # 引文图谱面板
|
||||
│ ├── sync/SyncPanel.tsx # 批量同步控制台
|
||||
│ └── settings/SettingsPanel.tsx # 系统设置
|
||||
├── migrations/ # SQLite 数据库迁移脚本
|
||||
├── library/ # 本地文献物理存储目录
|
||||
│ ├── PDF/ # 下载的 PDF 文件
|
||||
│ ├── HTML/ # 下载的 HTML 文件
|
||||
│ ├── Markdown/ # 解析后的 Markdown 文件
|
||||
│ └── Translation/ # 翻译后的中文 Markdown 文件
|
||||
├── docs/ # 技术文档
|
||||
│ ├── main.rs # Axum 服务入口:路由、中间件、静态资源托管
|
||||
│ ├── lib.rs # Config 配置加载
|
||||
│ ├── api/ # HTTP handlers + AppState
|
||||
│ │ ├── agent.rs # SSE 智能体对话、会话管理、指标、审计
|
||||
│ │ ├── papers.rs # 文献检索/下载/解析/翻译/引文/导出
|
||||
│ │ ├── notes.rs # 笔记 CRUD
|
||||
│ │ ├── sync.rs # 批量同步
|
||||
│ │ ├── targets.rs # 天体目标识别
|
||||
│ │ └── helpers.rs # 共享工具函数
|
||||
│ ├── agent/ # ReAct 智能体引擎 (参考 Claude Code 分层设计)
|
||||
│ │ ├── runtime/ # ReAct 循环、流式执行、Token 管理、权限、熔断
|
||||
│ │ ├── tools/ # 工具系统 (filesystem/ astro/ memory/ team/)
|
||||
│ │ ├── compact/ # 三层上下文压缩
|
||||
│ │ ├── memory/ # 项目记忆管理 (提取/去重/衰减/保活/护栏)
|
||||
│ │ ├── team/ # 多 Agent 团队协作
|
||||
│ │ ├── hooks.rs # 生命周期事件系统
|
||||
│ │ ├── skills.rs # 技能注册表 (热加载)
|
||||
│ │ ├── subagent.rs # 上下文隔离子代理
|
||||
│ │ └── terminal.rs # 循环终止信号
|
||||
│ ├── clients/ # 外部 API 客户端 (ADS, arXiv, LLM, Qiniu)
|
||||
│ ├── services/ # 业务逻辑
|
||||
│ │ ├── parser/ # HTML/PDF → Markdown 解析器 (A&A, IOP, ar5iv, MinerU)
|
||||
│ │ ├── batch/ # 批量同步引擎
|
||||
│ │ ├── download.rs # 文献下载器 (反爬伪装、多级回退)
|
||||
│ │ ├── translation.rs # LLM 翻译 + Trie 天文词典
|
||||
│ │ └── rag.rs # 向量检索增强生成
|
||||
│ └── bin/ # 独立二进制 (cli, health_check, reparse)
|
||||
├── dashboard/ # React 19 + Vite + TypeScript 前端
|
||||
│ └── src/features/ # search/ library/ reader/ citation/ agent/ sync/ settings/
|
||||
├── skills/ # Agent Skills (Markdown 知识模块)
|
||||
├── migrations/ # SQLite 迁移脚本
|
||||
├── library/ # 本地文献存储 (PDF/HTML/Markdown/Translation)
|
||||
├── docs/ # 技术文档 (架构/API/数据库/开发/部署/排障)
|
||||
└── dictionary.txt # 天文学双语名词词典
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user