Prompt
Prompt 包括用户提出的任务,也包括系统补入的工作要求:要研究什么、什么时候查文献、怎样组织综述、修改时怎样保留引用。论文正文、检索结果和待修改的材料则属于 Context。
一、Prompt 的组成
按普通研究路径中的组织方式,Lito 的 Prompt 可以分为四部分:系统 Prompt、任务 Prompt、用户输入中的要求,以及按需加入的动态提醒。
1.1 系统 Prompt
系统 Prompt 提供基本工作方式:理解用户意图、准确回答,信息不足时借助工具补充。适用的工具使用指导也会加入其中,例如检索要忠于用户问题,结果不足时调整查询,避免重复搜索。
1.2 任务 Prompt
任务 Prompt 包含项目或助手指令,以及本地研究模式追加的 LOCAL_RESEARCH_PROMPT。默认助手读取项目说明,自定义助手使用自身指令;研究规则规定怎样处理文献和引用。
| 工作环节 | 研究规则 |
|---|---|
| 查找证据 | 新的事实性问题先依据附件或检索资料,遵循用户指定的文献范围 |
| 形成综述 | 按主题综合,区分作者发现、综合判断与研究建议 |
| 修改正文 | 沿用已有来源关联,保留事实归属 |
| 核验引用 | 使用连续原文和可靠的文档、页码信息 |
1.3 用户输入
用户直接提出的问题、任务要求和修改意见也是 Prompt。例如,“比较这些论文的实验条件”“写成综述”“缩短一半,保留引用”,都在指导模型当前要做什么。
同一条消息可以同时包含 Prompt 和 Context:“把下面这段缩短一半”是要求,后面附上的正文是待处理材料。
1.4 动态提醒
动态提醒按执行状态补入,例如取得文献后提醒正确引用,到最后一轮时提醒基于已有结果完成回答。
工具定义另行通过 tool_definitions 传入,包含工具名称、说明和参数结构。其中自然语言说明可以指导模型调用;参数 Schema 描述字段格式。这里将工具使用指导归入系统 Prompt,并保留工具定义独立传入的实际方式。
二、用户的新要求如何影响 Prompt
用户可以围绕同一组材料,先要求比较文献,再要求写成综述,最后要求缩写。这些新要求就是当前用户输入中的 Prompt;原有的系统 Prompt 和任务 Prompt 继续参与判断。
例如,“缩短一半,保留引用”要求压缩论述,同时保留事实归属。同一来源支持的连续论述可以合并标注,不同来源和具体数字仍需分别引用。
三、V1.1对研究回答的具体要求
提示词围绕问题场景组织要求。单篇解释先回答概念或数值,交代决定含义的对象与条件;跨论文比较使用共同维度,同时区分各篇的研究方法和发现;逐篇任务要求每篇有与问题相关的具体内容和来源。
例如,用户问“什么时候补贴买卖双方”,成本、参与条件和适用范围就是答案的一部分。压缩表达时保留这些条件,删去重复背景。写作题则按用户的篇幅和组织方式交付正文。
引用要求贯穿生成与改写:论文编号帮助识别文件,引用编号对应具体来源;合并段落后继续核对论述归属。程序保存来源映射,模型负责在正文中正确使用。
四、Lito 如何拼装 Prompt
Lito 会先选择和合并指令,再按顺序组织消息,最后连同工具定义发给模型。普通研究路径分为四步:
| 步骤 | 实际处理 |
|---|---|
| 合并任务 Prompt | 默认助手读取项目说明,自定义助手使用自身指令;本地研究模式再追加 LOCAL_RESEARCH_PROMPT |
| 组装系统 Prompt | build_system_prompt() 处理模板,按条件补入引用要求和可用工具的使用指导 |
| 排列消息 | construct_message_history() 将系统消息放在开头,任务 Prompt 放在当前用户消息之前,动态提醒放在末尾 |
| 传入工具定义 | 从本轮可用工具生成 tool_definitions,与消息列表分别传给模型调用函数 |
其中,项目或助手指令与研究规则确实会先拼成一段文本。这段文本在常规路径中作为独立的 user 角色消息插入,和用户当前提出的问题分开保存。用户的任务要求仍保留在当前用户消息中。
这些 Prompt 与本轮 Context 一起交给模型。历史、文件和工具结果的排列与取舍,见 Context:每轮模型能看到什么。
自定义助手若开启 replace_base_system_prompt,会改用它的 Prompt 作为系统消息,走替换分支。到最后一轮时,Agent Loop 清空本轮工具定义,并补入收尾提醒,让模型基于已有信息完成回答。