Skip to content

Latest commit

 

History

History
83 lines (61 loc) · 3.67 KB

File metadata and controls

83 lines (61 loc) · 3.67 KB

扩展与开发

Undefined 欢迎开发者参与共建和进行二次开发!

由于项目核心架构使用了全新的 Skills 系统、Onebot 协议适配层以及多队列并发模型,本篇文档旨在为你提供全面的扩展指导与开发准则。

核心目录结构

整体的源码挂载在 src/Undefined/ 下:

src/Undefined/
├── ai/            # AI 运行时核心组件 (client, prompt, tooling 工具组装, summary 短期摘要, multimodal 多模态)
├── bilibili/      # B站视频流解析、分段下载与异步发送
├── cognitive/     # 认知记忆系统底座 (向量存储, 史官合并/改写, 侧写生成, 任务队列)
├── skills/        # 技能插件核心目录 (存放所有的工具与智能体)
│   ├── tools/           # 基础原子的工具 (独立的功能单元,如读写文件、网络请求等)
│   ├── toolsets/        # 聚合工具集 (分组后的工具组)
│   │   └── cognitive/   # 认知记忆主动暴露工具 (search_events, get_profile 等)
│   ├── agents/          # 智能体 (独立自主的子 AI,负责处理诸如 Web 搜索、文件分析的具体长时任务)
│   ├── commands/        # 中心化斜杠指令系统 (实现如 /help, /stats, /addadmin 等平台功能)
│   └── anthropic_skills/# Anthropic 协议集成的外部 Skills (兼容 SKILL.md 格式)
├── services/      # 核心运行服务 (Queue 任务队列, Command 命令分发, Security 安全防护拦截)
├── utils/         # 通用支持工具组 (包含历史处理、JSON原子读写加锁 IO 操作等)
├── handlers.py    # 最外层 OneBot 消息分流处理层
└── onebot.py      # OneBot WebSocket 客户端核心连接

开发指南

callable.json 共享授权机制

在开发过程中,如何让你的 Agent 具备特定工具的访问权限,或让多个 Agent 进行合作调用? 查看 callable.md 了解如何通过维护 callable.json 来实现:

  • 细粒度的工具白名单权限配置。
  • 允许特定 Agent 相互调用的灵活授权。

开发自检 (代码规范、类型检查与 Git Hook)

修改完代码提交之前,请始终进行以下命令确认代码符合质量标准并拦截潜在的类型隐患:

uv run ruff format .
uv run ruff check .
uv run mypy .
uv run pytest tests/

如果你改动了跨平台控制台 apps/undefined-console/,或改动了 src/Undefined/webui/static/js/ 里的前端脚本,建议额外执行:

cd apps/undefined-console
npm install
npm run check

Git Hook

仓库内已经提供可维护的 git hook:

.githooks/pre-commit
.githooks/pre-tag

启用方式:

bash scripts/install_git_hooks.sh

启用后:

  • pre-commit 会执行 Python 的 ruff + mypy
  • 当提交包含 JS / Tauri / WebUI 前端相关改动时,还会自动执行 Biome + TypeScript + cargo fmt/check

注意:项目严格遵守类型注释规范,mypy . 通过是代码入库的前提条件;跨平台控制台相关改动则以 npm run check 通过为准。