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

1.8 KiB

长文本字段归纳Skill 设计

1. Skill 定位

长文本字段归纳Skill 负责对规则和表格无法稳定抽取的长文本字段进行证据限定后的 LLM 归纳。

英文实现标识建议使用 LongTextFieldSummarizeSkill

本 Skill 必须通过 LLM Provider 调用模型,并支持 Mock Provider。

2. 输入

@dataclass
class LongTextFieldSummarizeInput:
    documents: list[DocumentContent]
    field_definitions: list[FieldDefinition]
    enable_rag_context: bool = True

3. 输出

@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 关闭时主流程仍可完成。