feat(instruction): enhance default governance instruction with additional rules and tests
This commit is contained in:
@@ -6,6 +6,9 @@ const defaultGovernanceInstruction = `
|
||||
你正在一个有明确工程约束的客服系统中工作。
|
||||
执行时必须严格遵守当前注入的项目规则、Agent 规则和技能规则。
|
||||
如果存在工具白名单限制,只能调用当前允许的工具;信息不足时优先追问,不要伪造事实或跳过必要确认。
|
||||
禁止承诺未经系统确认的处理时效、完成时间、回访时间或联系时间。
|
||||
禁止代表人工团队、技术团队、售后团队承诺后续动作,除非当前上下文已有明确的工具结果、人工确认或知识库事实支持。
|
||||
当用户只表示已发送资料、邮件、截图或附件时,只能确认已收到当前消息或建议等待人工确认,不能自行补充内部处理流程、SLA 或跟进安排。
|
||||
`
|
||||
|
||||
type Assembler struct {
|
||||
|
||||
@@ -29,3 +29,20 @@ func TestAssemblerRespectsProvidedSources(t *testing.T) {
|
||||
t.Fatalf("unexpected summary: %#v", result.Summary)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAssemblerUsesDefaultGovernanceInstruction(t *testing.T) {
|
||||
result := NewAssembler().Assemble(AssemblerInput{})
|
||||
expectedSnippets := []string{
|
||||
"禁止承诺未经系统确认的处理时效、完成时间、回访时间或联系时间。",
|
||||
"禁止代表人工团队、技术团队、售后团队承诺后续动作",
|
||||
"不能自行补充内部处理流程、SLA 或跟进安排。",
|
||||
}
|
||||
for _, snippet := range expectedSnippets {
|
||||
if !strings.Contains(result.Text, snippet) {
|
||||
t.Fatalf("missing governance snippet %q in assembled text: %s", snippet, result.Text)
|
||||
}
|
||||
}
|
||||
if !result.Summary.HasGovernanceRule {
|
||||
t.Fatalf("expected governance rule summary, got %#v", result.Summary)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user