refactor: 简化 AgentScope 运行时模块与事件处理
- 移除冗余的 user_token 参数传递 - 重构 tool.result 事件使用 ToolAgentOutput 模型 - 重构 text.end 事件使用 WorkerAgentOutput 模型 - 简化 store 模块的 tool result 处理逻辑 - 更新 router/service 适配新事件结构 - 清理废弃的测试文件与设计文档 - 新增 AgentRuns 多模态存储设计文档
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from typing import Protocol
|
||||
|
||||
from services.base.supabase import supabase_service
|
||||
|
||||
|
||||
class ToolResultStorage(Protocol):
|
||||
async def upload_json(
|
||||
self,
|
||||
*,
|
||||
bucket: str,
|
||||
path: str,
|
||||
payload: dict[str, object],
|
||||
) -> str: ...
|
||||
|
||||
async def read_json(
|
||||
self,
|
||||
*,
|
||||
bucket: str,
|
||||
path: str,
|
||||
) -> dict[str, object] | None: ...
|
||||
|
||||
|
||||
class SupabaseToolResultStorage:
|
||||
async def upload_json(
|
||||
self,
|
||||
*,
|
||||
bucket: str,
|
||||
path: str,
|
||||
payload: dict[str, object],
|
||||
) -> str:
|
||||
serialized = json.dumps(payload, ensure_ascii=True, separators=(",", ":"))
|
||||
await supabase_service.upload_bytes(
|
||||
bucket=bucket,
|
||||
path=path,
|
||||
content=serialized.encode("utf-8"),
|
||||
content_type="application/json",
|
||||
)
|
||||
return path
|
||||
|
||||
async def read_json(
|
||||
self,
|
||||
*,
|
||||
bucket: str,
|
||||
path: str,
|
||||
) -> dict[str, object] | None:
|
||||
raw = await supabase_service.download_bytes(bucket=bucket, path=path)
|
||||
decoded = json.loads(raw.decode("utf-8"))
|
||||
if isinstance(decoded, dict):
|
||||
return decoded
|
||||
return None
|
||||
|
||||
|
||||
def create_tool_result_storage() -> ToolResultStorage:
|
||||
return SupabaseToolResultStorage()
|
||||
Reference in New Issue
Block a user