Token导航 LogoToken导航

Agent Skill · 研究检索

venn(venn 搜索)

venn 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

venn 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 9,028。

总安装 15,076周安装 604GitHub Stars 公开资料未说明下载 4,880核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
2.0.1

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:venn(venn 搜索)
来源仓库:https://github.com/neil-bd/venn
安装命令:
openclaw skills install venn
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install venn

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

venn 支持对企业级工具(如 Jira、Slack、Notion 等)进行语义化搜索与操作。适用于 OpenClaw 中需要跨系统集成或快速定位企业应用功能的场景。可通过自然语言指令触发工具调用,具体支持列表与认证方式请查阅项目文档。使用前需授权访问目标平台账号,注意权限最小化原则,避免过度暴露敏感信息。

建议定期检查技能更新与维护状态,确保与企业 SSO 或 API 变更兼容。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install venn;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

venn 怎么安装?

在终端执行 openclaw skills install venn。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

venn 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

venn 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

venn 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

venn 用的人多吗?

公开数据是累计安装 15,076 次,近一周安装 604 次,下载 4,880 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

venn 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
venn

venn 搜索 · 本页

15,076—接触敏感数据MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
venn
description
>-
metadata
{"openclaw": {"requires": {"env": ["VENN_API_KEY"]}, "primaryEnv": "VENN_API_KEY"}}

Venn Tools

Connect to enterprise SaaS tools through the Venn platform REST API.

Setup

This skill is gated on VENN_API_KEY — it won't appear until the key is set.

  1. Get your API key from app.venn.ai
  1. Add it to the OpenClaw .env file:
   echo 'VENN_API_KEY=your-api-key-here' >> ~/.openclaw/.env
  1. Restart the gateway (picks up the new env on start):
   openclaw gateway restart

Or, for zero-downtime reload without restart:

   openclaw secrets reload

Alternatively, use the interactive secrets helper:

openclaw secrets configure --skip-provider-setup

Sandboxed agents: The .env file injects into the host process only. For sandboxed (Docker) sessions, also add VENN_API_KEY to agents.defaults.sandbox.docker.env in openclaw.json, or bake it into your custom sandbox image.

Configuration

  • VENN_API_KEY (required) — your Venn API key
  • VENN_API_URL (optional) — defaults to https://app.venn.ai/api/tooliq

Request Format

All requests use POST with JSON. Examples below use this shorthand:

# Full form (shown once):
VENN_URL="${VENN_API_URL:-https://app.venn.ai/api/tooliq}"
curl -s -X POST "${VENN_URL}/tools/search" \
  -H "Authorization: Bearer ${VENN_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"query": "..."}'

# Shorthand (used throughout):
# POST /tools/search {"query": "..."}

1. Discovery

List connected servers

# POST /tools/help
{"action": "list_servers"}

Returns result.servers[] with server_id, name, and connection_status.

Other help actions:

  • getting_started — onboarding guidance
  • connector_help — info on connectors (pass server_id for specific one)
  • auth_helper — OAuth re-auth URL for disconnected server (requires server_id)

Search for tools

# POST /tools/search
{"query": "jira search issues", "limit": 10}

Returns result.candidates[] with server_id, tool_name, short_description, and (for top results) full inputSchema.

Additional parameters: offset, min_score (0–1, default 0.3), min_results (default 5), include_skills (default true).

Search strategy — broad first, narrow if needed:

  1. Start with the full task description in natural language (skills match better):

- "create a linear ticket and set it to in progress" - "sync salesforce contacts to a google sheet"

  1. If no skill matches, decompose into one search per platform + action:

- "query salesforce contacts" + "create google sheets row"

  1. For simple single-platform tasks, search directly: "create salesforce lead"

Splitting rules:

  • 1 search = 1 platform + 1 action (no single tool handles compound actions)
  • Always include the app name in each query
  • "recap"/"summarize" → search the platform, then present
  • "cross-reference"/"compare" → search each platform, combine results
  • "sync X to Y" → search source, then destination

If no results, try alternate names:

  • "jira" → "atlassian"
  • "google docs" → "google-drive" or "googledocs"
  • "github" → "github-cloud"

Choosing from results:

  • Read operations → prefer broad query tools over get-by-ID
  • Create/update → look for specific create/update endpoints
  • If a skill appears (type="skill"), prefer it over assembling tools
  • inputSchema is the source of truth for parameter names — NEVER guess

For platform-specific query syntax (JQL, SOQL, Gmail search), see references/query-syntax.md.

Describe a tool

# POST /tools/describe
{"tools": [{"server_id": "SERVER_ID", "tool_name": "TOOL_NAME"}]}

Supports batch requests. Returns result.results[] with inputSchema, description, and write_operation type.


2. Execution

Schema adherence (most common source of errors)

  1. Copy parameter names verbatim from inputSchema — casing matters

- Schema says maxResults → use maxResults, NOT max_results

  1. Match data types exactly:

- "type": "string" → "10", NOT 10 - "type": "integer" → 10, NOT "10" - "type": "array" → ["value"], NOT "value" - "type": "object" → {"key": "value"}, NOT "key=value"

  1. Include all required fields. Do not add fields not in the schema.

Execute a single tool

# POST /tools/execute
{"server_id": "SERVER_ID", "tool_name": "TOOL_NAME", "tool_args": {...}}

Translating user intent into values (infer rather than ask):

  • "recent tickets" → reasonable date range (e.g., last 7 days)
  • "my emails" → userId: "me"
  • "the main channel" → search for it by name first
  • "current sprint" → the active sprint

This applies to values only — parameter names and types must come from inputSchema.

Data integrity: NEVER fabricate data. Only present what appears in actual responses.

Handling links: For create/edit operations, surface clickable URLs from fields like url, link, href, web_url, permalink, html_url. Present as [Resource Name](url).

Execute a workflow (multi-step)

Chain multiple tool calls in a Python sandbox:

# POST /tools/execute-workflow
{
  "code": "results = call_tool(\"atlassian\", \"searchByJQL\", jql=\"assignee = currentUser() AND status != Done\")\
return [{\"key\": i[\"key\"], \"summary\": i[\"fields\"][\"summary\"]} for i in results.get(\"issues\", [])]",
  "timeout": 180
}

When to use workflows:

  • Multiple tool calls in sequence
  • Parallel execution across services
  • Data processing, iteration, or transformation

Code rules:

  • Follow schema adherence rules above
  • Write flat, inline code — no helper functions
  • Code must return a value; extract only needed fields
  • Check for errors: if isinstance(result, dict) and "error" in result: ...
  • For pagination, loop until no more nextPageToken/cursor

Available in sandbox:

  • call_tool(server_id, tool_name, **kwargs) — sequential
  • async_call_tool(server_id, tool_name, **kwargs) — for asyncio.gather()
  • call_skill(skill_id, inputs_dict) / async_call_skill(...) — call skills
  • Modules: asyncio, json, datetime, math, re, collections, itertools, functools, operator, decimal, uuid, base64, hashlib
  • No network, filesystem, or subprocess access
  • No augmented assignment on subscripts: use d[k] = d[k] + 1, NOT d[k] += 1

3. Write Operation Confirmation

Write/delete operations return an audit response instead of executing. To proceed:

  1. Show the operation summary to the user and wait for explicit approval
  1. Get a confirmation token (expires in 60s):
   # POST /tools/confirm
   {"server_id": "SERVER_ID", "tool_name": "TOOL_NAME"}
  1. Re-send with the token:
   # POST /tools/execute
   {"server_id": "...", "tool_name": "...", "tool_args": {...}, "confirmed": true, "confirmation_token": "TOKEN"}

Never call confirm without user's typed approval ("yes", "confirm", "proceed").


4. Skills

Skills are pre-built workflow patterns in search results with type: "skill". Prefer skills over assembling individual tools.

Executable skills

Marked executable: true. Run step-by-step:

# POST /tools/execute
{"tool_name": "SKILL_ID", "tool_args": {"step_id": "FIRST_STEP", "inputs": {...}}}

Each step returns outputs and next. If next is not null, read next.reasoning, fill placeholders, make the next call.

Guidance skills

For skills without executable: true, describe to get the pattern:

# POST /tools/describe
{"tools": [{"tool_name": "SKILL_NAME"}]}

Returns tools_involved, all_servers_connected, disconnected_servers, and step-by-step content. If all_servers_connected is false, use help(action="auth_helper") first.


5. Error Recovery

If a tool call fails, debug and retry — do not report failure immediately.

ErrorAction
Schema/parameter errorRe-read inputSchema, fix names and types, retry
404 / "not found"Wrong ID or tool; search for correct ID
Server not connected / 401Call help(action="auth_helper", server_id="...")
Empty resultsTry fuzzy variations, broader date ranges
Same error twiceTry different approach (different tool/parameters)
Workflow fails twiceFall back to sequential execute calls

Only report failure after at least three different approaches have been tried.


Guardrails

  • Start with list_servers or search to discover what's connected
  • Always have inputSchema before executing (from search or describe)
  • Match parameter names and types exactly
  • Never fabricate data — only present actual responses
  • Never execute writes without explicit user approval
  • Prefer workflows for multi-step operations
  • Prefer skills over assembling individual tools
  • Pass session_id and user_intent on calls for tracing (API generates one if omitted)

平台分布

OpenClaw

81.57%
按下载量换算3,981

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills