Files
DEMO-AGENT/docs/详细设计/skill/长文本字段归纳Skill.md

84 lines
1.8 KiB
Markdown

# 长文本字段归纳Skill 设计
## 1. Skill 定位
`长文本字段归纳Skill` 负责对规则和表格无法稳定抽取的长文本字段进行证据限定后的 LLM 归纳。
英文实现标识建议使用 `LongTextFieldSummarizeSkill`
本 Skill 必须通过 LLM Provider 调用模型,并支持 Mock Provider。
## 2. 输入
```python
@dataclass
class LongTextFieldSummarizeInput:
documents: list[DocumentContent]
field_definitions: list[FieldDefinition]
enable_rag_context: bool = True
```
## 3. 输出
```python
@dataclass
class LongTextFieldSummarizeOutput:
candidates: list[FieldCandidate]
evidence_refs: list[EvidenceRef]
tool_calls: list[dict]
failed_fields: list[dict]
```
## 4. 处理字段
1. 检测靶标。
2. 适用范围 / 预期用途。
3. 性能指标。
4. 临床评价路径。
## 5. 核心方法
### 5.1 `run(input) -> LongTextFieldSummarizeOutput`
主入口方法。
### 5.2 `locate_field_context(document, field_definition) -> list[EvidenceChunk]`
通过 RAG 或关键词定位候选片段。
### 5.3 `build_llm_prompt(field_definition, chunks) -> str`
构造限定上下文提示词。
### 5.4 `call_provider(prompt, output_schema) -> dict`
调用 LLM Provider。
### 5.5 `validate_output(output) -> FieldCandidate`
校验结构化输出。
## 6. 技术实现
使用技术:
1. RAG fallback / Chroma
2. LLM Provider
3. JSON schema
4. Mock Provider
## 7. 异常处理
1. 找不到候选片段:字段标记待人工复核。
2. Provider 不可用:跳过 LLM。
3. 输出 JSON 非法:丢弃结果。
4. 输出没有来源片段:标记低可信。
## 8. 测试要点
1. Mock Provider 可返回固定字段。
2. 找不到上下文时不会编造字段。
3. 非法 JSON 被拦截。
4. LLM 关闭时主流程仍可完成。