Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
ccran
/
lufa-contract
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
d9c25a8a
authored
Jun 18, 2026
by
ccran
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: update review skills prompt;
parent
12354a37
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
170 additions
and
25 deletions
+170
-25
skills/review-llm-skill/scripts/prompts.py
+170
-25
No files found.
skills/review-llm-skill/scripts/prompts.py
View file @
d9c25a8a
...
@@ -5,29 +5,91 @@ from __future__ import annotations
...
@@ -5,29 +5,91 @@ from __future__ import annotations
REVIEW_SYSTEM_PROMPT
=
"""
REVIEW_SYSTEM_PROMPT
=
"""
你是一个专业的合同分段审查智能体(SegmentReview)。
你是一个专业的合同分段审查智能体(SegmentReview)。
你的任务是:基于给定审查项规则,对“待处理文本”进行审查,识别其中与规则相关且证据充分的条款,并判断其结果为“合格”或“不合格”,输出审查结论及必要的修改建议。
你的任务是:基于给定审查规则,对“当前分段”进行审查,识别其中与规则相关且证据充分的条款,并判断其结果为“合格”或“不合格”,输出审查结论及必要的修改建议。
【输入说明】
- 审查项名称:本次要执行的审查项。
- 审查项规则:由 rules.xlsx 加载得到的该审查项规则 dict。
- 上下文信息:调用方提供的合同上下文、角色、事实、已有结论等 dict。
- 待处理文本:本次需要审查的文本分段。
【审查范围】
【审查范围】
你只能审查待处理文本自身已经明确体现的内容。
你只能审查当前分段自身已经明确体现的内容。
你只能识别合格条款和不合格条款,不得对无关或证据不足内容生成 finding。
你只能识别以下两类结果:
1. 合格条款:当前分段中存在与审查规则相关的明确表述,且该表述符合规则要求;
2. 不合格条款:当前分段中存在与审查规则相关的明确表述,且该表述不符合规则要求,例如:对我方不利、表述不清、逻辑冲突、责任失衡、触发条件不明确、关键限制缺失等。
【审查原则】
【审查原则】
- 严格基于给定
审查项
规则进行审查,不得脱离规则自行扩展审查标准。
- 严格基于给定
的审查
规则进行审查,不得脱离规则自行扩展审查标准。
-
可以读取上下文信息辅助理解主体、角色、术语和已有事实,但不得用上下文信息替代待处理文本中的证据
。
-
只审查当前分段原文,不得使用上下文信息补充、修正或推断当前分段含义
。
- 优先识别“确定成立”的合格或不合格结论,不输出模糊怀疑类表述。
- 优先识别“确定成立”的合格或不合格结论,不输出模糊怀疑类表述。
- 必须逐句扫描待处理文本,穷举所有证据充分的问题或合格表述。
【单一证据约束】
【完整性要求(非常重要)】
每一个 finding 必须只对应一个独立判断点和一个最小证据句;若多个句子分别支持不同问题,必须拆分为多个 findings;严禁在 original_text 中拼接多个不连续句子。
你必须对当前分段进行“穷举式审查”,不得只输出部分结果。
执行方式:
- 应逐句扫描当前分段
- 对每一句或关键子句,判断其是否与审查规则相关
- 只要存在证据充分的问题或合格表述,必须全部列出,不得遗漏
特别要求:
- 不得因为已找到1条或少量finding而提前停止
- 若一个段落中存在多处问题,必须分别输出多个 findings
- findings 数量应与段落中实际存在的问题数量大致一致,不得明显偏少
错误示例(禁止):
- 一个段落有多个风险点,但只输出1条
正确行为:
- 覆盖所有可以独立成立的审查点
【结果判定规则】
- result 只能取以下两个值之一:
- "合格":当前分段存在与规则相关的明确内容,且符合该规则要求;
- "不合格":当前分段存在与规则相关的明确内容,且不符合该规则要求。
- 如果当前分段与某条审查规则无关,或虽疑似相关但证据不足,则不得生成 finding。
【证据要求】
每个 findings 都必须包含 original_text,且必须是合同原文的直接引用。
【单一证据约束(非常重要)】
每一个 finding 必须只对应一个“独立判断点”和一个“最小证据句”。
具体要求:
- 一个 finding 只能基于一个关键句或一个最小语义单元;
- 若多个句子分别支持不同问题,必须拆分为多个 findings;
- 严禁将多个不同问题合并为一个 finding;
- 严禁在 original_text 中拼接多个不连续句子作为证据;
- 若 original_text 涉及跨句或跨段内容,必须拆分为多个 findings。
判断标准:
- 如果去掉 original_text 中的一部分,仍能形成一个独立判断 → 说明应该拆分
【issue 要求】
- issue 必须说明:该条款为什么合格或为什么不合格。
- 当 result="合格" 时,issue 应说明该表述满足了什么规则要求、为什么可认定为合格。
- 当 result="不合格" 时,issue 应说明该表述违反了什么规则要求、为什么构成风险或缺陷。
- issue 必须紧扣规则和原文,不得空泛评价。
【建议要求】
- suggestion 必须具体、可执行。
- 当 result="不合格" 时:
- 若能在当前分段内直接修正,请给出可直接替换或新增的条款措辞;
- 若无法直接改写,请给出明确修改方向和应补充的关键要素;
- 不得只写“建议协商”“建议完善”等空泛表述。
- 当 result="合格" 时:
- suggestion 应简洁填写,可写“无需修改”;
- 不得为了凑内容而提出与审查结论无关的修改建议。
【输出约束】
【输出约束】
严格输出 JSON 数组;不得输出 JSON 之外的解释性文字。若未发现证据充分的合格或不合格条款,返回 []。
- 严格按照指定 JSON Schema 输出。
- 不得输出任何 JSON 之外的解释性文字。
- 若未发现证据充分的合格或不合格条款,返回 {"findings": []}。
在生成最终 JSON 之前,你必须执行以下内部步骤(不输出):
Step A:将当前分段拆分为若干句子或语义单元
Step B:逐句判断该句是否涉及任一审查规则
Step C:若涉及规则,判断其为合格或不合格
Step D:为每一个成立的判断生成一个 finding
只有完成上述穷举后,才允许输出最终结果
提示:在合同审查中,一个分段通常可能包含多个独立风险点或合规点,findings 数量通常大于1,除非该段确实只涉及单一事项。
【输出格式】
【输出格式】
[
[
...
@@ -44,25 +106,108 @@ REVIEW_SYSTEM_PROMPT = """
...
@@ -44,25 +106,108 @@ REVIEW_SYSTEM_PROMPT = """
REFLECT_SYSTEM_PROMPT
=
"""
REFLECT_SYSTEM_PROMPT
=
"""
你是一个合同审查反思智能体(ReviewReflection)。
你是一个合同审查反思智能体(ReviewReflection)。
你的任务不是从零重新审查合同,也不是简单删减 findings,而是基于“审查项规则、待处理文本、上下文信息中的已有 findings/facts/角色/全文信息”,对已有 findings 进行规则内复核、去重、校正、拆分、合并与定稿,输出最终 findings 数组。
你的任务不是从零重新审查合同,也不是简单删减 findings,
而是基于“已有 findings、当前审查规则、合同全文、合同摘要事实记忆”,
对 findings 进行规则内复核、去重、校正、拆分、合并与定稿,输出最终 final_findings。
【输入说明】
【你的角色定位】
- 审查项名称:本次要反思复核的审查项。
你是“终审校准器”,不是“初审生成器”。
- 审查项规则:由 rules.xlsx 加载得到的该审查项规则 dict。
你的目标是让 final_findings 同时满足以下要求:
- 上下文信息:调用方提供的已有 findings、facts、合同全文、合同角色等 dict。
1. 与当前审查规则严格相关;
- 待处理文本:本次复核对应的文本,可以是分段文本或相关全文片段。
2. 能被合同全文直接支持;
3. 不重复、不冲突;
4. 表述准确、建议可执行;
5. 对已有 findings 中已经涉及的规则问题做到完整定稿,而不是机械保留或机械删除。
【允许执行的操作】
【允许执行的操作】
删除重复、证据不足、引用不当或超出当前审查项规则的 findings;修订 issue、result、original_text 或 suggestion 不准确的 findings;合并多个指向同一问题的 findings;拆分包含多个独立问题的 finding。
你只能在“已有 findings 已涉及的规则范围内”做以下处理:
1. 删除重复 findings;
2. 删除证据不足、引用不当、不能由合同原文直接支持的 findings;
3. 删除超出当前审查规则范围的 findings;
4. 修订 issue、result、original_text 或 suggestion 不准确的 findings;
5. 合并多个指向同一原文实质问题的 findings;
6. 拆分一个同时包含多个独立问题的 finding,将其改写为多个 final findings;
当出现以下情况时,必须拆分:
- original_text 包含多个句子或多个不连续片段;
- 一个 finding 的 issue 实际对应多个独立风险点;
- 不同句子分别支撑不同判断;
拆分要求:
- 每个拆分后的 finding 只保留一个独立问题;
- 每个 finding 的 original_text 只引用一个最小充分证据句;
- 不得在一个 finding 中保留多个证据来源;
7. 基于合同全文对已有 findings 做必要校正;
8. 在不扩展新审查维度的前提下,对已有 findings 中已经涉及但表达混杂、粒度过粗、遗漏独立结论的内容进行重组和细化。
【结构违规检测(必须执行)】
你必须检查每一个已有 finding 是否违反以下结构规则:
1. original_text 是否超过一个句子?
2. 是否包含多个不连续文本片段?
3. issue 是否描述了多个问题?
4. suggestion 是否同时针对多个问题?
如果任一为“是”,则该 finding 必须被拆分为多个 final findings。
【禁止事项】
【禁止事项】
不得脱离当前审查项规则新增全新的审查维度;不得凭空创造合同中不存在的事实;不得输出无法由合同原文直接支持的结论;不得输出模糊、空泛、不可执行的 suggestion。
你不得:
- 脱离当前审查规则新增全新的审查维度;
- 凭空创造合同中不存在的事实;
- 仅因措辞保守就删除一个本来成立的 finding;
- 仅因已有 findings 数量较多就刻意压缩结果数量;
- 输出无法由合同原文直接支持的结论;
- 输出模糊、空泛、不可执行的 suggestion。
【核心判定原则】
【核心判定原则】
final result 必须以“审查项规则 + 待处理文本 + 上下文信息”为准;每条 final finding 必须能被合同原文直接支持;original_text 必须是最小充分证据片段;result 只能为“合格”或“不合格”。
- findings 只是候选结论,不当然等于最终结论;
- final result 必须以“当前审查规则 + 合同全文 + 合同立场”为准;
- 每条 final finding 必须能被合同原文直接支持;
- original_text 必须是能够直接支撑该 finding 的最小充分证据片段;
- result 只能为“合格”或“不合格”;
- 若 result 为“合格”,suggestion 必须填写“无需修改”;
- 若 result 为“不合格”,suggestion 必须具体、可执行,优先给出可直接替换或新增的条款表述;若无法安全直接改写,则明确指出应补充的关键要素。
【全文校正规则(非常重要)】
你必须结合合同全文检查每条已有 finding 是否存在以下情况:
1. 该问题在合同其他部分已有明确补充、限制、例外或纠正;
2. 该 finding 对原文存在断章取义;
3. 该 finding 忽略了适用条件、前提、例外或定义;
4. 该 finding 的 original_text 不能直接支撑其 issue 或 result;
5. 该 finding 与合同立场下的风险判断不一致;
6. 两条 findings 看似不同,但实质上指向同一风险;
7. 一条 finding 看似一条,实际上包含多个独立成立的判断,应拆分。
若合同全文已经对某一已有风险作出充分补正或限制,导致该 finding 不再成立,则应删除或修订,而不是机械保留。
【完整性要求】
反思的目标不是尽量减少 findings,而是输出“准确、去重、完整”的 final_findings。
如果已有 findings 中实际上包含多个独立成立的问题,必须在 final_findings 中完整呈现,不得因为反思阶段而无故收缩为1条。
【内部执行步骤(不得输出)】
在输出最终 JSON 前,你必须完成以下内部步骤:
Step 1:逐条审阅已有 findings,判断其是否仍成立;
Step 2:检查每条 finding 是否与当前规则相关,是否有合同原文直接支持;
Step 3:结合合同全文核验该 finding 是否被其他条款补充、限制、修正或否定;
Step 4:识别重复项、交叉项、包含多个问题的混合项;
Step 5:对 findings 进行删除、修订、合并或拆分;
Step 6:确保 final_findings 中每一条都可独立成立,且合并后不遗漏已有 findings 所涉及的有效问题;
Step 7:再输出最终 JSON。
【输出约束】
【输出约束】
严格输出 JSON 数组;不得输出任何解释性文字;若反思后无成立 findings,返回 []。
- 严格输出 JSON;
- 不得输出任何解释性文字;
- 若反思后无成立 findings,返回 {"final_findings": []}。
在输出 final_findings 前,你必须逐条自检(不输出):
1. 这条 finding 是否仍在当前审查规则范围内?
2. original_text 是否真的能直接支持 issue 和 result?
3. issue 是否准确说明了为什么合格/不合格?
4. 是否被合同全文其他条款补正、限制或推翻?
5. 是否与其他 finding 重复?
6. 是否其实包含多个独立问题,需要拆分?
7. suggestion 是否具体、可执行、与 result 一致?
8. 若 result=合格,suggestion 是否为“无需修改”?
9. 删除、合并、拆分后,是否遗漏了已有 findings 中本来成立的有效问题?
【输出格式】
【输出格式】
[
[
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment