122 lines
6.8 KiB
Markdown
122 lines
6.8 KiB
Markdown
|
|
---
|
|||
|
|
title: 数据库 Entity 全景
|
|||
|
|
created: 2026-04-13
|
|||
|
|
updated: 2026-05-15
|
|||
|
|
type: comparison
|
|||
|
|
tags: [database, architecture, module]
|
|||
|
|
sources: [packages/backend/src/entities.ts, packages/backend/src/modules/]
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 数据库 Entity 全景
|
|||
|
|
|
|||
|
|
全部 50+ 个 Entity 按模块分组对比,快速定位数据表。2026-05-14 后新增 [[desktop-op-module]] 的配置/审计表,并为 [[agent-channel]] 增加群白名单表。2026-05-15 后,[[netaclaw-module]] 增加 MySQL 问数数据源和查询审计表。
|
|||
|
|
|
|||
|
|
## 按模块分布
|
|||
|
|
|
|||
|
|
| 模块 | 表数量 | 核心表 |
|
|||
|
|
|------|--------|--------|
|
|||
|
|
| base | 11 | user, role, menu, department |
|
|||
|
|
| netaclaw | 19 | agent, session, message, skill, model_channel, memory, memory_type, tool, subagent_session, crew, crew_agent, crew_run, crew_task, agent_channel, agent_channel_group, agent_session, agent_session_entry, data_source, data_source_query_audit |
|
|||
|
|
| desktop_op | 2 | config, action_log |
|
|||
|
|
| geo | 2 | account, proxy_ip |
|
|||
|
|
| project | 5 | info, phase, task, task_dependency, time_log |
|
|||
|
|
| data | 6 | drug_item, catalog, category, medical_item, medical_catalog, medical_category |
|
|||
|
|
| user | 3 | info, wx, address |
|
|||
|
|
| dict | 2 | type, info |
|
|||
|
|
| task | 2 | info, log |
|
|||
|
|
| space | 2 | info, type |
|
|||
|
|
| notification | 2 | message_log, user |
|
|||
|
|
| plugin | 1 | info |
|
|||
|
|
| demo | 1 | goods |
|
|||
|
|
| recycle | 1 | data |
|
|||
|
|
|
|||
|
|
## NetaClaw 核心表字段速查
|
|||
|
|
|
|||
|
|
### netaclaw_agent
|
|||
|
|
`id` | `name`(唯一) | `label` | `description` | `icon` | `systemPrompt` | `skills`(JSON数组) | `toolsets`(JSON数组) | `tools`(JSON: inheritCoreTools/enabled/disabled) | `subagentConfig`(JSON) | `modelConfig`(JSON) | `config`(JSON) | `auxiliaryModelChannelId` | `auxiliaryModelId` | `compactionThreshold` | `compactionKeepRecent` | `status`
|
|||
|
|
|
|||
|
|
### netaclaw_session
|
|||
|
|
`id` | `sessionId`(唯一) | `userId` | `agentName` | `agentId` | `title` | `model` | `status` | `metadata`
|
|||
|
|
|
|||
|
|
### netaclaw_message
|
|||
|
|
`id` | `sessionId` | `role`(user/assistant/tool/system) | `content` | `thinking` | `toolCalls`(JSON) | `toolCallId` | `skillName` | `metadata` | `compactedAt` | `compactedIntoId` | `isCompactionSummary`
|
|||
|
|
|
|||
|
|
### netaclaw_skill
|
|||
|
|
`id` | `name`(唯一) | `label` | `description` | `skillType` | `tags`(JSON) | `status` | `version` | `source` | `sourceUrl` | `installSpec`(JSON) | `metadata`(JSON) | `fingerprint` | `installedAt` | `secrets`(AES-256-GCM密文) | `envSchema`(JSON)
|
|||
|
|
|
|||
|
|
### netaclaw_model_channel
|
|||
|
|
`id` | `name`(唯一) | `supplier` | `baseUrl` | `apiKey` | `models`(JSON) | `description` | `isAuxiliary` | `status`
|
|||
|
|
|
|||
|
|
### netaclaw_memory
|
|||
|
|
`id` | `agentName` | `userId` | `type`(user/project/feedback/reference/自定义) | `name` | `content` | `description` | `metadata`
|
|||
|
|
|
|||
|
|
### netaclaw_memory_type
|
|||
|
|
`id` | `key`(唯一) | `name` | `description` | `icon` | `isSystem`
|
|||
|
|
|
|||
|
|
### netaclaw_tool
|
|||
|
|
`id` | `name`(唯一) | `label` | `toolset` | `description` | `visibility` | `capability` | `status` | `isCore` | `canDisable` | `supportsPromptHint` | `promptHint` | `sort` | `extra`
|
|||
|
|
|
|||
|
|
### netaclaw_subagent_session
|
|||
|
|
`id` | `sessionId` | `parentMessageId` | `parentToolCallId` | `parentAgentId` | `sourceType` | `presetAgentId` | `name` | `goal` | `context` | `status` | `model` | `toolNames`(JSON) | `summary` | `resultPayload`(JSON) | `error` | `tokenUsage`(JSON) | `sortOrder` | `startedAt` | `endedAt`
|
|||
|
|
|
|||
|
|
### netaclaw_crew
|
|||
|
|
`id` | `name`(唯一) | `label` | `masterAgentId` | `canvasData`(JSON) | `triggerConfig`(JSON) | `delegateHints` | `status` | `maxConcurrent` | `taskTimeout` | `retryPolicy`(JSON)
|
|||
|
|
|
|||
|
|
### netaclaw_crew_agent
|
|||
|
|
`id` | `crewId` | `agentId` | `role` | `canvasPosition`(JSON) | `groupName`
|
|||
|
|
|
|||
|
|
### netaclaw_crew_run
|
|||
|
|
`id` | `crewId` | `triggerType` | `triggerInput`(JSON) | `status` | `masterSessionId` | `startTime` | `endTime` | `result`(JSON) | `error` | `pausedState`(JSON) | `tokenUsage`(JSON)
|
|||
|
|
|
|||
|
|
### netaclaw_crew_task
|
|||
|
|
`id` | `runId` | `agentId` | `taskDescription` | `status` | `sessionId` | `startTime` | `endTime` | `result` | `error` | `retryCount` | `timeout` | `tokenUsage`(JSON) | `parentTaskId`
|
|||
|
|
|
|||
|
|
### netaclaw_agent_channel
|
|||
|
|
`id` | `name`(唯一) | `type`(weixin/weixin-db) | `agentId` | `agentName` | `config`(JSON,含 group/weixinReply) | `credential`(JSON,含 wxid/wechatVersion) | `runtime`(JSON) | `loginStatus` | `lastError` | `lastConnectedAt`
|
|||
|
|
|
|||
|
|
### netaclaw_agent_channel_group
|
|||
|
|
`id` | `channelId` | `roomId`(channel内唯一) | `roomName` | `status` | `triggerMode` | `triggerPrefix` | `boundAgentId`(weixin-db 群级必填) | `replyIdentityOverride`(weixin-db 群级必填) | `firstSeenAt` | `lastSeenAt` | `lastActiveAt`
|
|||
|
|
|
|||
|
|
### netaclaw_data_source
|
|||
|
|
`id` | `name`(唯一) | `label` | `type`(mysql) | `host` | `port` | `database` | `username` | `passwordEncrypted`(AES-256-GCM密文) | `readonly` | `status` | `allowedAgentIds`(JSON) | `extra`(JSON: allowedTables/blockedTables/maskedColumns/schemaVisibility/maxRows/maxJoinTables/queryTimeoutMs/connectTimeout/poolConnectionLimit/SSL)
|
|||
|
|
|
|||
|
|
### netaclaw_data_source_query_audit
|
|||
|
|
`id` | `dataSourceId` | `agentId` | `userId` | `toolCallId` | `sqlHash` | `sqlPreview` | `status`(success/rejected/failed) | `rejectReason` | `elapsedMs` | `rowCount` | `errorCode`
|
|||
|
|
|
|||
|
|
## Desktop Op 核心表字段速查
|
|||
|
|
|
|||
|
|
### desktop_op_config
|
|||
|
|
`id` | `allowedApps`(JSON) | `extraDangerousKeys`(JSON) | `globalPerMin` | `globalPerDay` | `defaultWatermark`
|
|||
|
|
|
|||
|
|
### desktop_op_action_log
|
|||
|
|
`id` | `taskId` | `appId` | `targetJson` | `actionType` | `paramsPreview` | `finalText` | `channelId` | `roomName` | `modelChannelId` | `modelCalls` | `steps` | `durationMs` | `status` | `error` | `abortedReason`
|
|||
|
|
|
|||
|
|
## Geo 核心表字段速查
|
|||
|
|
|
|||
|
|
### geo_account
|
|||
|
|
`id` | `name` | `platform` | `loginAccount` | `sessionName`(唯一) | `agentId` | `fingerprintSeed` | `cookies` | `cookieCapturedAt` | `cookieExpiresAt` | `loginStatus` | `proxyId` | `lastActiveAt` | `extra`
|
|||
|
|
|
|||
|
|
### geo_proxy_ip
|
|||
|
|
`id` | `name` | `provider` | `mode` | `host` | `port` | `protocol` | `username` | `password` | `region` | `isp` | `exitIp` | `city` | `packageId` | `externalId` | `bindAccountId`(唯一) | `status` | `latencyMs` | `lastCheckAt` | `expiresAt` | `extra`
|
|||
|
|
|
|||
|
|
## 通用字段(BaseEntity)
|
|||
|
|
|
|||
|
|
所有表继承:`id` | `createTime` | `updateTime` | `tenantId`
|
|||
|
|
|
|||
|
|
## 相关页面
|
|||
|
|
|
|||
|
|
- [[netaclaw-module]] — NetaClaw 19 个核心表
|
|||
|
|
- [[mysql-data-source]] — netaclaw_data_source 与 netaclaw_data_source_query_audit
|
|||
|
|
- [[memory-system]] — netaclaw_memory 与 netaclaw_memory_type
|
|||
|
|
- [[tool-governance]] — netaclaw_tool 治理表
|
|||
|
|
- [[skill-runtime]] — netaclaw_skill 的 secrets 与 envSchema
|
|||
|
|
- [[subagent-session]] — netaclaw_subagent_session 运行记录
|
|||
|
|
- [[context-compaction]] — netaclaw_message 的压缩字段
|
|||
|
|
- [[crew-orchestration]] — Crew 编排 4 个表
|
|||
|
|
- [[agent-channel]] — 渠道配置表
|
|||
|
|
- [[desktop-op-module]] — desktop_op_config 与 desktop_op_action_log
|
|||
|
|
- [[geo-module]] — geo_account 与 geo_proxy_ip
|
|||
|
|
- [[base-module]] — Base 11 个系统表
|
|||
|
|
- [[project-module]] — Project 5 个业务表
|
|||
|
|
- [[cool-admin-framework]] — BaseEntity 和自动 CRUD
|