news 2026/9/10 20:30:56

OpenViking OpenClaw 插件 Recall Trace 召回可观测实践:从配置、工具到 Gateway API 的完整排障指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenViking OpenClaw 插件 Recall Trace 召回可观测实践:从配置、工具到 Gateway API 的完整排障指南

OpenViking OpenClaw 插件 Recall Trace 召回可观测实践:从配置、工具到 Gateway API 的完整排障指南

【免费下载链接】OpenVikingSelf-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.项目地址: https://gitcode.com/GitHub_Trending/op/OpenViking

本文面向插件使用者、集成方与排障同学,完整讲解 OpenViking OpenClaw 插件中召回可观测能力 Recall Trace 的启用配置、数据模型、Agent 工具、Slash 命令、Gateway HTTP API 与典型排障路径。读完你将掌握:如何打开 trace 记录、如何用一条命令定位“为什么没有召回”“为什么结果不符合预期”,以及如何理解内存环形缓存与 JSONL 持久化两条查询链路。

1. Recall Trace 是什么

Recall Trace 是 OpenViking 插件的召回可观测能力:启用后,插件会把每一次自动召回(auto recall)、显式记忆召回(memory recall)、资源搜索ov_search)、归档搜索ov_archive_search)记录成结构化 trace,让“这轮到底查了什么、查到了什么、为什么没查出来”不再是黑盒。

核心实现位于 recall-trace.ts,插件注册阶段通过 openviking-runtime-state.ts 创建RecallTraceRecorder,其围绕四个问题展开:

  • 本轮到底搜索了哪些范围:resourceuseragent
  • 每个范围请求的目标 URI、limit、阈值和耗时是多少?
  • 候选结果有哪些?最终哪些被注入 prompt 或展示给用户?
  • 为什么没有召回:没有 session 上下文、低于分数阈值、预算不足,还是搜索失败?

此外,启用持久化后,即便 Gateway 重启,也能从 JSONL 文件查到近期 trace。

2. 启用方式与配置项

2.1 最小启用配置

关键点:必须显式设置traceRecall: true。只配置recallResourcesrecallTargetTypes只会改变召回范围,不会启用 trace 记录。

{ "plugins": { "entries": { "openviking": { "config": { "traceRecall": true } } } } }

traceRecall在配置解析中只有等于布尔值true才会启用(见 config.ts 的cfg.traceRecall === true);插件注册阶段也只有启用后才创建RecallTraceRecorder(见 openviking-runtime-state.ts)。若未启用,查询接口返回空结果并带traceRecall is disabledwarning(见 openviking-recall-trace-runtime.ts)。

2.2 推荐排障配置

{ "plugins": { "entries": { "openviking": { "config": { "traceRecall": true, "traceRecallPersist": true, "traceRecallDir": "~/.openclaw/openviking/recall-traces", "traceRecallRetentionDays": 14, "traceRecallMaxEntries": 1000, "traceRecallMaxResultsPerSearch": 20, "traceRecallPreviewChars": 240, "traceRecallQueryMaxChars": 4000, "traceRecallQueryMaxDays": 14, "recallTargetTypes": ["user", "agent", "resource"] } } } } }

2.3 Trace 配置项一览

下表所有默认值均来自 config.ts 的常量定义,解析逻辑在 config.ts:

配置项类型默认值取值/限制说明
traceRecallbooleanfalse必须为true才启用总开关;关闭时不记录 trace,查询接口返回空并带traceRecall is disabledwarning
traceRecallPersistbooleanfalsetrue/false是否写入本地 JSONL;关闭时只保留内存环形缓存
traceRecallDirstring~/.openclaw/openviking/recall-traces支持~展开JSONL 文件目录;按 UTC 日期写入YYYY-MM-DD.jsonlexpandHomeDir处理,见 recall-trace.ts)
traceRecallRetentionDaysnumber1413650写入新 trace 时清理超过保留期的 JSONL 文件
traceRecallLoadRecentDaysnumber203650配置已解析保留,当前查询路径主要通过内存 + 持久化 fallback 获取数据
traceRecallMaxEntriesnumber100011000000内存 ring buffer 最大条数,超出后淘汰最旧记录
traceRecallMaxResultsPerSearchnumber2011000每次子搜索最多保存多少候选结果摘要
traceRecallPreviewCharsnumber2402010000候选摘要、选中摘要的预览字符数
traceRecallQueryMaxCharsnumber4000200200000trace 中保存的 trigger query 最大长度,超出会截断并设置queryTruncated
traceRecallQueryMaxDaysnumber1413650查询持久化 trace 且未传since/until时最多扫描最近多少天
traceRecallIncludeContentByDefaultbooleanfalsetrue/false查询 trace 时是否默认读取 selected URI 的内容预览;也可通过查询参数includeContent单次开启
traceRecallIncludeRawUserPreviewbooleanfalsetrue/false是否允许把原始用户输入预览持久化到 JSONL;默认会脱敏删除

其中traceRecallDir在写入时会自动mkdir -p创建目录(见 recall-trace.ts);traceRecallQueryMaxChars的截断由boundTraceQuery实现,并同步设置queryTruncated标记(见 openviking-runtime-utils.ts)。

2.4 召回范围配置与 Trace 的关系

Trace 会记录实际召回范围,但召回范围本身由recallTargetTypes/recallResources决定:

配置默认/行为说明
recallTargetTypes默认['user', 'agent']允许值:resourceuseragent;空值回退默认集合(常量见 config.ts)
recallResources默认false兼容旧配置;仅在未显式配置recallTargetTypes时,把resource追加到默认召回集合

目标类型会被解析为 context type 搜索计划;自动召回把该计划合并进一次服务端 context search:

resourceTypecontext type说明
resourceresource资源库。
usermemory当前用户长期记忆。
agentmemory当前 actor 的长期记忆;与user合并为一个 memory context type,由 actor routing 限定范围。

3. Trace 记录来源

四种来源覆盖插件内全部召回路径:

sourceoperationType触发方式selected 语义关键实现
auto_recallsemantic_find(兼容值)Context Engine 在回复前发起服务端 context search服务端组装并注入<relevant-memories>的记忆或资源,injected: trueauto-recall.ts 的buildAutoRecallContext()
memory_recallsemantic_findAgent 调用memory_recall工具工具返回给模型的记忆,通常injected: truedisplayed: trueopenviking-memory-recall-tools.ts
ov_searchsemantic_findAgent 调用ov_search工具或用户执行/ov-search搜索结果列表中展示的资源/技能/记忆,displayed: truetrace 记录在 openviking-query-runtime.ts 的searchOpenViking流程中
ov_archive_searcharchive_grepAgent 调用ov_archive_search工具展示的归档匹配行,包含linedisplayed: trueopenviking-archive-tools.ts

从源码实现看,自动召回的 trace 记录遵循“诊断尽力而为”原则:注释明确说明“Trace persistence is diagnostic best-effort; never put JSONL flush latency on the auto-recall critical path”(见 auto-recall.ts),即记录 trace 不会阻塞回复主流程。

4. Trace 数据结构

4.1RecallTraceEntry

RecallTraceEntry的完整类型定义在 recall-trace.ts。

字段类型说明
schemaVersion'1.0'Trace schema 版本。
traceIdstringTrace 唯一 ID,通常形如<source>-<timestamp>-<random>
tsnumberUnix timestamp,毫秒。
sessionIdstring?OpenClaw session ID。
sessionKeystring?OpenClaw session key。
ovSessionIdstring?映射后的 OpenViking session ID。
agentIdstring?实际发送到 OpenViking 的 agent ID。
sourceenumauto_recallmemory_recallov_searchov_archive_search
operationTypeenumsemantic_findarchive_grep
resourceTypesarray本次 trace 覆盖的召回类型:resourceuseragent
trigger.querystring触发搜索的查询文本,受traceRecallQueryMaxChars限制。
trigger.derivedKeywordsstring[]?派生关键词;归档搜索通常保存原 query。
trigger.rawUserTextPreviewstring?原始用户输入预览;默认不持久化。
trigger.queryTruncatedboolean?query是否因过长被截断。
searchesarray本次 trace 中每个逻辑 context type 的搜索明细。
selectedarray最终被注入或展示的结果。
statsobject候选数、选中数、注入数、估算 token。

4.2searches[]

字段定义见 recall-trace.ts。

字段类型说明
resourceTyperesource|user|agent|archive当前子搜索类型。
targetUriInputstring?输入或计划中的目标 URI。
targetUriResolvedstring?解析后的目标 URI。
limitnumber请求 limit。自动召回直接使用recallLimit;显式memory_recall可先扩大候选数。
scoreThresholdnumber?分数阈值。自动召回由服务端应用;显式memory_recall仍可在本地后处理。
durationMsnumber子搜索耗时,毫秒。
totalnumberOpenViking 返回或插件统计的候选总数。
resultsarray候选结果摘要,最多traceRecallMaxResultsPerSearch条。
archiveIdstring?归档搜索指定 archive 时存在。
caseInsensitiveboolean?归档 grep 是否大小写不敏感。
errorstring?子搜索失败或跳过原因。

4.3results[]

字段定义见 recall-trace.ts。

字段类型说明
uristring候选 URI。
resourceTypestring?候选类型。归档匹配为archive
categorystring?OpenViking 返回的分类。
scorenumber?相似度分数。
levelnumber?OpenViking memory 层级;插件优先选 leaf memory。
abstractPreviewstring?摘要预览。
resultTypeenummemoryresourceskillarchive_match

4.4selected[]

字段定义见 recall-trace.ts。

字段类型说明
uristring选中结果 URI。
resourceTypestring?选中结果类型。
categorystring?分类。
scorenumber?分数。
linenumber?归档匹配所在行号。
abstractPreviewstring?选中结果摘要预览。
contentPreviewstring?仅当查询时开启includeContent,并成功读取 URI 内容后出现。
readErrorstring?开启includeContent但读取内容失败时出现。
injectedboolean?是否注入模型上下文。
displayedboolean?是否展示给用户或工具调用结果。
skippedReasonenum?预留跳过原因:score_thresholddedupenon_leafbudgetnot_top_ksearch_error

4.5 返回示例

{ "schemaVersion": "1.0", "traceId": "ov_search-1780329600000-a1b2c3d4", "ts": 1780329600000, "sessionId": "test-session", "sessionKey": "agent:main:example", "ovSessionId": "8d6e...", "agentId": "main", "source": "ov_search", "operationType": "semantic_find", "resourceTypes": ["resource"], "trigger": { "query": "OpenViking trace API" }, "searches": [ { "resourceType": "resource", "targetUriInput": "viking://resources", "targetUriResolved": "viking://resources", "limit": 20, "scoreThreshold": 0, "durationMs": 35, "total": 1, "results": [ { "uri": "viking://resources/project/spec.md", "resourceType": "resource", "score": 0.88, "abstractPreview": "Recall trace design spec", "resultType": "resource" } ] } ], "selected": [ { "uri": "viking://resources/project/spec.md", "resourceType": "resource", "score": 0.88, "abstractPreview": "Recall trace design spec", "displayed": true } ], "stats": { "candidateCount": 1, "selectedCount": 1, "injectedCount": 0 } }

5. Agent 工具:ov_recall_trace

5.1 用途

ov_recall_trace用于在 Agent 内部查询已记录的 trace。它不会重新调用 OpenViking 搜索接口,只查询插件记录;仅当传入includeContent: true或配置了traceRecallIncludeContentByDefault: true时,才会额外调用 OpenVikingread给 selected 结果补充内容预览。工具注册见 openviking-recall-trace-tools.ts。

5.2 参数

参数类型定义见 openviking-recall-trace-tools.ts:

参数类型默认值说明
turn'latest'|'all''latest'latest只返回过滤后最新 1 条;all返回最多limit条。
traceIdstring精确查询某条 trace。
sessionIdstring当前 session按 OpenClaw session ID 过滤;未传时默认当前工具上下文 session。
sessionKeystring按 OpenClaw session key 过滤。
ovSessionIdstring当前 session 映射值按 OpenViking session ID 过滤。
sourcestringauto_recallmemory_recallov_searchov_archive_search
resourceTypesstring[] 或逗号分隔 string按 trace 的resourceTypes过滤;允许resourceuseragent
sincenumber毫秒时间戳下界,包含。
untilnumber毫秒时间戳上界,包含。
includeContentbooleanfalse是否读取 selected URI 的内容预览;可能带来额外读请求。
limitnumber20最大返回条数;仅turn: 'all'时返回多条。

当前接口不支持自由文本模糊查询 trace trigger。需要按sourcesessionIdovSessionIdresourceTypestraceId或时间范围过滤。

5.3 调用示例

查询当前 session 最新一条 trace:

{ "turn": "latest" }

查询当前 session 内最近 10 条ov_searchtrace:

{ "turn": "all", "source": "ov_search", "limit": 10 }

查询某条 trace 并补充 selected 内容预览:

{ "traceId": "ov_search-1780329600000-a1b2c3d4", "includeContent": true }

按时间范围和召回类型查询:

{ "turn": "all", "resourceTypes": ["user"], "since": 1780320000000, "until": 1780406399999, "limit": 50 }

5.4 返回值

工具返回 OpenClaw ToolResult:

{ "content": [ { "type": "text", "text": "## Trace 1: ov_search\ntraceId: ...\nquery: ..." } ], "details": { "action": "queried", "count": 1, "lookupLayer": "memory", "warnings": [], "entries": [] } }
字段说明
content[0].text人类可读摘要,由formatRecallTraceText生成(见 openviking-recall-trace-runtime.ts,展示traceId、query、resourceTypes、stats 及 selected URI 与分数百分比)。
details.count本次返回条数。
details.lookupLayermemory表示来自内存环形缓存;persistent表示内存未命中后从 JSONL 文件 fallback 查询。
details.warnings读取 JSONL 或 selected 内容失败等 warning。
details.entries完整结构化 trace 数组。

6. Slash 命令:/ov-recall-trace

6.1 用途

用户可以在 OpenClaw 会话中直接执行/ov-recall-trace查询 trace。命令注册见 openviking-command-definitions.ts。

6.2 参数

Slash 命令使用--kebab-case参数,解析逻辑parseRecallTraceCommandArgs见 openviking-command-definitions.ts:

参数对应工具参数示例
--turnturn--turn all
--trace-idtraceId--trace-id ov_search-1780329600000-a1b2c3d4
--session-idsessionId--session-id test-session
--session-keysessionKey--session-key agent:main:xxx
--ov-session-idovSessionId--ov-session-id 8d6e...
--sourcesource--source auto_recall
--resource-typesresourceTypes--resource-types user,agent
--sincesince--since 1780320000000
--untiluntil--until 1780406399999
--include-contentincludeContent--include-content
--limitlimit--limit 20

6.3 示例

/ov-recall-trace --turn all --source auto_recall --limit 5
/ov-recall-trace --trace-id ov_search-1780329600000-a1b2c3d4 --include-content
/ov-recall-trace --turn all --resource-types user,agent --since 1780320000000 --until 1780406399999

6.4 返回值

Slash 命令返回:

{ "text": "## Trace 1: auto_recall\ntraceId: ...", "details": { "count": 1, "lookupLayer": "memory", "warnings": [], "entries": [] } }

返回结构与ov_recall_tracedetails基本一致;text是人类可读摘要,details.entries是机器可读数据。

7. Gateway HTTP API

插件 service 启动时会尝试注册 Recall Trace Gateway 路由(见 openviking-services.ts)。如果当前 Gateway 不支持 route adapter,日志会提示使用ov_recall_trace工具或/ov-recall-trace命令替代。路由定义集中在 recall-trace-routes.ts,除了本文讲解的列表与单条查询外,还提供/api/openviking/recall-traces/latest-ov-search-list/api/openviking/uri-detail两个辅助端点。

7.1GET /api/openviking/recall-traces

用途

查询多条 trace。路由 handler 见 openviking-recall-trace-runtime.ts。

Query 参数
参数类型默认值说明
turnlatest|alllatest是否只返回最新一条。
traceIdstring精确过滤 trace ID。
sessionIdstringOpenClaw session ID。
sessionKeystringOpenClaw session key。
ovSessionIdstringOpenViking session ID。
sourcestringauto_recallmemory_recallov_searchov_archive_search
resourceTypesstring逗号或换行分隔,如user,agent
sincenumber毫秒时间戳下界。
untilnumber毫秒时间戳上界。
includeContentboolean/string配置默认值支持1trueyes
limitnumber20最大返回条数。
请求示例
curl 'http://127.0.0.1:<gateway-port>/api/openviking/recall-traces?turn=all&source=ov_search&limit=10'
curl 'http://127.0.0.1:<gateway-port>/api/openviking/recall-traces?turn=all&resourceTypes=user,agent&since=1780320000000&until=1780406399999'
返回值

Handler 返回:

{ "status": 200, "body": { "ok": true, "entries": [], "lookupLayer": "memory", "warnings": [] } }

根据 Gateway 适配层,客户端通常会看到body中的 JSON:

{ "ok": true, "entries": [], "lookupLayer": "memory", "warnings": [] }

7.2GET /api/openviking/recall-traces/:traceId

用途

traceId查询单条 trace。实现上该路由把 path 参数转换为列表接口的traceIdquery 后复用同一 handler(见 recall-trace-routes.ts)。

Path 参数
参数类型说明
traceIdstring需要查询的 trace ID。
Query 参数

traceId外,支持与列表接口相同的 query 参数,例如includeContent=true

请求示例
curl 'http://127.0.0.1:<gateway-port>/api/openviking/recall-traces/ov_search-1780329600000-a1b2c3d4?includeContent=true'
返回值
{ "ok": true, "entries": [ { "traceId": "ov_search-1780329600000-a1b2c3d4", "source": "ov_search" } ], "lookupLayer": "memory", "warnings": [] }

8. 查询与存储行为

8.1 内存 Ring Buffer

RecallTraceMemoryStore保存最近 N 条 trace,N 由traceRecallMaxEntries控制。从源码看(recall-trace.ts):

  • 超出容量时删除最旧记录(entries.shift())。
  • 查询时先按traceIdsourcesessionIdsessionKeyovSessionIdsince/untilresourceTypes过滤,再按ts降序排序。
  • turn: 'latest'返回过滤结果中最新一条;turn: 'all'返回最多limit条。

8.2 JSONL 持久化

启用traceRecallPersist: true后,每条 trace 会追加到traceRecallDir/YYYY-MM-DD.jsonlRecallTraceJsonlStore.append见 recall-trace.ts):

  • 文件名使用 trace 的 UTC 日期(jsonlFileNameForTimestamp)。
  • 默认不会持久化trigger.rawUserTextPreview,除非设置traceRecallIncludeRawUserPreview: true(见 recall-trace.ts 的entryForPersistence)。
  • 写入新 trace 时会同步清理超过traceRecallRetentionDays的旧 JSONL 文件(pruneExpiredFiles)。
  • 查询时如果内存命中,直接返回内存结果;只有内存未命中且存在持久化 store,才 fallback 扫描 JSONL(queryWithFallback见 recall-trace.ts)。
  • JSONL 中的损坏行会被跳过,并返回 warning(见 recall-trace.ts);每条记录写入前还会经过isRecallTraceEntry结构校验。

8.3includeContent行为

默认 trace 只保存摘要预览,不读取完整内容。查询时开启includeContent后,插件会对每个selected[].uri调用 OpenViking read,并把结果压缩到selected[].contentPreview(见 openviking-recall-trace-runtime.ts);若读取失败,会在该 item 上写入readError并在warnings中补充原因。

建议只在定位具体 trace 时使用includeContent,避免一次查询大量 trace 触发额外读请求。

9. 常见使用场景

9.1 解释为什么自动召回没有注入记忆

  1. 打开 trace:traceRecall: true
  2. 复现一轮会话。
  3. 查询最新自动召回:
/ov-recall-trace --source auto_recall

重点查看:

  • searches[].error是否有搜索失败。
  • searches[].total是否为 0。
  • stats.candidateCountstats.selectedCountstats.injectedCount是否逐步变少。
  • trigger.queryTruncated是否为 true。

9.2 查看显式memory_recall查了哪些空间

/ov-recall-trace --turn all --source memory_recall --limit 5

重点查看resourceTypessearches[].targetUriResolved,确认是否默认查了viking://user/memoriesagent recall target,或是否按请求resourceTypes改变范围。

9.3 排查/ov-searchov_search为什么结果不符合预期

/ov-recall-trace --turn all --source ov_search --include-content --limit 3

重点查看:

  • trigger.query是否与预期一致。
  • searches[].targetUriInput是否是正确资源目录。
  • results[]候选是否包含预期文档但未进入selected[]
  • selected[].contentPreview是否能读到真实内容。

9.4 排查归档搜索没有命中

/ov-recall-trace --turn all --source ov_archive_search --limit 5

重点查看:

  • operationType是否为archive_grep
  • searches[].targetUriResolved是否指向正确 session archive。
  • searches[].caseInsensitive是否为 true。
  • stats.candidateCountselected[].line

10. 错误与排障

现象可能原因排查/解决
查询为空且 warning 包含traceRecall is disabled未配置traceRecall: true显式启用traceRecall,重启 Gateway 后复现。
配了recallTargetTypes但没有 trace召回范围配置不等于 trace 开关同时设置traceRecall: true
Gateway 路由不可用当前 Gateway 未提供registerRouteadapter使用 Agent 工具ov_recall_trace或 Slash 命令/ov-recall-trace
重启后查不到历史 trace未开启traceRecallPersist,或超过traceRecallQueryMaxDays查询窗口开启持久化,必要时传since/until或调大traceRecallQueryMaxDays
includeContent后有readErrorselected URI 已不可读、权限不足或 OpenViking read 失败查看warningsselected[].readError,再用ov_read验证 URI。
JSONL 查询有 corrupted warning持久化文件存在损坏行插件会跳过损坏行返回有效记录;可检查对应YYYY-MM-DD.jsonl

11. 测试覆盖与二次开发注意点

相关单元测试集中在:

  • tests/ut/recall-trace.test.ts:覆盖召回类型归一化、搜索计划、内存 ring buffer、JSONL 持久化、隐私控制(如“不持久化原始用户预览”“JSONL 追加失败时内存仍可查询”“先查内存再 fallback 持久化”等场景,测试见RecallTraceMemoryStore/RecallTraceJsonlStore/RecallTraceRecorder三个 describe 块)。
  • tests/ut/tools.test.ts:ov_recall_trace工具、Slash 命令、Gateway 路由、includeContent、显式召回 trace、查询不重新触发搜索。

建议修改 trace 行为后至少运行:

npm run typecheck npm test -- tests/ut/recall-trace.test.ts tests/ut/tools.test.ts

12. 快速参考

开启 trace

{ "traceRecall": true, "traceRecallPersist": true }

查最新 trace

/ov-recall-trace

查最近 10 条自动召回

/ov-recall-trace --turn all --source auto_recall --limit 10

查指定 trace 详情

/ov-recall-trace --trace-id <traceId> --include-content

HTTP 查询

curl 'http://127.0.0.1:<gateway-port>/api/openviking/recall-traces?turn=all&source=memory_recall&limit=10'

HTTP 查询单条

curl 'http://127.0.0.1:<gateway-port>/api/openviking/recall-traces/<traceId>?includeContent=true'

【免费下载链接】OpenVikingSelf-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.项目地址: https://gitcode.com/GitHub_Trending/op/OpenViking

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 20:27:03

每日热门skill-sepia 深度研究报告:把 AI 味连根拔起

基金定投助手&#xff1a;为什么你的基金定投总在追涨杀跌&#xff1f;价值平均法定投引擎 综合估值模型动态再平衡仓位管理&#xff0c;一个单文件 HTML 的免费定投工具-CSDN博客 https://download.csdn.net/download/weitingfu/93339607?spm1011.2124.3001.6210 热点周期&a…

作者头像 李华
网站建设 2026/9/10 20:26:47

一级圆柱齿轮减速器CAD制图实战:从参数计算到装配图出图全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/10 20:26:45

LogicFlow Skill:智能流程图编辑与代码联动实践

1. LogicFlow Skill 核心功能解析LogicFlow Skill 是一款基于 LogicFlow 流程引擎的扩展插件&#xff0c;专门用于增强流程图编辑器的智能化操作能力。作为一款深度集成在 Cursor IDE 中的工具&#xff0c;它主要解决了传统流程图工具存在的三个痛点&#xff1a;手动绘制效率低…

作者头像 李华
网站建设 2026/9/10 20:26:34

实测9个降AI率网站:从原理到实操,彻底解决AIGC检测偏高

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/10 20:26:27

SpringBoot+Vue求职招聘系统企业资料上传审核全流程实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/10 20:25:55

OpenClaw Android 发布代理策略与第三方许可证合规实战指南

OpenClaw Android 发布代理策略与第三方许可证合规实战指南 【免费下载链接】openclaw The AI that really does things. Any OS. Any Platform. The lobster way. &#x1f99e; 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw 导读 本指南聚焦 OpenCla…

作者头像 李华