news 2026/6/15 20:32:44

【Nanobot项目解析-提示词构建器的工作原理】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Nanobot项目解析-提示词构建器的工作原理】

提示词构建器的工作原理

Nanobot的提示词构建器通过ContextBuilder类实现,负责组装完整的提示词上下文,为LLM提供结构化的指令和信息。

核心工作流程

1. 初始化

def__init__(self,workspace:Path):self.workspace=workspace self.memory=MemoryStore(workspace)self.skills=SkillsLoader(workspace)
  • 接收工作区路径
  • 初始化记忆存储和技能加载器

2. 系统提示词构建

defbuild_system_prompt(self,skill_names:list[str]|None=None)->str:# 组装各个部分parts=[]# 核心身份parts.append(self._get_identity())# 引导文件bootstrap=self._load_bootstrap_files()ifbootstrap:parts.append(bootstrap)# 记忆上下文memory=self.memory.get_memory_context()ifmemory:parts.append(f"# Memory\n\n{memory}")# 技能# 1. 始终加载的技能always_skills=self.skills.get_always_skills()ifalways_skills:always_content=self.skills.load_skills_for_context(always_skills)ifalways_content:parts.append(f"# Active Skills\n\n{always_content}")# 2. 可用技能:只显示摘要skills_summary=self.skills.build_skills_summary()ifskills_summary:parts.append(f"# Skills\n...{skills_summary}")return"\n\n---\n\n".join(parts)

3. 完整消息构建

defbuild_messages(self,history:list[dict[str,Any]],current_message:str,skill_names:list[str]|None=None,media:list[str]|None=None)->list[dict[str,Any]]:messages=[]# 系统提示词system_prompt=self.build_system_prompt(skill_names)messages.append({"role":"system","content":system_prompt})# 历史消息messages.extend(history)# 当前用户消息(支持图片)user_content=self._build_user_content(current_message,media)messages.append({"role":"user","content":user_content})returnmessages

关键组件

1. 核心身份信息

  • 包含当前时间、工作区路径、可用工具等基本信息
  • 定义了助手的基本行为准则

2. 引导文件

  • 加载AGENTS.md,SOUL.md,USER.md,TOOLS.md,IDENTITY.md等文件
  • 这些文件包含了更详细的指令和配置

3. 记忆系统

  • memory/MEMORY.md和每日笔记中加载记忆
  • 为助手提供长期记忆能力

4. 技能系统

  • 始终加载的技能:直接包含完整内容
  • 可用技能:只显示摘要,需要时通过read_file工具加载
  • 技能摘要包含技能名称、描述和可用性

5. 媒体支持

  • 支持图片附件,通过 base64 编码嵌入到消息中

运行机制

  1. 初始化阶段:创建 ContextBuilder 实例,准备工作区和依赖组件
  2. 提示词构建
    • 调用build_system_prompt()生成系统提示词
    • 系统提示词包含身份、引导文件、记忆和技能信息
  3. 消息组装
    • 调用build_messages()组装完整消息列表
    • 消息列表按顺序包含:系统提示词 → 历史消息 → 当前用户消息
  4. 交互过程
    • LLM 基于完整消息列表生成响应
    • 若需要执行工具,添加工具执行结果
    • 添加助手响应消息,完成一轮交互

特点与优势

  1. 模块化设计:各个组件(身份、引导文件、记忆、技能)独立管理
  2. 渐进式技能加载:常用技能直接加载,其他技能只显示摘要
  3. 多媒体支持:可处理图片等媒体文件
  4. 结构化提示词:通过清晰的标题和分段,提高 LLM 理解效率
  5. 上下文感知:包含时间、工作区等上下文信息,使助手更加智能

总结

Nanobot 的提示词构建器是一个精心设计的系统,通过以下步骤工作:

  1. 收集信息:从工作区、记忆、技能系统中收集相关信息
  2. 结构化组织:将信息组织成清晰的结构,包括身份、引导文件、记忆和技能
  3. 组装消息:按正确的顺序组装系统提示词、历史消息和当前用户消息
  4. 支持交互:提供添加工具结果和助手消息的方法,支持完整的交互流程

这种设计使得 Nanobot 能够为 LLM 提供丰富、结构化的上下文信息,从而生成更加准确和相关的响应。同时,通过渐进式技能加载等策略,它也能够在保持提示词简洁的同时,提供对大量技能的访问能力。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 14:10:58

DCT-Net人像卡通化:社交头像制作新姿势

DCT-Net人像卡通化:社交头像制作新姿势 1. 为什么一张照片就能变成你的专属卡通头像? 1.1 你是不是也这样——想换头像,却卡在第一步? 刷朋友圈时看到朋友用的卡通头像又萌又酷,自己也想试试; 做个人品牌…

作者头像 李华
网站建设 2026/6/15 11:22:06

免费语音合成工具:Qwen3-TTS多语言体验评测

免费语音合成工具:Qwen3-TTS多语言体验评测 想用AI语音合成却担心成本太高?Qwen3-TTS让你免费体验专业级多语言语音合成效果 1. 开篇:为什么选择Qwen3-TTS 如果你正在寻找一款免费又好用的语音合成工具,Qwen3-TTS绝对值得一试。这…

作者头像 李华
网站建设 2026/6/15 12:16:27

惊艳效果展示:Nano-Banana生成的10款服饰拆解图大合集

惊艳效果展示:Nano-Banana生成的10款服饰拆解图大合集 1. 什么是“软萌拆拆屋”?一件衣服的棉花糖式打开方式 你有没有想过,一件洛丽塔裙子里到底藏着多少蝴蝶结、蕾丝边和蓬蓬褶?一条牛仔裤的口袋、缝线、铜扣和水洗痕迹&#xf…

作者头像 李华
网站建设 2026/6/15 12:16:34

深度学习环境配置不再难:镜像一键部署全攻略

深度学习环境配置不再难:镜像一键部署全攻略 你是不是也经历过这样的深夜: 反复卸载重装CUDA,折腾半天nvcc -V还是报错; pip install torch卡在99%,镜像源换到第三家依然超时; 好不容易跑通demo&#xff0…

作者头像 李华
网站建设 2026/6/15 11:20:19

学术写作新物种:解锁书匠策AI的本科论文“超能力”

在学术写作的江湖里,本科生常被贴上“经验不足”“效率低下”的标签。面对动辄上万字的论文、复杂的文献综述、严苛的格式要求,许多人陷入“选题焦虑—逻辑混乱—查重崩溃”的死循环。但如今,一款名为书匠策AI的科研工具正以“学术外挂”的姿…

作者头像 李华
网站建设 2026/6/15 12:16:31

Lychee Rerank系统开箱即用:快速搭建智能检索环境

Lychee Rerank系统开箱即用:快速搭建智能检索环境 想要让搜索结果更精准、更智能吗?面对海量的图文信息,传统的搜索引擎常常力不从心,返回的结果可能只是“沾边”,而不是真正“相关”。Lychee Rerank 多模态智能重排序…

作者头像 李华