Merge cloud-owned teaching policy and bounded new shortcuts
This commit is contained in:
@@ -113,7 +113,7 @@ export function compileTeacherContext(
|
||||
const current: TeacherModelMessage = {
|
||||
role: intent === 'check-in' ? 'system' : 'user',
|
||||
content: intent === 'check-in'
|
||||
? '本轮是一次项目进展提醒,不是用户提问。按照已配置的人设和职责,结合来源操作对话中已完成的文字和咨询历史回应,表达方式遵循已配置的要求,不要求用户立即回答。仅依据已有证据,不重复上次提醒,不声称实际运行或试玩过作品。'
|
||||
? '本轮入口:程序触发的项目进展检查,学生没有在本轮主动提问。回应方式遵循当前智能体的云端配置。'
|
||||
: [
|
||||
...references.map(
|
||||
(ref) =>
|
||||
@@ -123,10 +123,10 @@ export function compileTeacherContext(
|
||||
ref.text
|
||||
),
|
||||
'当前问题:\n' + question,
|
||||
...(intent === 'suggestions' || intent === 'guided-help'
|
||||
? [
|
||||
'本轮学生希望你帮忙找到交流起点。依据当前项目、来源操作对话和咨询历史,推荐一个具体切入点,并说明为何值得从这里聊;快捷回复围绕这个切入点帮助学生接话。没有可用上下文时,坦诚从构思切入,不假定学生已完成功能,不编造作品表现或项目进展。',
|
||||
]
|
||||
...(intent === 'suggestions'
|
||||
? ['本轮入口:学生通过“帮我看看”主动请求帮助,尚未提出具体问题。']
|
||||
: intent === 'guided-help'
|
||||
? ['本轮入口:学生主动求助,表示暂时说不清想问什么。']
|
||||
: []),
|
||||
].join('\n\n'),
|
||||
};
|
||||
|
||||
@@ -1,13 +1,21 @@
|
||||
import type { TeacherRequest } from '../../shared/coding-teacher';
|
||||
import { parseTeacherReply } from '../../shared/teacher-reply';
|
||||
|
||||
const MAX_CURRENT_QUICK_REPLIES = 3;
|
||||
|
||||
export function teacherReplyInstructions(): string {
|
||||
return '本轮界面接收一个 JSON 对象 {"reply":string,"quickReplies":string[]}。reply 是回复正文,可使用 Markdown;quickReplies 是可选的后续回复建议,没有建议时用空数组。只使用这两个字段。字符串中的英文双引号、反斜杠和换行必须按 JSON 规则转义,确保整个对象是合法 JSON。依据已配置职责帮助学生整理想法、理解关系、承接已确认的共识;区分学生已确认内容与智能体建议、待定想法。回复的语言、风格、长度、前缀和建议内容遵循当前智能体的云端配置。';
|
||||
return `本轮界面接收一个 JSON 对象 {"reply":string,"quickReplies":string[]}。reply 是回复正文,可使用 Markdown;quickReplies 是可选的快捷回复,最多 ${MAX_CURRENT_QUICK_REPLIES} 条,每条为非空字符串,没有快捷回复时用空数组。只使用这两个字段。字符串中的英文双引号、反斜杠和换行必须按 JSON 规则转义,确保整个对象是合法 JSON。回复的内容、语言、风格、长度和前缀遵循当前智能体的云端配置。`;
|
||||
}
|
||||
|
||||
/** The original response remains available for diagnosis when parsing is incomplete. */
|
||||
export function applyTeacherReply(request: TeacherRequest, raw: string): void {
|
||||
const parsed = parseTeacherReply(raw);
|
||||
// Apply the current UI contract only to new replies; archived replies keep
|
||||
// their original cards through the compatibility parser and topic store.
|
||||
if (parsed.quickReplies.length > MAX_CURRENT_QUICK_REPLIES) {
|
||||
parsed.quickReplies = [];
|
||||
parsed.parseError ??= '快捷回复超过当前界面最多 3 条的限制,正文已保留,快捷回复未展示。';
|
||||
}
|
||||
request.response = parsed.reply;
|
||||
request.suggestedQuestions = parsed.quickReplies;
|
||||
if (parsed.incomplete) request.replyIncomplete = true;
|
||||
|
||||
Reference in New Issue
Block a user