拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Instruction

Instruction【免费下载链接】agent-zeroAgent Zero AI framework项目地址: https://gitcode.com/GitHub_Trending/ag/agent-zeroProvide a chat name for the following conversation.Current chat name{{current_name}}Recent user messages{{user_messages}}- {{current_name}}对话的当前名称。若尚未命名则由调用方传入 (unnamed) - {{user_messages}}最近若干条用户消息的格式化文本见下文 _format_user_messages。 该模板由 [helpers/naming.py](https://link.gitcode.com/i/fe97b927433fe8ca52537c3cceddfda1) 中的 generate_name() 通过 agent.read_prompt(fw.chat_naming.message.md, current_name..., user_messages...) 完成渲染。也就是说模板中的双花括号变量由运行时代码注入开发者修改模板时只需保持这两个占位符不变即可。 ## 二、系统提示词约束输出格式与命名策略 generate_name() 首先读取 [fw.chat_naming.system.md](https://link.gitcode.com/i/e9f9a2eb2ef7b760aeecb4e08e71fe76) 作为 system prompt其核心约定如下 1. **角色**模型被定位为 a chat naming assistant 2. **输入**只接收当前名称与最近用户消息——The most recent message is most important, but use earlier messages to resolve short follow-ups such as okay, do it.即最新消息权重最高但需要结合更早消息消解好的就这么办之类的短跟进语 3. **输出**1~3 个词的短名称仅在对话主题变化时才修改当前名称只输出名称本身不得带格式、前言或额外文字保持正确的大小写 4. **示例**Database setup、Requirements installation、Merging documents、Image analysis。 这些约束在源码中得到了呼应normalize_generated_name() 会对模型返回结果做清洗去除首尾空白与 \ # 字符并把超过 40 字符GENERATED_NAME_LIMIT的名称截断为 37 字符加省略号见 [naming.py](https://link.gitcode.com/i/fe97b927433fe8ca52537c3cceddfda1#L129-L133)。因此即使模型偶尔超长输出最终保存的名称也必然在合理长度内。 ## 三、模板填充与调用链一次自动命名如何发生 generate_name() 是命名功能的中枢完整流程如下[naming.py](https://link.gitcode.com/i/fe97b927433fe8ca52537c3cceddfda1#L48-L116) 1. **取用户消息**get_user_messages() 遍历 agent.history.all_messages()跳过 AI 消息仅保留内容包含 user_message 或 user_intervention 键的消息默认取最近 4 条RECENT_USER_MESSAGES 4 2. **取 Utility Model 配置**通过 plugins._model_config.helpers.model_config.get_utility_model_config(agent) 读取模型的 ctx_length默认 128000 3. **计算输入预算**input_budget ctx_length * 0.7UTILITY_CONTEXT_INPUT_RATIO即命名调用最多占用上下文窗口的 70%给模型输出与系统开销留出余量 4. **渲染模板**先以空 user_messages 渲染一次模板估算 system prompt 固定模板部分消耗的 token_estimated_input_tokens得到留给消息文本的 message_budget 5. **按预算裁剪消息**_fit_user_messages() 从最新消息开始往前累加逐条放入编号列表1. xxx 格式见 _format_user_messages直到超出预算为止若单条消息就超预算则用 tokens.trim_to_tokens(..., end) 从尾部截断。这就是 [tests/test_chat_naming.py](https://link.gitcode.com/i/274209bb0ddac2093880db04d3571f3e) 中验证的行为当 ctx_length 300 时最终提示词总 token 数不超过 300 * 0.7且最新的 LATEST_CONTEXT 保留、更早的 older context 被丢弃 6. **调用模型**agent.call_utility_model(systemsystem_prompt, messageuser_prompt, backgroundTrue) 以后台方式发起命名请求 7. **规范化结果**经 normalize_generated_name() 清洗后返回若模型未返回有效名称则抛出 ValueError。 可以直观看到fw.chat_naming.message.md 中的 {{user_messages}} 最终会被替换成类似下面的文本帮我规划数据库表结构好的加上索引设计okay, do it而 {{current_name}} 则被替换为当前名称或 (unnamed)。 ## 四、自动命名配置once 与 always 两种模式 插件通过 [plugin.yaml](https://link.gitcode.com/i/44a679848cee92872ed66049affba377) 声明自身属性per_project_config: true 与 per_agent_config: true 表示自动命名开关可按项目和 Agent 配置always_enabled: true 表示插件始终加载。默认配置见 [default_config.yaml](https://link.gitcode.com/i/71011c61925de3c39a7273950cd07ad9) yaml automatic_naming: true automatic_naming_mode: once【免费下载链接】agent-zeroAgent Zero AI framework项目地址: https://gitcode.com/GitHub_Trending/ag/agent-zero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门