myagent-ai 1.23.60 → 1.23.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -43,7 +43,11 @@ class MainAgent(BaseAgent):
43
43
  # =========================================================================
44
44
  SYSTEM_PROMPT = """你是一个智能AI助手,请深入分析以下上下文内容。
45
45
 
46
- 严格以XML格式化输出以下内容,否则解析器无法解析:
46
+ 专业技能指令: 系统内置了丰富的专业技能指南(PDF/DOCX/XLSX/PPT 生成、图表绘制、前端开发等),通过 <get_knowledge> 请求相关技能指令。
47
+ """
48
+
49
+ # XML 输出格式规范(单独提取,在 _process_v2_inner 中追加到 system_content 末尾)
50
+ xml_prompt = """4. 准备好内容后,最后,再检查输出格式,确保满足以下要求:
47
51
  <output>
48
52
  <mainsubject>当前对话的6字以内标题(每轮都需输出,系统会每3轮自动更新会话名称)</mainsubject>
49
53
  <usersays_correct>通过修正识别错误、调整标点,结合上下文,将用户语音转写文本"usersays"修正为更准确的文本,但尽量少改动。如"usersays"为空,则此处为空。</usersays_correct>
@@ -188,25 +192,6 @@ class MainAgent(BaseAgent):
188
192
  - Cookie: {"action": "set_cookies", "cookies": [...], "session_id": "xxx"} 或 {"action": "get_cookies", "session_id": "xxx"}
189
193
  - 关闭: {"action": "close", "session_id": "xxx"}
190
194
 
191
- 专业技能指令: 系统内置了丰富的专业技能指南(PDF/DOCX/XLSX/PPT 生成、图表绘制、前端开发等),通过 <get_knowledge> 请求相关技能指令。
192
- 4. 准备好内容后,最后,再检查输出格式,确保满足以下要求:
193
- <output>
194
- <mainsubject>当前对话的6字以内标题(每轮都需输出,系统会每3轮自动更新会话名称)</mainsubject>
195
- <usersays_correct>通过修正识别错误、调整标点,结合上下文,将用户语音转写文本"usersays"修正为更准确的文本,但尽量少改动。如"usersays"为空,则此处为空。</usersays_correct>
196
- <response><reply>展示给用户的文本,格式上尽量使用md格式,直观形象展示,甚至可以包括超链接、表格等。内容上,针对用户问题,直接回应问题;针对任务,开始的时候,告诉用户,为完成任务,准备如何开展工作;执行过程中,根据工具调用结果,简单展示任务进展;任务完成后的详细最终总结。注意:这是给用户展示信息的最重要标签,尽量不要跟上次回复重复,执行过程展示内容尽量简洁,执行总结可以丰富一点。</reply><toolstocal>
197
- <tool><beforecalltext>展示给用户的简单工具调用信息。格式:先使用"接下来、下一步、接着、现在、然后、最后、等下"等连接词➕调用"工具名"。</beforecalltext><toolname>工具名,用于后台解析器解析调用工具</toolname><parms>调用工具的JSON格式参数对象,如格式: {"query": "搜索关键词", "num": 5}</parms><timeout>最多给它执行多久(秒),工具调用超过这个时限会立即回调大语言模型,方便调整工具使用。</timeout></tool>
198
- </toolstocal>
199
- </response>
200
- <task_plan>若"context"包含非空"task_plan",则更新它:若任务条数已超8,则精简为3条,若主题发生明显变化,重新设计任务列表。若"context"包含空"task_plan",则先评估任务复杂度,针对单次查询、简单问答、格式转换、单文件修改、简单计算等简单任务,若预计操作步骤不超过2步,则此处输出为空,不创建任务列表;针对多文件修改、需要调研+实现+测试、涉及多个模块联动等复杂任务,如预计超过2步操作,则以Markdown列表格式制定新任务列表。格式:每项用 "- [ ] 任务描述" 或 "- [x] 已完成任务",含完成状态标记,排序按已完成在前。</task_plan>
201
- <remember><type>填global或session,其中"global"为跨会话全局记忆,主要记忆用户个人信息和偏好,"session"为仅当前会话,临时的一些信息。</type><content>仅从最新用户输入,包括"userprint"或"usersays_correct"或工具调用结果,中提炼值得记忆的信息(如用户偏好、重要结论、错误经验、用户个人信息、对话要点、用户诉求、ai回复等)。因为对话默认不自动保存聊天记录,而是从记忆库搜索最相关的最新内容到"automemory"供决策,所以此次必须有所记忆,才能为后续多轮对话提供持续记忆基础。</content></remember>
202
- <recall>下一轮需要主动召回的记忆描述。填写需要从记忆库中检索的关键字或描述。如果不填写则为空。如果需要更多记忆支持当前任务,填写相关关键词(可包含时间参考,如"2025年1月的项目"),系统将在下一轮搜索top5相关记忆并通过"recall_memory"注入上下文。如需即时搜索记忆,使用命令: myagent-ai memory --keyword 关键词</recall>
203
- <knowledge>从本轮对话或工具执行结果中提炼值得长期保存到知识库的专业知识、事实、经验法则、技术要点等,将被持久化存储,未来可通过 "get_knowledge"检索复用。如果本轮无需保存的知识,则为空。格式要求:简洁明确,每条知识一行,用换行分隔。</knowledge>
204
- <get_knowledge>下一轮执行时需要从知识库搜索获得的知识,填写检索关键词或描述。如context中已包含充足的knowledge内容,则为空。如需更多专业知识支撑,则填写相关搜索词。</get_knowledge>
205
- <askuser>需要询问用户的内容,如无,则为空</askuser>
206
- <finish>true/false,是否结束循环调用llm。如"askuser"为非空,则"finish"为true。否则,根据"context"判断任务是否已完成,是否结束llm回调</finish>
207
- <finish_reason>当"finish"为true 时必填,详细说明为什么现在结束任务(如:任务已完成/需要用户补充信息/信息不足无法继续等)。finish若为false ,此处为空。</finish_reason>
208
- <next_step>当 finish=false 时必填,描述下一步计划做什么(简洁明了,1-2句话)。finish=true 时为空。</next_step>
209
- </output>
210
195
  """
211
196
 
212
197
  def __init__(self, tool_agent=None, memory_agent=None, **kwargs):
@@ -810,6 +795,8 @@ class MainAgent(BaseAgent):
810
795
  + self.SYSTEM_PROMPT.split("\n", 1)[1]
811
796
  )
812
797
  system_content = _prompt_with_placeholder.replace(_CONTEXT_PLACEHOLDER, context_xml)
798
+ # 追加 XML 输出格式规范(确保 LLM 每次都能看到格式要求)
799
+ system_content = system_content + "\n最后,再检查输出格式,确保满足以下要求:\n" + xml_prompt
813
800
  # Step 3: 构建 LLM 消息(必须包含 role=user,否则 OpenAI 兼容 API 返回 400)
814
801
  messages = [Message(role="system", content=system_content)]
815
802
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "myagent-ai",
3
- "version": "1.23.60",
3
+ "version": "1.23.61",
4
4
  "description": "本地桌面端执行型AI助手 - Open Interpreter 风格 | Local Desktop Execution-Oriented AI Assistant",
5
5
  "main": "main.py",
6
6
  "bin": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "myagent-ai",
3
- "version": "1.23.60",
3
+ "version": "1.23.61",
4
4
  "description": "本地桌面端执行型AI助手 - Open Interpreter 风格 | Local Desktop Execution-Oriented AI Assistant",
5
5
  "main": "main.py",
6
6
  "bin": {