大模型应用
用 Neo4j Aura v2beta1 REST API…
当需要在已有 AuraDB 实例上创建/管理/调用 Aura Agent(配置 CypherTemplate、SimilaritySearch、Text2Cypher 工具,设置系统提示,部署到 REST 或 MCP 端点)时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
用 Neo4j Aura v2beta1特定
解决思路
- 验证认证:用 curl 向 https://api.neo4j.io/oauth/token 发送 POST 请求,使用 --user "${AURA_CLIENT_ID}:${AURA_CLIENT_SECRET}"、Content-Type: application/x-www-form-urlencoded 和 grant_type=client_credentials,用 jq 提取 .access_token;若 token 为空则检查 .env 中的 AURA_CLIENT_ID/AURA_CLIENT_SECRET 并停止报告;token TTL 为 3600 秒,遇到 401/403 时重新执行本步骤。
- 解析组织与项目 ID:最快方式是从 console.neo4j.io 的项目页面 URL 中提取 /organizations/{AURA_ORG_ID}/projects/{AURA_PROJECT_ID};程序化回退方式是 curl https://api.neo4j.io/v1/tenants 并取 .data[] 的 id(映射为 AURA_PROJECT_ID);将 AURA_ORG_ID 和 AURA_PROJECT_ID 写入 .env。
- 检查 AURA_INSTANCE_ID:若 .env 中已设置则跳过;否则用 curl "https://api.neo4j.io/v1/instances?tenantId=${AURA_PROJECT_ID}" 列出实例(jq 取 id、name、status、region、type),展示给用户并询问“智能体应连接哪个实例?”,然后将 AURA_INSTANCE_ID 和 NEO4J_URI=neo4j+s://<chosen-instance-id>.databases.neo4j.io 写入 .env;若列表为空则停止报告(无 AuraDB 实例无法创建 Agent);401 时重跑第 1 步,404 时核对 AURA_PROJECT_ID 并停止报告。
- 列出已有 Agent:运行 uv run python3 scripts/manage_agent.py list(Windows 用 uv run python scripts\manage_agent.py list),输出 Agent ID、名称、启用状态和端点 URL;401 时重跑第 1 步,404 时核对 AURA_ORG_ID/AURA_PROJECT_ID 并停止报告。
- 获取图 schema:确保 .env 中有 NEO4J_URI、NEO4J_USERNAME、NEO4J_PASSWORD,运行 uv run python3 scripts/fetch_schema.py(Windows 用 uv run python scripts\fetch_schema.py),保存 schema.json,输出节点/关系类型计数、节点标签及带类型的属性(含 Aura data_type)、关系模式和 VECTOR 索引;数据门禁:节点少于 2 个或关系类型为 0 时脚本报错且不写 schema.json,需先加载数据并停止报告;ServiceUnavailable 时检查 NEO4J_URI 是否用 neo4j+s:// 且实例为 running 并停止报告;neo4j-graphrag not found 时执行 uv add neo4j-graphrag 并停止报告;第 5 步前先阅读 schema.json。
- 发现用例:设计工具前先阅读 references/authoring-guide.md;向用户提问而非猜测工具类型或参数:(1)“这个智能体应回答哪些问题?”(2)“哪些节点或关系最重要?”(对照 schema.json → node_props)(3)“用户是否按特定属性值搜索?”→ CypherTemplate (4)“是否有计数、分组或日期范围问题?”→ Text2Cypher (5)“是否搜索语义相似的文本?”→ 检查 schema.json → metadata → vector_index;无 VECTOR 索引则告知用户、跳过 SimilaritySearch 并先委托 neo4j-vector-index-skill;有 VECTOR 索引则询问用户“使用哪个 embedding provider 和模型?输出维度是多少?”(见 references/REFERENCE.md → Embedding Provider Options),不要猜测或使用默认值。工具选择:按特定属性值查找用 cypherTemplate,语义文本搜索用 similaritySearch,聚合/计数/开放式问题用 text2cypher。
- 配置 CypherTemplate 参数:对每个参数,从 schema.json → node_props 或 rel_props 读取 aura_data_type 作为 data_type;若属性 low_cardinality: true,参数 description 必须列出有效值(从 schema.json 的 values 数组复制),例如 "description": "Agreement type to filter by. Valid values: \"Distributor Agreement\", \"License Agreement\", \"NDA\"";has_fulltext_index: true 的属性尤其可能是过滤目标,低基数时必须包含有效值。
- 配置 SimilaritySearch:起草工具配置前向用户确认三项——provider("openai" 或 "vertexai")、model(从 references/REFERENCE.md → Embedding Provider Options 选择)、dimension(模型可配置时必填,固定模型用表中值);index 使用 schema.json → metadata → vector_index 中 state = ONLINE 的 name;dimension 必须与同一索引条目的 vector.dimensions 一致。
- 编写信号清单:对出现在工具或用户问题中的每个标签或关系,在系统提示中写一个信号块,模板和规则见 references/authoring-guide.md → Signals inventory。
- 起草配置 JSON 并展示给用户审阅,确认后进入第 6 步。
- 创建 Agent:最小必需配置包含 name、description、dbid(<AURA_INSTANCE_ID>)、is_private、tools(至少 1 个,如 type 为 text2cypher 的工具);运行前先向用户展示配置并确认,然后执行 uv run python3 scripts/manage_agent.py create --config agent-config.json;响应包含 id(保存为 AURA_AGENT_ID)、endpoint_link、mcp_endpoint_link。
- 调用 Agent 测试:运行 uv run python3 scripts/invoke_agent.py --agent-id "$AURA_AGENT_ID" "What can you help me with?";--raw 打印完整 JSON(含推理链和 token 用量);也可直接用 curl POST 到 https://api.neo4j.io/v2beta1/organizations/${AURA_ORG_ID}/projects/${AURA_PROJECT_ID}/agents/${AURA_AGENT_ID}/invoke,带 Authorization: Bearer $TOKEN 和 Content-Type: application/json,body 为 {"input": "..."}。
- 更新 Agent(部分 PATCH):创建只含要修改字段的 patch JSON(如 {"system_prompt": "Updated instructions.", "is_mcp_enabled": true}),展示给用户确认后运行 uv run python3 scripts/manage_agent.py update --agent-id "$AURA_AGENT_ID" --config patch.json。
- 删除 Agent:不可逆,配置将被永久移除;先向用户展示并等待明确确认,再运行 uv run python3 scripts/manage_agent.py delete --agent-id "$AURA_AGENT_ID",返回 202 Accepted。
- 处理常见错误:401 Unauthorized 为 token 过期,重跑第 1 步;创建时 403 Forbidden 为无项目管理员权限,申请管理员权限;400 Bad Request 为工具配置无效或缺少必填字段,检查 type 拼写(cypherTemplate、similaritySearch、text2cypher);404 Not Found 为 org/project/agent ID 错误,重跑 list 核对 ID;创建带 SimilaritySearch 时 400 为缺少向量索引,先用 neo4j-vector-index-skill 创建索引;Agent 无结果时增大 top_k 并确认索引已填充。
- 使用脚本:所有脚本自动从 .env 加载凭证,用 uv run python3 <script> 运行;scripts/fetch_schema.py 从 AuraDB 获取 schema 并保存到 schema.json(参数 NEO4J_URI 必填、NEO4J_USERNAME 默认 neo4j、NEO4J_PASSWORD 必填、NEO4J_DATABASE 默认 neo4j);scripts/manage_agent.py 提供 list/create/get/update/delete(AURA_CLIENT_ID、AURA_CLIENT_SECRET 必填,--org-id/--project-id/--agent-id/--config 可选并有 env 回退);scripts/invoke_agent.py 发送自然语言查询(AURA_CLIENT_ID、AURA_CLIENT_SECRET 必填,--org-id/--project-id 可选,--agent-id 必填,query 位置参数必填,--raw 可选)。
- 完成前核对清单:AuraDB 实例 running 且知识图谱已加载;组织/项目设置中启用 "Generative AI assistance" 和 "Aura Agent";.env 已填 AURA_CLIENT_ID、AURA_CLIENT_SECRET、AURA_ORG_ID、AURA_PROJECT_ID、AURA_INSTANCE_ID、NEO4J_URI、NEO4J_PASSWORD;.env 和 schema.json 已加入 .gitignore;认证已验证;Org/Project ID 已确认;通过 list 确认 API 连通;schema.json 已获取并审阅且通过数据门禁(≥2 节点、≥1 关系类型);用例已与用户确认;CypherTemplate 的 data_type 取自 schema.json aura_data_type;SimilaritySearch 的 index 取自 schema.json metadata.vector_index(state=ONLINE);Agent 配置已展示给用户并确认;必填字段齐全(name、description、dbid、is_private、tools 至少 1 个);已从创建响应保存 AURA_AGENT_ID;已调用 Agent 并验证响应;更新/删除执行前已获用户确认。
适用边界 · 注意事项
- 需要创建或管理 AuraDB 实例时——应使用 neo4j-aura-provisioning-skill
- 需要创建向量索引时——应使用 neo4j-vector-index-skill
- 需要直接运行 Cypher 或构建 Aura Graph Analytics 会话时——应分别使用 neo4j-cypher-skill 或 neo4j-aura-graph-analytics-skill