Tencent/WeKnora--packages-dsh-weknora ↗★ 20k
@wxg-prc-cpg/dsh-weknora
WeKnora knowledge retrieval tools for DeepSeek Harness (dsh): semantic search, document reading and RAG/agent answers over your own knowledge bases.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Tencent/WeKnora#4e25684b8ff55a70a55c03730d81457c14521d3c&path:packages/dsh-weknora说明文档
阅读完整 README ↗@wxg-prc-cpg/dsh-weknora
English | 简体中文
A DeepSeek Harness (dsh) plugin that gives the harness agent
first-class access to a WeKnora knowledge base: hybrid retrieval, full document
reading, and WeKnora's own composed answers with citations.
dsh ships no retrieval, embedding or knowledge-base capability of its own — its search tools (grep, glob) read the
workspace, and web_search reads the internet. This plugin fills that gap with your organization's documents.
Install
# from npm (recommended: installs prebuilt code, no build permission needed)
dsh plugin --profile web add @wxg-prc-cpg/dsh-weknora
# or from a checkout of this repository
dsh plugin --profile web add ./packages/dsh-weknora
Then point it at your deployment. The shipped configuration layer reads environment variables, so the quickest start is:
export WEKNORA_BASE_URL=https://weknora.example.com # or http://localhost:8080
export WEKNORA_API_KEY=sk-... # a WeKnora API key with `retrieve` (+ `chat` for ask)
export WEKNORA_KNOWLEDGE_BASE_IDS=kb-123,kb-456 # optional default scope
dsh web
For anything beyond that, override the row from your profile's cordis.patch.yml
($DSH_HOME/profiles//cordis.patch.yml):
- id: weknora
config:
baseUrl: https://weknora.example.com
apiKey: !!js process.env.WEKNORA_API_KEY
knowledgeBaseIds:
- kb-product-docs
agentId: '' # a WeKnora custom agent id makes `weknora_ask` use the ReAct pipeline
maxResults: 8
maxChunkChars: 1200
requestTimeoutMs: 30000
chatTimeoutMs: 300000
resourceUrls: handle # `public` asks WeKnora for directly loadable file URLs in citations
toolPrefix: weknora # rename the tools, e.g. to mount two deployments side by side
tools:
listKnowledgeBases: true
search: true
readDocument: true
ask: true
A patch replaces the row's whole config, so restate every field you keep. Invalid configuration fails the plugin load
with a message naming each violation, rather than failing inside the first tool call.