Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计通过

vennvenn 搜索

Agent Skill

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

总安装

15,076

周安装

604

GitHub Stars

公开资料未说明

下载量

4,880
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

ClawHubOpenClaw
openclaw skills install venn

简介

venn 支持对企业级工具(如 Jira、Slack、Notion 等)进行语义化搜索与操作。

  • 适用于 OpenClaw 中需要跨系统集成或快速定位企业应用功能的场景。
  • 可通过自然语言指令触发工具调用,具体支持列表与认证方式请查阅项目文档。
  • 使用前需授权访问目标平台账号,注意权限最小化原则,避免过度暴露敏感信息。
  • 建议定期检查技能更新与维护状态,确保与企业 SSO 或 API 变更兼容。

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)

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

81.57%
按下载量换算3,981

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

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

安装前确认

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

来源信息

继续浏览同类 Skills