myagent-ai 1.47.37 → 1.47.38

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.
@@ -1274,34 +1274,56 @@ class MainAgent(BaseAgent):
1274
1274
 
1275
1275
  # 将 chat_agent 条目写入 agent_chat 表(私聊记录)
1276
1276
  if _chat_entries:
1277
+ logger.info(f"[{task_id}] [私聊保存] main_agent 发现 {len(_chat_entries)} 条私聊条目")
1277
1278
  try:
1278
1279
  from groups.manager import GroupManager
1280
+ logger.info(f"[{task_id}] [私聊保存] 正在创建 GroupManager")
1279
1281
  _gm = GroupManager()
1280
1282
  _gm.initialize()
1281
- for _ce in _chat_entries:
1283
+ logger.info(f"[{task_id}] [私聊保存] GroupManager 初始化完成")
1284
+
1285
+ for _idx, _ce in enumerate(_chat_entries):
1282
1286
  _from_agent = agent_path or str(_effective_agent_id)
1283
1287
  _from_name = ""
1288
+ logger.info(f"[{task_id}] [私聊保存] 处理第 {_idx+1} 条私聊: from_agent={_from_agent}, target_agent={_ce.get('target_agent', '')}")
1289
+
1284
1290
  try:
1285
1291
  import sqlite3
1286
- _db = sqlite3.connect(str(Path.home() / ".myagent" / "data" / "agents.db"))
1292
+ _db_path = str(Path.home() / ".myagent" / "data" / "agents.db")
1293
+ logger.info(f"[{task_id}] [私聊保存] 查询 agents.db: {_db_path}")
1294
+ _db = sqlite3.connect(_db_path)
1287
1295
  _db.row_factory = sqlite3.Row
1288
1296
  _row = _db.execute("SELECT name FROM agents WHERE path = ? OR id = ?", (_from_agent, _from_agent)).fetchone()
1289
1297
  if _row and _row["name"]:
1290
1298
  _from_name = _row["name"]
1299
+ logger.info(f"[{task_id}] [私聊保存] 查询到 from_name: {_from_name}")
1300
+ else:
1301
+ logger.info(f"[{task_id}] [私聊保存] 未查询到 from_name")
1291
1302
  _db.close()
1292
- except Exception:
1293
- pass
1294
- _gm.add_agent_chat(
1303
+ except Exception as _e:
1304
+ logger.warning(f"[{task_id}] [私聊保存] 查询 from_name 失败: {_e}")
1305
+
1306
+ _to_agent = _ce.get("target_agent", "")
1307
+ _to_name = _ce.get("target_name", "")
1308
+ _content = _ce.get("message", "")
1309
+
1310
+ logger.info(f"[{task_id}] [私聊保存] 调用 add_agent_chat: from_agent={_from_agent}, from_name={_from_name}, to_agent={_to_agent}, to_name={_to_name}")
1311
+ _msg_id = _gm.add_agent_chat(
1295
1312
  group_id="",
1296
1313
  from_agent=_from_agent,
1297
1314
  from_name=_from_name,
1298
- to_agent=_ce.get("target_agent", ""),
1299
- to_name=_ce.get("target_name", ""),
1300
- content=_ce.get("message", ""),
1315
+ to_agent=_to_agent,
1316
+ to_name=_to_name,
1317
+ content=_content,
1301
1318
  )
1302
- logger.info(f"[{task_id}] Agent私聊已保存: {_from_name} {_ce.get('target_name', '')}: {_ce.get('message', '')[:80]}")
1319
+ logger.info(f"[{task_id}] [私聊保存] add_agent_chat 返回 msg_id={_msg_id}")
1320
+ logger.info(f"[{task_id}] Agent私聊已保存: {_from_name} → {_to_name}: {_content[:80]}")
1321
+
1322
+ _gm.close()
1323
+ logger.info(f"[{task_id}] [私聊保存] GroupManager 已关闭,处理完成")
1303
1324
  except Exception as _ce_err:
1304
- logger.warning(f"[{task_id}] 保存Agent私聊记录失败: {_ce_err}")
1325
+ logger.warning(f"[{task_id}] [私聊保存] 保存Agent私聊记录失败: {_ce_err}")
1326
+ logger.exception(f"[{task_id}] [私聊保存] 异常详情")
1305
1327
 
1306
1328
  # 普通文件列表照常持久化到 session memory
1307
1329
  if _file_entries:
@@ -218,13 +218,16 @@ class ToolDispatcher:
218
218
  # 如果有私聊标记,保存到数据库
219
219
  if _chat_markers:
220
220
  try:
221
+ logger.info(f"[{task_id}] [私聊保存] 开始处理,找到 {len(_chat_markers)} 条私聊标记")
221
222
  # 延迟导入避免循环依赖
222
223
  from groups.manager import GroupManager
223
224
  # 获取数据目录
224
225
  _data_dir = _P.home() / ".myagent" / "data"
226
+ logger.info(f"[{task_id}] [私聊保存] 数据目录: {_data_dir}")
225
227
  _gm = GroupManager(_data_dir)
228
+ logger.info(f"[{task_id}] [私聊保存] GroupManager 初始化完成")
226
229
 
227
- for _match in _chat_markers:
230
+ for _idx, _match in enumerate(_chat_markers):
228
231
  _to_path = _match[0].strip()
229
232
  _to_name = _match[1].strip()
230
233
  _content = _match[2].strip()
@@ -233,7 +236,9 @@ class ToolDispatcher:
233
236
  _from_id = agent_id if agent_id else "unknown"
234
237
  _from_name = _from_id if _from_id else "未知"
235
238
 
236
- _gm.add_agent_chat(
239
+ logger.info(f"[{task_id}] [私聊保存] 处理第 {_idx+1} 条: from_id={_from_id}, from_name={_from_name}, to_path={_to_path}, to_name={_to_name}")
240
+
241
+ _result = _gm.add_agent_chat(
237
242
  group_id="",
238
243
  from_agent=_from_id,
239
244
  from_name=_from_name,
@@ -241,11 +246,14 @@ class ToolDispatcher:
241
246
  to_name=_to_name,
242
247
  content=_content,
243
248
  )
249
+ logger.info(f"[{task_id}] [私聊保存] 第 {_idx+1} 条保存结果: msg_id={_result}")
244
250
  logger.info(f"[{task_id}] 私聊记录已保存: {_from_name} → {_to_name}: {_content[:50]}...")
245
251
 
246
252
  _gm.close()
253
+ logger.info(f"[{task_id}] [私聊保存] GroupManager 已关闭,处理完成")
247
254
  except Exception as _ce:
248
- logger.warning(f"[{task_id}] 保存私聊记录失败: {_ce}")
255
+ logger.warning(f"[{task_id}] [私聊保存] 保存私聊记录失败: {_ce}")
256
+ logger.exception(f"[{task_id}] [私聊保存] 异常详情")
249
257
 
250
258
  # 注入权限检查器
251
259
  if self._permission_checker:
package/groups/manager.py CHANGED
@@ -258,8 +258,10 @@ class GroupManager:
258
258
  def _init_message_db(self):
259
259
  """初始化群消息 SQLite 数据库"""
260
260
  db_path = self._data_dir / "groups" / "messages.db"
261
+ logger.info(f"[私聊保存] 初始化消息数据库: {db_path}")
261
262
  self._db_conn = sqlite3.connect(str(db_path), check_same_thread=False)
262
263
  self._db_conn.row_factory = sqlite3.Row
264
+ logger.info(f"[私聊保存] 数据库连接已创建")
263
265
  # [v1.23.81] 群聊 session 映射表(每个群一个纯数字 session ID)
264
266
  self._db_conn.execute("""
265
267
  CREATE TABLE IF NOT EXISTS group_sessions (
@@ -805,16 +807,30 @@ class GroupManager:
805
807
  def add_agent_chat(self, group_id: str, from_agent: str, from_name: str,
806
808
  to_agent: str, to_name: str, content: str) -> str:
807
809
  """添加一条Agent间私聊记录,返回消息ID"""
810
+ logger.info(f"[私聊保存] add_agent_chat 被调用: group_id={group_id}, from_agent={from_agent}, from_name={from_name}, to_agent={to_agent}, to_name={to_name}, content={content[:50]}...")
811
+
808
812
  if not self._db_conn:
813
+ logger.warning(f"[私聊保存] 数据库连接未初始化,无法保存")
809
814
  return ""
815
+
810
816
  msg_id = uuid.uuid4().hex[:16]
811
- with self._db_lock:
812
- self._db_conn.execute(
813
- "INSERT INTO agent_chat (id, group_id, from_agent, from_name, to_agent, to_name, content, timestamp) "
814
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
815
- (msg_id, group_id, from_agent, from_name, to_agent, to_name, content, time.time()),
816
- )
817
- self._db_conn.commit()
817
+ logger.info(f"[私聊保存] 生成的消息ID: {msg_id}")
818
+
819
+ try:
820
+ with self._db_lock:
821
+ logger.info(f"[私聊保存] 开始执行 INSERT 语句")
822
+ self._db_conn.execute(
823
+ "INSERT INTO agent_chat (id, group_id, from_agent, from_name, to_agent, to_name, content, timestamp) "
824
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
825
+ (msg_id, group_id, from_agent, from_name, to_agent, to_name, content, time.time()),
826
+ )
827
+ self._db_conn.commit()
828
+ logger.info(f"[私聊保存] INSERT 成功,已提交事务,msg_id={msg_id}")
829
+ except Exception as e:
830
+ logger.error(f"[私聊保存] INSERT 失败: {e}")
831
+ logger.exception(f"[私聊保存] 异常详情")
832
+ return ""
833
+
818
834
  return msg_id
819
835
 
820
836
  def get_agent_chats(self, group_id: str = "", from_agent: str = "",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "myagent-ai",
3
- "version": "1.47.37",
3
+ "version": "1.47.38",
4
4
  "description": "本地桌面端执行型AI助手 - Open Interpreter 风格 | Local Desktop Execution-Oriented AI Assistant",
5
5
  "main": "main.py",
6
6
  "bin": {