Repository Analysis

AstrBotDevs/AstrBot

AI Agent Assistant & development framework that integrates lots of IM platforms, LLMs, plugins and AI feature, and can be your openclaw alternative. ✨

14.9 Low AI signal View on GitHub
14.9
Adjusted Score
14.9
Raw Score
100%
Time Factor
2026-05-30
Last Push
33,434
Stars
Python
Language
277,065
Lines of Code
1335
Files
3721
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 19HIGH 49MEDIUM 142LOW 3511

Pattern Findings

3721 matches across 15 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers1828 hits · 1729 pts
SeverityFileLineSnippet
LOWruntime_bootstrap.py12def _try_patch_aiohttp_ssl_context(
LOWruntime_bootstrap.py36def configure_runtime_ca_bundle(log_obj: Any | None = None) -> bool:
LOWruntime_bootstrap.py47def initialize_runtime_bootstrap(log_obj: Any | None = None) -> bool:
LOWastrbot/core/log.py232 def _ensure_logger_enricher_filter(cls, logger: logging.Logger) -> None:
LOWastrbot/core/log.py243 def _ensure_logger_intercept_handler(cls, logger: logging.Logger) -> None:
LOWastrbot/core/zip_updator.py161 def github_api_release_parser(self, releases: list) -> list:
LOWastrbot/core/zip_updator.py293 def _resolve_archive_root_dir(entries: list[str]) -> str:
LOWastrbot/core/zip_updator.py322 def _finalize_extracted_archive(
LOWastrbot/core/astr_main_agent.py723async def _compress_image_for_provider(
LOWastrbot/core/astr_main_agent.py737def _is_generated_compressed_image_path(
LOWastrbot/core/astr_main_agent.py333def _get_workspace_path_for_umo(umo: str) -> Path:
LOWastrbot/core/astr_main_agent.py338def _apply_workspace_extra_prompt(
LOWastrbot/core/astr_main_agent.py399def _filter_skills_for_current_config(
LOWastrbot/core/astr_main_agent.py431async def _ensure_persona_and_skills(
LOWastrbot/core/astr_main_agent.py641def _append_quoted_image_attachment(req: ProviderRequest, image_path: str) -> None:
LOWastrbot/core/astr_main_agent.py653def _append_quoted_audio_attachment(req: ProviderRequest, audio_path: str) -> None:
LOWastrbot/core/astr_main_agent.py686def _get_quoted_message_parser_settings(
LOWastrbot/core/astr_main_agent.py1114def _proactive_cron_job_tools(req: ProviderRequest, plugin_context: Context) -> None:
LOWastrbot/core/astr_main_agent.py1176def _get_fallback_chat_providers(
LOWastrbot/core/astr_main_agent.py1211def _provider_supports_modality(provider: Provider, modality: str) -> bool:
LOWastrbot/core/astr_main_agent.py1216def _select_image_chat_provider(
LOWastrbot/core/astr_agent_tool_exec.py56 def _collect_image_urls_from_args(cls, image_urls_raw: T.Any) -> list[str]:
LOWastrbot/core/astr_agent_tool_exec.py75 async def _collect_image_urls_from_message(
LOWastrbot/core/astr_agent_tool_exec.py100 async def _collect_handoff_image_urls(
LOWastrbot/core/astr_agent_tool_exec.py188 def _get_runtime_computer_tools(
LOWastrbot/core/astr_agent_tool_exec.py371 async def _execute_handoff_background(
LOWastrbot/core/astr_agent_tool_exec.py387 async def _run_handoff_in_background() -> None:
LOWastrbot/core/astr_agent_tool_exec.py501 async def _wake_main_agent_for_background_result(
LOWastrbot/core/astr_agent_run_util.py61def _build_tool_call_status_message(tool_info: dict | None) -> str:
LOWastrbot/core/astr_agent_run_util.py67def _build_tool_result_status_message(
LOWastrbot/core/astr_agent_run_util.py90def _should_buffer_llm_result(
LOWastrbot/core/astr_agent_run_util.py102def _merge_buffered_llm_chains(
LOWastrbot/core/conversation_mgr.py28 def register_on_session_deleted(
LOWastrbot/core/conversation_mgr.py146 async def delete_conversations_by_user_id(self, unified_msg_origin: str) -> None:
LOWastrbot/core/conversation_mgr.py226 async def get_filtered_conversations(
LOWastrbot/core/conversation_mgr.py288 async def update_conversation_title(
LOWastrbot/core/conversation_mgr.py310 async def update_conversation_persona_id(
LOWastrbot/core/conversation_mgr.py367 async def get_human_readable_context(
LOWastrbot/core/updator.py25 def terminate_child_processes(self) -> None:
LOWastrbot/core/updator.py76 def _build_frozen_reboot_args(self) -> list[str]:
LOWastrbot/core/updator.py87 def _reset_pyinstaller_environment() -> None:
LOWastrbot/core/persona_error_reply.py9def normalize_persona_custom_error_message(value: object) -> str | None:
LOWastrbot/core/persona_error_reply.py17def extract_persona_custom_error_message_from_persona(
LOWastrbot/core/persona_error_reply.py26def extract_persona_custom_error_message_from_event(event: Any) -> str | None:
LOWastrbot/core/persona_error_reply.py37def set_persona_custom_error_message_on_event(
LOWastrbot/core/persona_error_reply.py50async def resolve_persona_custom_error_message(
LOWastrbot/core/persona_error_reply.py72async def resolve_event_conversation_persona_id(
LOWastrbot/core/core_lifecycle.py83 async def _init_or_reload_subagent_orchestrator(self) -> None:
LOWastrbot/core/core_lifecycle.py101 def _warn_about_unset_default_chat_provider(self) -> None:
LOWastrbot/core/core_lifecycle.py435 async def reload_pipeline_scheduler(self, conf_id: str) -> None:
LOWastrbot/core/pipeline/bootstrap.py34def ensure_builtin_stages_registered() -> None:
LOWastrbot/core/pipeline/rate_limit_check/stage.py87 def _remove_expired_timestamps(
LOWastrbot/core/pipeline/process_stage/follow_up.py46def _get_follow_up_order_state(umo: str) -> dict[str, object]:
LOWastrbot/core/pipeline/process_stage/follow_up.py62def _advance_follow_up_turn_locked(state: dict[str, object]) -> None:
LOWastrbot/core/pipeline/process_stage/follow_up.py80def _allocate_follow_up_order(umo: str) -> int:
LOWastrbot/core/pipeline/process_stage/follow_up.py111async def _activate_and_wait_follow_up_turn(umo: str, seq: int) -> None:
LOWastrbot/core/pipeline/process_stage/follow_up.py150async def _monitor_follow_up_ticket(
LOWastrbot/core/pipeline/process_stage/follow_up.py203async def prepare_follow_up_capture(capture: FollowUpCapture) -> tuple[bool, bool]:
LOWastrbot/core/pipeline/process_stage/follow_up.py213async def finalize_follow_up_capture(
LOW…line/process_stage/method/agent_sub_stages/internal.py531async def _record_internal_agent_stats(
1768 more matches not shown…
Excessive Try-Catch Wrapping978 hits · 1003 pts
SeverityFileLineSnippet
LOWmain.py111 except Exception as e:
LOWruntime_bootstrap.py42 except Exception as exc:
LOWastrbot/core/persona_mgr.py409 except Exception as e:
LOWastrbot/core/initial_loader.py31 except Exception as e:
LOWastrbot/core/log.py353 except Exception:
LOWastrbot/core/log.py380 except Exception as e:
LOWastrbot/core/astrbot_config_mgr.py90 except Exception:
LOWastrbot/core/astrbot_config_mgr.py215 except Exception as e:
LOWastrbot/core/zip_updator.py116 except Exception as e:
LOWastrbot/core/zip_updator.py156 except Exception as e:
LOWastrbot/core/zip_updator.py241 except Exception as e:
LOWastrbot/core/zip_updator.py342 except Exception:
LOWastrbot/core/zip_updator.py363 except Exception:
LOWastrbot/core/file_token_service.py55 except Exception:
LOWastrbot/core/astr_main_agent.py732 except Exception as exc: # noqa: BLE001
LOWastrbot/core/astr_main_agent.py262 except Exception as exc: # noqa: BLE001
LOWastrbot/core/astr_main_agent.py350 except Exception as exc: # noqa: BLE001
LOWastrbot/core/astr_main_agent.py577 except Exception:
LOWastrbot/core/astr_main_agent.py634 except Exception as exc: # noqa: BLE001
LOWastrbot/core/astr_main_agent.py667 except Exception as exc: # noqa: BLE001
LOWastrbot/core/astr_main_agent.py831 except Exception as exc: # noqa: BLE001
LOWastrbot/core/astr_main_agent.py868 except Exception as exc: # noqa: BLE001
LOWastrbot/core/astr_main_agent.py985 except Exception as e:
LOWastrbot/core/astr_main_agent.py1395 except Exception as exc: # noqa: BLE001
LOWastrbot/core/astr_main_agent.py1428 except Exception as exc: # noqa: BLE001
MEDIUMastrbot/core/astr_agent_tool_exec.py160def _run_in_background() -> None:
MEDIUMastrbot/core/astr_agent_tool_exec.py387def _run_handoff_in_background() -> None:
LOWastrbot/core/astr_agent_tool_exec.py90 except Exception as e:
LOWastrbot/core/astr_agent_tool_exec.py168 except Exception as e: # noqa: BLE001
LOWastrbot/core/astr_agent_tool_exec.py348 except Exception:
LOWastrbot/core/astr_agent_tool_exec.py395 except Exception as e: # noqa: BLE001
LOWastrbot/core/astr_agent_tool_exec.py439 except Exception as e:
LOWastrbot/core/astr_agent_tool_exec.py480 except Exception as e:
LOWastrbot/core/astr_agent_tool_exec.py682 except Exception as e:
LOWastrbot/core/astr_agent_tool_exec.py761 except Exception:
LOWastrbot/core/astr_agent_tool_exec.py767 except Exception as e:
LOWastrbot/core/astr_agent_tool_exec.py792 except Exception as e:
LOWastrbot/core/astr_agent_run_util.py303 except Exception as e:
LOWastrbot/core/astr_agent_run_util.py332 except Exception:
LOWastrbot/core/astr_agent_run_util.py457 except Exception as e:
LOWastrbot/core/astr_agent_run_util.py491 except Exception as e:
LOWastrbot/core/astr_agent_run_util.py551 except Exception as e:
LOWastrbot/core/astr_agent_run_util.py566 except Exception as e:
LOWastrbot/core/astr_agent_run_util.py591 except Exception as e:
LOWastrbot/core/astr_agent_run_util.py597 except Exception as e:
LOWastrbot/core/conversation_mgr.py53 except Exception as e:
LOWastrbot/core/updator.py126 except Exception as e:
LOWastrbot/core/persona_error_reply.py33 except Exception:
LOWastrbot/core/persona_error_reply.py45 except Exception:
LOWastrbot/core/core_lifecycle.py98 except Exception as e:
LOWastrbot/core/core_lifecycle.py187 except Exception as e:
LOWastrbot/core/core_lifecycle.py328 except Exception as e:
LOWastrbot/core/core_lifecycle.py374 except Exception as e:
LOWastrbot/core/core_lifecycle.py391 except Exception as e:
LOWastrbot/core/pipeline/context_utils.py62 except Exception as e:
LOW…bot/core/pipeline/process_stage/method/star_request.py54 except Exception as e:
LOW…line/process_stage/method/agent_sub_stages/internal.py207 except Exception:
LOW…line/process_stage/method/agent_sub_stages/internal.py418 except Exception as e:
LOW…line/process_stage/method/agent_sub_stages/internal.py431 except Exception:
LOW…line/process_stage/method/agent_sub_stages/internal.py570 except Exception as e:
918 more matches not shown…
Unused Imports445 hits · 404 pts
SeverityFileLineSnippet
LOWastrbot/core/log.py20
LOWastrbot/core/subagent_orchestrator.py1
LOWastrbot/core/__init__.py7
LOWastrbot/core/__init__.py13
LOWastrbot/core/__init__.py16
LOWastrbot/core/__init__.py19
LOWastrbot/core/__init__.py25
LOWastrbot/core/astr_main_agent.py1
LOWastrbot/core/exceptions.py1
LOWastrbot/core/persona_error_reply.py1
LOWastrbot/core/pipeline/__init__.py8
LOWastrbot/core/pipeline/__init__.py13
LOWastrbot/core/pipeline/__init__.py13
LOWastrbot/core/pipeline/__init__.py18
LOWastrbot/core/pipeline/__init__.py21
LOWastrbot/core/pipeline/__init__.py22
LOWastrbot/core/pipeline/__init__.py23
LOWastrbot/core/pipeline/__init__.py24
LOWastrbot/core/pipeline/__init__.py25
LOWastrbot/core/pipeline/__init__.py26
LOWastrbot/core/pipeline/__init__.py27
LOWastrbot/core/pipeline/__init__.py28
LOWastrbot/core/pipeline/__init__.py29
LOWastrbot/core/pipeline/__init__.py72
LOWastrbot/core/pipeline/__init__.py73
LOWastrbot/core/pipeline/__init__.py74
LOWastrbot/core/pipeline/__init__.py75
LOWastrbot/core/pipeline/__init__.py76
LOWastrbot/core/pipeline/__init__.py77
LOWastrbot/core/pipeline/__init__.py78
LOWastrbot/core/pipeline/__init__.py79
LOWastrbot/core/pipeline/__init__.py80
LOWastrbot/core/pipeline/context.py1
LOWastrbot/core/pipeline/stage.py1
LOWastrbot/core/pipeline/process_stage/follow_up.py1
LOW…e/process_stage/method/agent_sub_stages/third_party.py33
LOW…e/process_stage/method/agent_sub_stages/third_party.py34
LOWastrbot/core/tools/registry.py1
LOWastrbot/core/tools/computer_tools/__init__.py1
LOWastrbot/core/tools/computer_tools/__init__.py1
LOWastrbot/core/tools/computer_tools/__init__.py1
LOWastrbot/core/tools/computer_tools/__init__.py6
LOWastrbot/core/tools/computer_tools/__init__.py6
LOWastrbot/core/tools/computer_tools/__init__.py6
LOWastrbot/core/tools/computer_tools/__init__.py6
LOWastrbot/core/tools/computer_tools/__init__.py6
LOWastrbot/core/tools/computer_tools/__init__.py6
LOWastrbot/core/tools/computer_tools/__init__.py14
LOWastrbot/core/tools/computer_tools/__init__.py14
LOWastrbot/core/tools/computer_tools/__init__.py15
LOWastrbot/core/tools/computer_tools/__init__.py16
LOWastrbot/core/tools/computer_tools/__init__.py16
LOWastrbot/core/tools/computer_tools/__init__.py16
LOWastrbot/core/tools/computer_tools/__init__.py16
LOWastrbot/core/tools/computer_tools/__init__.py16
LOWastrbot/core/tools/computer_tools/__init__.py16
LOWastrbot/core/tools/computer_tools/__init__.py16
LOWastrbot/core/tools/computer_tools/__init__.py16
LOWastrbot/core/tools/computer_tools/__init__.py16
LOWastrbot/core/tools/computer_tools/__init__.py16
385 more matches not shown…
Decorative Section Separators71 hits · 232 pts
SeverityFileLineSnippet
MEDIUM…ore/platform/sources/wecom_ai_bot/WXBizJsonMsgCrypt.py7# ------------------------------------------------------------------------
MEDIUMastrbot/core/star/session_llm_manager.py10 # =============================================================================
MEDIUMastrbot/core/star/session_llm_manager.py12 # =============================================================================
MEDIUMastrbot/core/star/session_llm_manager.py81 # =============================================================================
MEDIUMastrbot/core/star/session_llm_manager.py83 # =============================================================================
MEDIUMastrbot/core/star/session_llm_manager.py156 # =============================================================================
MEDIUMastrbot/core/star/session_llm_manager.py158 # =============================================================================
MEDIUMastrbot/core/backup/constants.py37# ============================================================
MEDIUMastrbot/core/backup/constants.py39# ============================================================
MEDIUMastrbot/core/computer/booters/bay_manager.py21# ---------------------------------------------------------------------------
MEDIUMastrbot/core/computer/booters/bay_manager.py23# ---------------------------------------------------------------------------
MEDIUMastrbot/core/computer/booters/bay_manager.py46 # ------------------------------------------------------------------
MEDIUMastrbot/core/computer/booters/bay_manager.py48 # ------------------------------------------------------------------
MEDIUMastrbot/core/computer/booters/bay_manager.py233 # ------------------------------------------------------------------
MEDIUMastrbot/core/computer/booters/bay_manager.py235 # ------------------------------------------------------------------
MEDIUMtests/conftest.py31# ============================================================
MEDIUMtests/conftest.py33# ============================================================
MEDIUMtests/conftest.py104# ============================================================
MEDIUMtests/conftest.py106# ============================================================
MEDIUMtests/conftest.py163# ============================================================
MEDIUMtests/conftest.py165# ============================================================
MEDIUMtests/conftest.py235# ============================================================
MEDIUMtests/conftest.py237# ============================================================
MEDIUMtests/conftest.py270# ============================================================
MEDIUMtests/conftest.py272# ============================================================
MEDIUMtests/conftest.py289# ============================================================
MEDIUMtests/conftest.py291# ============================================================
MEDIUMtests/conftest.py340# ============================================================
MEDIUMtests/conftest.py342# ============================================================
MEDIUMtests/conftest.py359# ============================================================
MEDIUMtests/conftest.py361# ============================================================
MEDIUMtests/test_shipyard_neo_booter.py12# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_shipyard_neo_booter.py14# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_shipyard_neo_booter.py138# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_shipyard_neo_booter.py140# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_shipyard_neo_booter.py225# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_shipyard_neo_booter.py227# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_profile_aware_tools.py277# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_profile_aware_tools.py279# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_profile_aware_tools.py11# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_profile_aware_tools.py13# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_profile_aware_tools.py56# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_profile_aware_tools.py58# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_profile_aware_tools.py164# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_profile_aware_tools.py166# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_computer_config.py16# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_computer_config.py18# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_computer_config.py169# ═══════════════════════════════════════════════════════════════
MEDIUMtests/test_computer_config.py171# ═══════════════════════════════════════════════════════════════
MEDIUMdocs/zh/use/astrbot-agent-sandbox.md260 # ── 标准 Python 沙箱 ────────────────────────
MEDIUMdocs/zh/use/astrbot-agent-sandbox.md282 # ── 数据科学沙箱(更多资源) ──────────
MEDIUMdocs/zh/use/astrbot-agent-sandbox.md299 # ── 浏览器 + Python 多容器沙箱 ───────
MEDIUMdocs/en/use/astrbot-agent-sandbox.md157 # ── Standard Python sandbox ────────────────────────
MEDIUMdocs/en/use/astrbot-agent-sandbox.md179 # ── Data-science sandbox (more resources) ──────────
MEDIUMdocs/en/use/astrbot-agent-sandbox.md196 # ── Browser + Python multi-container sandbox ───────
MEDIUMscripts/start-with-neo.sh2# ──────────────────────────────────────────────────────────────
MEDIUMscripts/start-with-neo.sh8# ──────────────────────────────────────────────────────────────
MEDIUMscripts/start-with-neo.sh11# ── 路径 ──────────────────────────────────────────────────────
MEDIUMscripts/start-with-neo.sh23# ── 颜色 ──────────────────────────────────────────────────────
MEDIUMscripts/start-with-neo.sh35# ── 清理函数 ──────────────────────────────────────────────────
11 more matches not shown…
Deep Nesting276 hits · 230 pts
SeverityFileLineSnippet
LOWastrbot/core/astr_main_agent.py274
LOWastrbot/core/astr_main_agent.py431
LOWastrbot/core/astr_main_agent.py748
LOWastrbot/core/astr_main_agent.py1121
LOWastrbot/core/astr_main_agent.py1243
LOWastrbot/core/astr_agent_tool_exec.py708
LOWastrbot/core/astr_agent_tool_exec.py75
LOWastrbot/core/astr_agent_tool_exec.py129
LOWastrbot/core/astr_agent_tool_exec.py414
LOWastrbot/core/astr_agent_tool_exec.py461
LOWastrbot/core/astr_agent_tool_exec.py612
LOWastrbot/core/astr_agent_run_util.py115
LOWastrbot/core/astr_agent_run_util.py495
LOWastrbot/core/astr_agent_run_util.py572
LOWastrbot/core/conversation_mgr.py367
LOWastrbot/core/updator.py146
LOW…line/process_stage/method/agent_sub_stages/internal.py162
LOW…e/process_stage/method/agent_sub_stages/third_party.py62
LOW…e/process_stage/method/agent_sub_stages/third_party.py289
LOWastrbot/core/pipeline/result_decorate/stage.py104
LOWastrbot/core/pipeline/result_decorate/stage.py126
LOWastrbot/core/pipeline/waking_check/stage.py77
LOWastrbot/core/pipeline/respond/stage.py169
LOWastrbot/core/pipeline/preprocess_stage/stage.py25
LOWastrbot/core/tools/registry.py33
LOWastrbot/core/tools/message_tools.py81
LOWastrbot/core/tools/message_tools.py127
LOWastrbot/core/tools/computer_tools/fs.py762
LOWastrbot/core/config/astrbot_config.py157
LOWastrbot/core/platform/astr_message_event.py142
LOWastrbot/core/platform/manager.py309
LOW…bot/core/platform/sources/dingtalk/dingtalk_adapter.py149
LOW…bot/core/platform/sources/dingtalk/dingtalk_adapter.py531
LOW…bot/core/platform/sources/dingtalk/dingtalk_adapter.py748
LOW…bot/core/platform/sources/dingtalk/dingtalk_adapter.py756
LOWastrbot/core/platform/sources/kook/kook_client.py189
LOWastrbot/core/platform/sources/kook/kook_client.py300
LOWastrbot/core/platform/sources/kook/kook_adapter.py132
LOWastrbot/core/platform/sources/kook/kook_adapter.py212
LOWastrbot/core/platform/sources/kook/kook_adapter.py360
LOW…atform/sources/qqofficial_webhook/qo_webhook_server.py99
LOW…t/core/platform/sources/weixin_oc/weixin_oc_adapter.py1138
LOW…t/core/platform/sources/weixin_oc/weixin_oc_adapter.py1683
LOW…ore/platform/sources/discord/discord_platform_event.py128
LOW…e/platform/sources/discord/discord_platform_adapter.py198
LOW…atform/sources/aiocqhttp/aiocqhttp_platform_adapter.py198
LOW…/platform/sources/aiocqhttp/aiocqhttp_message_event.py35
LOW…/platform/sources/aiocqhttp/aiocqhttp_message_event.py70
LOW…/platform/sources/aiocqhttp/aiocqhttp_message_event.py115
LOW…/platform/sources/aiocqhttp/aiocqhttp_message_event.py184
LOWastrbot/core/platform/sources/lark/lark_event.py194
LOWastrbot/core/platform/sources/lark/lark_event.py330
LOWastrbot/core/platform/sources/lark/lark_event.py434
LOWastrbot/core/platform/sources/lark/lark_event.py957
LOWastrbot/core/platform/sources/lark/lark_adapter.py130
LOWastrbot/core/platform/sources/lark/lark_adapter.py155
LOWastrbot/core/platform/sources/lark/lark_adapter.py190
LOWastrbot/core/platform/sources/wecom/wecom_event.py82
LOWastrbot/core/platform/sources/wecom/wecom_adapter.py311
LOWastrbot/core/platform/sources/wecom/wecom_adapter.py361
216 more matches not shown…
Hallucination Indicators19 hits · 190 pts
SeverityFileLineSnippet
CRITICALastrbot/core/platform/sources/lark/lark_event.py775 response = await self.bot.im.v1.message_reaction.acreate(request)
CRITICALastrbot/core/platform/sources/lark/lark_event.py823 response = await self.bot.cardkit.v1.card.acreate(request)
CRITICALastrbot/core/platform/sources/lark/lark_event.py889 response = await self.bot.cardkit.v1.card_element.acontent(request)
CRITICALastrbot/core/platform/sources/lark/lark_event.py929 response = await self.bot.cardkit.v1.card.asettings(request)
CRITICALastrbot/core/platform/sources/lark/lark_adapter.py115 response = await self.lark_api.im.v1.message_resource.aget(request)
CRITICALastrbot/core/platform/sources/lark/lark_adapter.py348 response = await self.lark_api.im.v1.message.aget(request)
CRITICALastrbot/core/provider/sources/gemini_source.py21from astrbot.core.exceptions import EmptyModelOutputError
CRITICALastrbot/core/provider/sources/anthropic_source.py16from astrbot.core.exceptions import EmptyModelOutputError
CRITICALastrbot/core/provider/sources/openai_source.py36from astrbot.core.exceptions import EmptyModelOutputError
CRITICALastrbot/core/provider/sources/openai_tts_api_source.py51 async with self.client.audio.speech.with_streaming_response.create(
CRITICALastrbot/core/agent/runners/tool_loop_agent_runner.py32from astrbot.core.exceptions import EmptyModelOutputError
CRITICALastrbot/core/db/vec_db/faiss_impl/vec_db.py7from astrbot.core.exceptions import KnowledgeBaseUploadError
CRITICALastrbot/core/knowledge_base/kb_helper.py13from astrbot.core.exceptions import KnowledgeBaseUploadError
CRITICALtests/test_openai_source.py10from astrbot.core.exceptions import EmptyModelOutputError
CRITICALtests/test_anthropic_kimi_code_provider.py7from astrbot.core.exceptions import EmptyModelOutputError
CRITICALtests/test_gemini_source.py3from astrbot.core.exceptions import EmptyModelOutputError
CRITICALtests/test_kb_import.py11from astrbot.core.exceptions import KnowledgeBaseUploadError
CRITICALtests/test_tool_loop_agent_runner.py22from astrbot.core.exceptions import EmptyModelOutputError
CRITICALtests/unit/test_faiss_vec_db.py6from astrbot.core.exceptions import KnowledgeBaseUploadError
Cross-File Repetition25 hits · 125 pts
SeverityFileLineSnippet
HIGHastrbot/core/platform/sources/kook/kook_types.py0默认配置预期场景为发送数据,若需要使用此数据类接收数据并尽量原样json输出, 请`exclude_none=false, exclude_unset=true`
HIGHastrbot/core/platform/sources/kook/kook_types.py0默认配置预期场景为发送数据,若需要使用此数据类接收数据并尽量原样json输出, 请`exclude_none=false, exclude_unset=true`
HIGHastrbot/core/platform/sources/kook/kook_types.py0默认配置预期场景为发送数据,若需要使用此数据类接收数据并尽量原样json输出, 请`exclude_none=false, exclude_unset=true`
HIGHastrbot/core/platform/sources/kook/kook_types.py0默认配置预期场景为发送数据,若需要使用此数据类接收数据并尽量原样json输出, 请`exclude_none=false, exclude_unset=true`
HIGHastrbot/core/db/po.py0persona is a set of instructions for llms to follow. it can be used to customize the behavior of llms.
HIGHdocs/zh/dev/star/plugin.md0persona is a set of instructions for llms to follow. it can be used to customize the behavior of llms.
HIGHdocs/zh/dev/star/guides/ai.md0persona is a set of instructions for llms to follow. it can be used to customize the behavior of llms.
HIGHdocs/en/dev/star/guides/ai.md0persona is a set of instructions for llms to follow. it can be used to customize the behavior of llms.
HIGHastrbot/core/db/po.py0a list of strings, each representing a dialog to start with
HIGHdocs/zh/dev/star/plugin.md0a list of strings, each representing a dialog to start with
HIGHdocs/zh/dev/star/guides/ai.md0a list of strings, each representing a dialog to start with
HIGHdocs/en/dev/star/guides/ai.md0a list of strings, each representing a dialog to start with
HIGHastrbot/core/db/po.py0none means use all tools for default, empty list means no tools, otherwise a list of tool names.
HIGHdocs/zh/dev/star/plugin.md0none means use all tools for default, empty list means no tools, otherwise a list of tool names.
HIGHdocs/zh/dev/star/guides/ai.md0none means use all tools for default, empty list means no tools, otherwise a list of tool names.
HIGHdocs/en/dev/star/guides/ai.md0none means use all tools for default, empty list means no tools, otherwise a list of tool names.
HIGHastrbot/core/db/po.py0llm 人格类。 在 v4.0.0 版本及之后,推荐使用上面的 persona 类。并且, mood_imitation_dialogs 字段已被废弃。
HIGHdocs/zh/dev/star/plugin.md0llm 人格类。 在 v4.0.0 版本及之后,推荐使用上面的 persona 类。并且, mood_imitation_dialogs 字段已被废弃。
HIGHdocs/zh/dev/star/guides/ai.md0llm 人格类。 在 v4.0.0 版本及之后,推荐使用上面的 persona 类。并且, mood_imitation_dialogs 字段已被废弃。
HIGHtests/test_computer_fs_tools.py0<?xml version="1.0" encoding="utf-8"?> <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
HIGHtests/test_epub_parser.py0<?xml version="1.0" encoding="utf-8"?> <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
HIGHtests/test_epub_parser.py0<?xml version="1.0" encoding="utf-8"?> <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
HIGHdocs/zh/dev/star/plugin.md0<div style="font-size: 32px;"> <h1 style="color: black">todo list</h1> <ul> {% for item in items %} <li>{{ item }}</li>
HIGHdocs/zh/dev/star/guides/html-to-pic.md0<div style="font-size: 32px;"> <h1 style="color: black">todo list</h1> <ul> {% for item in items %} <li>{{ item }}</li>
HIGHdocs/en/dev/star/guides/html-to-pic.md0<div style="font-size: 32px;"> <h1 style="color: black">todo list</h1> <ul> {% for item in items %} <li>{{ item }}</li>
Docstring Block Structure20 hits · 100 pts
SeverityFileLineSnippet
HIGHastrbot/core/astrbot_config_mgr.py178删除指定配置文件 Args: conf_id: 配置文件的 UUID Returns: bool: 删除是否成功 Raises:
HIGHastrbot/core/file_token_service.py32向令牌服务注册一个文件。 Args: file_path(str): 文件路径 timeout(float): 超时时间,单位秒(可选) Returns:
HIGHastrbot/core/file_token_service.py76根据令牌获取文件路径,使用后令牌失效。 Args: file_token(str): 注册时返回的令牌 Returns: str: 文件路径
HIGHastrbot/core/platform/platform.py154统一 Webhook 回调入口。 支持统一 Webhook 模式的平台需要实现此方法。 当 Dashboard 收到 /api/platform/webhook/{uuid} 请求时,会调用此方法。
HIGHastrbot/core/platform/sources/misskey/misskey_api.py834通用消息发送函数:统一处理文本+媒体发送 Args: message_type: 消息类型 ('chat', 'room', 'note') target_id: 目标ID
HIGHastrbot/core/provider/sources/bailian_rerank_source.py126解析API响应结果 Args: data: API响应数据 Returns: 重排序结果列表 Raises: Ba
HIGHastrbot/core/utils/media_utils.py83使用ffmpeg转换视频格式 Args: video_path: 原始视频文件路径 output_format: 目标格式,默认mp4 output_path: 输出文件路径,如果为
HIGHastrbot/core/agent/mcp_client.py592Call MCP tool with automatic reconnection on failure, max 2 retries. Args: tool_name: tool name
HIGHastrbot/core/star/star_tools.py66根据session(unified_msg_origin)主动发送消息 Args: session: 消息会话。通过event.session或者event.unified_msg_origin获取
HIGHastrbot/core/star/star_tools.py266返回插件数据目录的绝对路径。 此方法会在 data/plugin_data 目录下为插件创建一个专属的数据目录。如果未提供插件名称, 会自动从调用栈中获取插件信息。 Args:
HIGHastrbot/core/star/context.py167Run an agent loop that allows the LLM to call tools iteratively until a final answer is produced. If you do not
HIGHastrbot/core/star/context.py267获取当前使用的聊天模型 Provider ID。 Args: umo: unified_message_origin。消息会话来源 ID。 Returns:
HIGHastrbot/core/star/context.py363获取当前使用的用于文本生成任务的 LLM Provider(Chat_Completion 类型)。 Args: umo: unified_message_origin 值,如果传入并且用户启用了提
HIGHastrbot/core/star/context.py388获取当前使用的用于 TTS 任务的 Provider。 Args: umo: unified_message_origin 值,如果传入,则使用该会话偏好的提供商。 Returns
HIGHastrbot/core/star/context.py408获取当前使用的用于 STT 任务的 Provider。 Args: umo: unified_message_origin 值,如果传入,则使用该会话偏好的提供商。 Returns
HIGHastrbot/core/star/context.py449根据 session(unified_msg_origin) 主动发送消息。 Args: session: 消息会话。通过 event.session 或者 event.unified_msg_or
HIGHastrbot/core/knowledge_base/kb_helper.py588从 URL 上传并处理文档(带原子性保证和失败清理) Args: url: 要提取内容的网页 URL chunk_size: 文本块大小 chunk_o
HIGHastrbot/core/knowledge_base/kb_mgr.py369从 URL 上传文档到指定的知识库 Args: kb_id: 知识库 ID url: 要提取内容的网页 URL chunk_size: 文本块大小
HIGHastrbot/core/knowledge_base/parsers/url_parser.py31 使用 Tavily API 从 URL 提取主要文本内容。 这是 web_searcher 插件中 tavily_extract_web_page 方法的简化版本, 专门为知识库模块设计,不
HIGHastrbot/core/knowledge_base/parsers/text_parser.py16解析文本文件 尝试使用多种编码解析文件内容。 Args: file_content: 文件内容 file_name: 文件名 Return
Self-Referential Comments24 hits · 64 pts
SeverityFileLineSnippet
MEDIUMastrbot/core/agent/mcp_client.py454 # Create a new client session
MEDIUMastrbot/core/agent/mcp_client.py479 # Create a new client session
MEDIUMastrbot/core/agent/mcp_client.py522 # Create a new client session
MEDIUMastrbot/core/db/po.py18 """This class represents the statistics of bot usage across different platforms.
MEDIUMastrbot/core/db/po.py200 """This class represents preferences for bots."""
MEDIUMastrbot/core/db/po.py227 """This class represents the message history for a specific platform.
MEDIUMastrbot/core/db/po.py318 """This class represents attachments for messages in AstrBot.
MEDIUMastrbot/core/db/po.py386 """This class represents projects for organizing ChatUI conversations.
MEDIUMastrbot/core/db/po.py422 """This class represents the relationship between platform sessions and ChatUI projects."""
MEDIUMtests/test_security_fixes.py17 # Create an instance and test that random string generation works
MEDIUMtests/test_security_fixes.py62 # Create a provider with test config
MEDIUMtests/test_security_fixes.py103 # Create a context similar to what's used in io.py
MEDIUMtests/unit/test_event_bus.py77 # Create a mock event
MEDIUMtests/unit/test_computer.py160 # Create a test file
MEDIUMtests/unit/test_core_lifecycle.py663 # Create a task that completes quickly for testing
MEDIUMtests/unit/test_core_lifecycle.py713 # Create a mock handler
MEDIUMtests/unit/test_core_lifecycle.py832 # Create a mock plugin that raises exception on termination
MEDIUMtests/unit/test_star_base.py20 # Create a mock context with get_config method
MEDIUMtests/unit/test_star_base.py24 # Create a concrete Star subclass for testing
MEDIUMtests/unit/test_tool_conflict_resolution.py79 # Create a mock object without 'active' attribute
MEDIUMtests/unit/test_config.py175 # Create a path that definitely doesn't exist
MEDIUMtests/agent/test_context_manager.py246 # Create a mock compressor
MEDIUMtests/agent/test_context_manager.py637 # Create a mock compressor
MEDIUMtests/agent/test_context_manager.py660 # Create a mock compressor
Over-Commented Block18 hits · 18 pts
SeverityFileLineSnippet
LOWk8s/astrbot/04-service-loadbalancer.yaml21 # targetPort: 6195
LOWk8s/astrbot/03-service-nodeport.yaml21 # - name: wecom-wh
LOWastrbot/core/config/default.py521 "type": "mattermost",
LOWastrbot/core/config/default.py3481 },
LOWastrbot/core/config/default.py3501 # "type": "string",
LOW…bot/core/platform/sources/dingtalk/dingtalk_adapter.py701 # for segment in message_chain.chain:
LOWastrbot/core/platform/sources/kook/kook_config.py81
LOWastrbot/core/platform/sources/kook/kook_config.py101# # 日志配置
LOWastrbot/core/platform/sources/kook/kook_config.py121# "enable_connection_pooling": True, # 是否启用连接池
LOWastrbot/core/platform/sources/webchat/webchat_event.py181 await web_chat_back_queue.put(payload)
LOWastrbot/core/utils/tencent_record_helper.py41 # with wave.open(wav_path, 'rb') as wav:
LOWchangelogs/v4.2.0.md1# What's Changed
LOWchangelogs/v4.2.1.md1# What's Changed
LOWdashboard/src/router/MainRoutes.ts141 // component: () => import('@/views/AlkaidPage.vue'),
LOW.github/auto_assign.yml21
LOW.github/workflows/codeql.yml1# For most projects, this workflow file will not need changing; you simply need
LOW.github/workflows/codeql.yml61 # Initializes the CodeQL tools for scanning.
LOWopenspec/config.yaml1schema: spec-driven
Cross-Language Confusion4 hits · 15 pts
SeverityFileLineSnippet
HIGHastrbot/core/utils/t2i/network_strategy.py34 "T2I Shiki runtime not found at %s. Run `cd dashboard && pnpm run build:t2i-shiki-runtime` to regenerate it.
HIGHastrbot/core/star/filter/command_group.py125 if self.equals(event.message_str.strip()):
HIGHastrbot/dashboard/routes/session_management.py616 "llm_enabled": true/false/null, // 可选,null表示不修改
HIGHastrbot/dashboard/routes/session_management.py617 "tts_enabled": true/false/null, // 可选
Redundant / Tautological Comments9 hits · 14 pts
SeverityFileLineSnippet
LOWastrbot/core/tools/computer_tools/fs.py709 # Check if file exists
LOWastrbot/core/provider/sources/openai_source.py788 # Check if this looks like OpenAI content-part format
LOWastrbot/core/provider/sources/openai_source.py807 # Check if the string is a JSON-encoded list (e.g., "[{'type': 'text', ...}]")
LOWastrbot/core/utils/trace.py53 # Check if trace recording is enabled
LOWastrbot/core/agent/mcp_client.py545 # Check if already reconnecting (useful for logging)
LOWastrbot/core/computer/booters/boxlite.py49 # Read file content
LOWastrbot/cli/utils/plugin.py219 # Check if plugin exists
LOWscripts/start-with-neo.sh198 # Check if process is still alive
LOW.github/auto_assign.yml19# Set 0 to add all the reviewers (default: 0)
AI Slop Vocabulary2 hits · 4 pts
SeverityFileLineSnippet
MEDIUMastrbot/core/knowledge_base/kb_helper.py88 # More robust regex to handle potential LLM formatting errors (spaces, newlines in tags)
MEDIUMdashboard/src/components/chat/LiveOrb.vue187 // Repeat once to make it seamless
Slop Phrases1 hit · 3 pts
SeverityFileLineSnippet
MEDIUM.github/workflows/codeql.yml55 # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippet
LOWscripts/start-with-neo.sh5# Usage: