跳到主要内容

本地事实库

本地事实是可刷新的知识路径:助手应该去查、而不是去记的材料。事实存在本地 SQLite 库里,从文件或 URL 导入,聊天时通过只读工具查询。它们永远不进入 Neural Imprint 的 profile body——知识变化时更新事实文件重新导入即可,不需要 学习运行。

创建事实文件

事实文件是 schema 为 edge.demo.facts.v1 的 JSON 文档:

{
"schema_version": "edge.demo.facts.v1",
"store": "protocol_docs_v1",
"facts": [
{
"fact_id": "rate-limit-policy",
"topic": "API rate limits",
"text": "The public API allows 60 requests per minute per key. Batch endpoints are excluded.",
"tags": ["api", "limits"],
"source_label": "developer-notes"
},
{
"fact_id": "retention-window",
"topic": "data retention",
"text": "Exported reports are retained for 30 days and then deleted automatically.",
"tags": ["policy", "retention"],
"source_label": "app-policy"
}
]
}
字段说明
schema_version固定为 edge.demo.facts.v1
store本地库名。建议带上材料版本,例如 protocol_docs_v1
fact_id稳定 ID。重新导入同一个 fact_id 会覆盖旧内容
topic查询主题。模型常从 topic 发起查询
text事实原文
tags关键词数组
source_label来源标签,例如 developer-notesaudit-reportapp-policy

导入、列出、检查

edge demo facts import ./facts.json --store protocol_docs_v1 --json

edge demo facts list --store protocol_docs_v1 --json

edge demo facts inspect rate-limit-policy \
--store protocol_docs_v1 \
--include-text \
--json

默认情况下,命令输出和回执只含哈希。只有显式加 --include-text 才显示 事实原文。

要导入网页上的材料而不是本地文件,见 从 URL 导入

在聊天中使用事实:快捷路径

--facts-store 为一个库注册内置只读工具 local_facts_lookup

edge demo chat \
--model qwen3.5-9b-4bit \
--facts-store protocol_docs_v1 \
--prompt "What is the API rate limit? Check local facts." \
--json

没有 --facts-store--tools-manifest 时,chat 不注册本地事实工具, 保持普通基础模型聊天。

如果这次运行需要自定义校验、结构化证据、参数绑定或后续动作,请不要使用这个 快捷入口,改用自定义 Python 工具

给工具一个开发者拥有的名字

快捷路径适合快速验证。接入 App 时,更推荐使用载体自己拥有的稳定工具名。 tools manifest 做的是命名并绑定内置只读事实查询 executor——不是注册开发者 自己实现的代码:

{
"schema_version": "edge.demo.tools.manifest.v1",
"tools": [
{
"name": "protocol_docs_lookup",
"kind": "local_facts_lookup",
"store": "protocol_docs_v1",
"description": "Read-only lookup for imported protocol documentation."
}
]
}

校验并使用:

edge demo tools validate ./tools.json --json

edge demo chat \
--model qwen3.5-9b-4bit \
--tools-manifest ./tools.json \
--prompt "Check local protocol docs before answering." \
--json

manifest 路径唯一可执行的 kind 是 local_facts_lookup。executor、parser、 dispatcher 和回执都由 Edge 负责。manifest 不授权联网、执行进程、写文件或 开发者自实现工具代码。要用普通 Python 函数实现你自己的工具逻辑,用 自定义 Python 工具

在聊天回执里检查什么

字段预期结果
tool_calls[].name你的工具名(protocol_docs_lookup
tool_calls[].rows查到本地事实时大于 0
tool_calls[].result_sha256本地查询结果的哈希
network_usedfalse
tool_instruction_sha256模型可见工具指令的哈希

保持学习名与运行时名对齐

如果 learn 样本教的是 tool_schema_export.tools[].name = "protocol_docs_lookup",运行时 chat 就应该通过 --tools-manifest 注册同名 工具。如果用 --facts-store 快捷路径,样本就应该用内置的 local_facts_lookup 名。

运行前审计对齐:

edge demo tools validate ./tools.json \
--learn-sample ./sample-that-declares-protocol_docs_lookup.json \
--json

校验器对名字不匹配只警告不拦截;把警告当作信号——Neural Imprint prefix 和 运行时工具注册可能在教不同的名字。改样本的 tool_schema_export 名或 manifest 工具名,让两边一致。工具 schema 如何进入 Neural Imprint 见 工具学习