aget-framework/template-document-processor-AGET
GitHub: aget-framework/template-document-processor-AGET
AGET 框架的文档处理 Agent 模板,提供多 LLM provider 接入、格式保留、安全验证和批处理能力,帮助开发者快速搭建生产级文档自动化流程。
Stars: 1 | Forks: 0
# template-document-processor-AGET
**Template 版本**: 2.8.0
**AGET 框架**: v2.7.0
**类型**: AGET 模板(从 worker 模板特化而来)
**领域**: 文档处理
这是一个用于创建文档处理 agent 的生产就绪模板,内置 LLM pipeline、安全协议、格式保留机制,并支持多 provider。
**注意**: 此模板基于 `template-worker-aget` v2.7.0,具备专用的文档处理能力。模板版本 (v2.8.0) 记录了此模板特有的功能,独立于 AGET 框架版本 (v2.7.0) 进行维护。
## 概述
该模板为执行以下操作的 agent 提供了完整的基础:
- ✅ 使用 LLM 辅助(OpenAI, Anthropic, Google)处理文档
- ✅ 保留 DOCX 格式(Track Changes、批注、注释)
- ✅ 防止灾难性的格式丢失(L245 型故障)
- ✅ 支持带有验证 pipeline 的批处理操作
- ✅ 实施安全协议(注入防御、内容过滤)
- ✅ 提供 caching、指标和可观测性
- ✅ 支持针对大型文档的任务分解
- ✅ 支持回滚和版本管理
## 基于 L208
此模板基于 **L208: 文档处理 Agent 模板模式**,该模式分析了生产环境中的文档处理 agent,以提取常见的模式和最佳实践。
**节省时间**:减少 60-70% 的新 agent 设置时间(3-5 小时 → 1-2 小时)
## 快速开始
### 1. 克隆模板
```
gh repo clone aget-framework/template-document-processor-AGET my-document-agent
cd my-document-agent
```
### 2. 自定义配置
更新以下文件:
**`.aget/version.json`**:
```
{
"agent_name": "my-document-agent",
"domain": "your-domain"
}
```
**`configs/validation_rules.yaml`**:
```
max_file_size_mb: 10
allowed_extensions: [".pdf", ".docx", ".txt", ".md"]
required_validations:
- file_size
- file_format
- content_safety
```
**`configs/llm_providers.yaml`**:
```
providers:
openai:
api_key_env: OPENAI_API_KEY
enabled: true
anthropic:
api_key_env: ANTHROPIC_API_KEY
enabled: false
budget:
monthly_limit_usd: 300.0
```
### 3. 更新任务
编辑 `AGENTS.md` 以描述您的 agent 的特定用途和领域。
### 4. 运行测试
```
python3 -m pytest tests/ -v
```
### 5. 部署
```
git remote set-url origin
git add .
git commit -m "feat: Initialize from template-document-processor-AGET v2.7.0"
git push -u origin main
```
## 架构
### 核心组件
- **`src/ingestion/`** - 队列管理、验证、批处理
- **`src/processing/`** - LLM provider、模型路由、caching、schema 验证
- **`src/output/`** - 发布、版本管理、回滚
- **`src/security/`** - 输入清理、内容过滤、资源限制
- **`src/pipeline/`** - 任务分解、编排、指标
- **`src/wikitext/`** - 文档格式支持(docx、wikitext,可扩展以支持更多格式)
### 配置文件 (9 个 YAML)
- **`configs/validation_rules.yaml`** - 文档验证标准
- **`configs/llm_providers.yaml`** - LLM provider 配置
- **`configs/model_routing.yaml`** - 模型选择策略
- **`configs/models.yaml`** - 模型定义与能力
- **`configs/security_policy.yaml`** - 安全和内容过滤
- **`configs/processing_limits.yaml`** - 资源限制(token、时间、成本)
- **`configs/caching.yaml`** - 缓存设置和 TTL
- **`configs/metrics.yaml`** - 指标收集和告警
- **`configs/orchestration.yaml`** - 任务分解和 pipeline
## 定制点
### 1. 文档验证
为您的文档格式自定义 `configs/validation_rules.yaml`:
- 文件扩展名
- 大小限制
- 特定于格式的验证规则
### 2. LLM Provider
在 `configs/llm_providers.yaml` 中设置 provider:
- API 密钥(使用环境变量)
- 模型选择(成本与质量权衡)
- Fallback 链
- 预算限制
### 3. 安全
在 `configs/security_policy.yaml` 中配置安全策略:
- 输入清理规则
- 内容过滤(PII 检测)
- 资源限制(token、时间、成本)
### 4. 指标
在 `configs/metrics.yaml` 中定义指标:
- 准确率跟踪
- 延迟监控 (p50/p95/p99)
- 成本跟踪
- 告警阈值
## 协议
该模板在 `.aget/docs/protocols/` 中包含了 10 个操作协议:
1. **格式保留** - 防止 L245 型灾难性故障(Track Changes 丢失)
2. **队列管理** - 管理文档队列
3. **处理授权** - 审批关卡和 STOP 协议
4. **验证 Pipeline** - 前置/后置验证
5. **回滚** - 版本管理和恢复
6. **安全验证** - 输入/输出清理
7. **任务分解** - 将大型文档拆分为子任务
8. **模型路由** - 为每个任务选择最佳的 LLM
9. **缓存** - 缓存 LLM 响应以优化成本/速度
10. **指标收集** - 跟踪准确率/延迟/成本
每个协议都包含 bash 命令和代码示例。
**格式保留指南**:有关完整的使用指南,请参阅 `.aget/docs/FORMAT_PRESERVATION_GUIDE.md`。
## 脚本
该模板提供了 17 个操作工具(15 个脚本 + 2 个辅助工具):
**会话管理**:
- `session_protocol.py` - 唤醒/休眠/签退
- `queue_status.py` - 队列管理 CLI
- `health_check.py` - 系统诊断
**核心操作** (`scripts/`):
- `validate.py` - 文档验证 CLI
- `process.py` - 端到端处理 pipeline
- `queue_status.py` - 队列状态和管理
- `rollback.py` - 版本回滚操作
- `cache_setup.py` - 缓存初始化
- `metrics.py` - 指标显示和导出
**辅助操作** (`scripts/`):
- `health_check.py` - 系统健康诊断
- `security_check.py` - 安全验证
- `audit.py` - 审计跟踪查看器
- `model_router.py` - 模型路由建议
- `cache_stats.py` - 缓存统计
- `cache_clear.py` - 清除缓存
**专用工具** (`scripts/` 和 `.aget/tools/`):
- `session_protocol.py` - 会话生命周期(唤醒/休眠/签退)
- `checkpoint.py` - checkpoint 保存/加载/列表
- `task_planner.py` - 任务分解规划
- `.aget/tools/analyze_agent_fit.py` - 用例契合度分析
- `.aget/tools/instantiate_template.py` - 模板实例化助手
## 测试
该模板包含 30 个契约测试(100% 通过):
```
# 运行所有测试
python3 -m pytest tests/ -v
# 运行特定测试类别
python3 -m pytest tests/test_processing.py -v
```
测试覆盖率:
- **冒烟测试**(20 个测试):所有 20 个模块均经过测试
- **集成测试**(10 个测试):端到端工作流、脚本集成、契约验证
```
# 仅运行 smoke 测试
python3 tests/smoke_test.py
# 仅运行 integration 测试
python3 tests/test_integration.py
```
## 辅助工具
为模板用户提供了两个辅助工具:
**分析 Agent 契合度**:
```
# 检查用例是否适合此 template
python3 .aget/tools/analyze_agent_fit.py "Process legal contracts and extract structured data"
# Interactive 模式
python3 .aget/tools/analyze_agent_fit.py --interactive
```
**实例化模板**:
```
# 从 template 创建新 agent
python3 .aget/tools/instantiate_template.py invoice-processor ~/github/invoice-processor-AGET
# 验证实例化
python3 .aget/tools/instantiate_template.py --check ~/github/invoice-processor-AGET
```
## 版本历史
### 模板版本控制
此模板采用双重版本控制:
- **模板版本** (v2.8.0):模板特有的功能和增强
- **AGET 框架** (v2.7.0):框架合规版本
**模板 v2.8.0** 记录了添加到该专用模板中的格式保留功能。
**AGET v2.7.0** 表示符合 AGET 框架标准和基础 worker 模板。
**模板 v2.8.0** (2025-11-02) - AGET 框架 v2.7.0
- **格式保留框架**:防止 L245 型灾难性故障
- **新功能**:
- 针对 Track Changes、批注、注释的 OOXML 验证
- 往返验证(之前 → 处理 → 之后)
- 用于 pipeline 验证的多阶段 checkpoint 系统
- L245 故障检测(100% 防止格式丢失)
- **文档**:
- FORMAT_PRESERVING_DECISION_PROTOCOL.md(5 个问题的架构检查清单)
- FORMAT_PRESERVATION_GUIDE.md(实施指南)
- **测试覆盖率**:17 个测试,覆盖率 38%(已验证关键路径)
- **API**:带有简单和高级使用模式的 5 模块框架
**模板 v2.7.0** (2025-10-26) - AGET 框架 v2.7.0
- 初始模板发布
- 基于 L208 文档处理模式分析
- **20 个源模块**(Gate 2A:8 个,Gate 2B:7 个,Gate 2C:5 个)
- **9 个配置文件**(基于 YAML)
- **9 个操作协议**(已经过测试和验证)
- **3 个正式规范**(168 个 EARS 需求)
- **17 个操作工具**(15 个脚本 + 2 个辅助工具)
- **30 个契约测试**(20 个冒烟测试 + 10 个集成测试,100% 通过)
- 多 provider LLM 支持(OpenAI, Anthropic, Google)
- 安全协议(输入清理、内容过滤、资源限制)
- 文档格式支持(docx、wikitext,可扩展至其他格式)
## 支持
有关模板的问题或疑问:
- 问题跟踪器:https://github.com/aget-framework/aget/issues
- 模板仓库:https://github.com/aget-framework/template-document-processor-AGET
- AGET 框架:https://github.com/aget-framework
## 许可证
在 Apache License, Version 2.0 下授权。有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
版权所有 2025 AGET 框架贡献者
*由 AGET v2.7.0 生成*
标签:DLL 劫持, Petitpotam, 任务编排, 大语言模型, 安全规则引擎, 开发模板, 文档处理, 文档格式保留, 逆向工具