feat: add Main Agent core service, tools, and Celery tasks (Phase 2)

数字员工大脑 — Main Agent 核心实现:
- MainAgentService: 目标分解(LLM)、任务调度、进度监控、失败重试、自主循环
- 4个 Main Agent 专有工具: create_task / assign_task / check_progress / notify_user
- Celery 异步任务: decompose_goal / execute_goal / execute_task / autonomy_tick
- Goal API 增强: decompose / execute-async / replan 端点

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
renjianbo
2026-05-08 19:58:53 +08:00
parent 02d7cf8f62
commit 926ec6c0a1
5 changed files with 980 additions and 2 deletions

View File

@@ -8,7 +8,7 @@ logger = logging.getLogger(__name__)
_registered = False
_EXPECTED_BUILTIN = 43
_EXPECTED_BUILTIN = 47
def ensure_builtin_tools_registered() -> None:
@@ -61,6 +61,10 @@ def ensure_builtin_tools_registered() -> None:
image_vision_tool,
speech_to_text_tool,
text_to_speech_tool,
main_agent_create_task,
main_agent_assign_task,
main_agent_check_progress,
main_agent_notify_user,
HTTP_REQUEST_SCHEMA,
FILE_READ_SCHEMA,
FILE_WRITE_SCHEMA,
@@ -104,6 +108,10 @@ def ensure_builtin_tools_registered() -> None:
IMAGE_VISION_SCHEMA,
SPEECH_TO_TEXT_SCHEMA,
TEXT_TO_SPEECH_SCHEMA,
MAIN_AGENT_CREATE_TASK_SCHEMA,
MAIN_AGENT_ASSIGN_TASK_SCHEMA,
MAIN_AGENT_CHECK_PROGRESS_SCHEMA,
MAIN_AGENT_NOTIFY_USER_SCHEMA,
)
tool_registry.register_builtin_tool("http_request", http_request_tool, HTTP_REQUEST_SCHEMA)
@@ -149,6 +157,10 @@ def ensure_builtin_tools_registered() -> None:
tool_registry.register_builtin_tool("image_vision", image_vision_tool, IMAGE_VISION_SCHEMA)
tool_registry.register_builtin_tool("speech_to_text", speech_to_text_tool, SPEECH_TO_TEXT_SCHEMA)
tool_registry.register_builtin_tool("text_to_speech", text_to_speech_tool, TEXT_TO_SPEECH_SCHEMA)
tool_registry.register_builtin_tool("create_task", main_agent_create_task, MAIN_AGENT_CREATE_TASK_SCHEMA)
tool_registry.register_builtin_tool("assign_task", main_agent_assign_task, MAIN_AGENT_ASSIGN_TASK_SCHEMA)
tool_registry.register_builtin_tool("check_progress", main_agent_check_progress, MAIN_AGENT_CHECK_PROGRESS_SCHEMA)
tool_registry.register_builtin_tool("notify_user", main_agent_notify_user, MAIN_AGENT_NOTIFY_USER_SCHEMA)
_registered = True
n = tool_registry.builtin_tool_count()