帮 Agent 找到合适协作者并安全交换上下文
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/14 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add GuoMonth/dsh-linko该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 20 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 32 处,展示前 32 条)
- 发起网络请求packages/bridge/src/client.ts:146
const payload = await this.request(path, { method: "POST", body: JSON.stringify(body) }); - 发起网络请求packages/bridge/src/client.ts:159
const payload = await this.request(`/v1/inbox${suffix}`); - 发起网络请求packages/bridge/src/client.ts:165
const payload = await this.request(`/v1/inbox/${encodeURIComponent(eventId)}`); - 发起网络请求packages/bridge/src/client.ts:170
const payload = await this.request("/v1/receipts", { - 发起网络请求packages/node/contract-smoke.mjs:10
const response = await fetch(`${base}${path}`, { - 发起网络请求packages/node/contract-smoke.mjs:29
assert.equal((await fetch(`${base}/v1/node`, { headers: { origin: "http://127.0.0.1:4173" } })).headers.get("access-control-allow-origin"), "http://12 - 读取本地文件packages/node/ledger-smoke.mjs:22
const text = await readFile(path, 'utf8'); - 删除本地文件递归packages/node/ledger-smoke.mjs:26
await rm(directory, { recursive: true, force: true }); - 发起网络请求packages/node/live-smoke.mjs:26
const response = await fetch(base + path, { - 执行外部命令固定命令packages/node/live-smoke.mjs:177
execFileSync('openssl', ['req', '-x509', '-newkey', 'rsa:2048', '-nodes', '-days', '1', '-subj', '/CN=127.0.0.1', '-keyout', join(work, 'key'), '-out' - 读取本地文件packages/node/live-smoke.mjs:178
const key = readFileSync(join(work, 'key')); const cert = readFileSync(join(work, 'cert')); - 删除本地文件递归packages/node/live-smoke.mjs:206
rmSync(work, { recursive: true, force: true }); - 写入本地文件packages/node/restart-recovery-smoke.mjs:12
mkdirSync(certDir); - 执行外部命令固定命令packages/node/restart-recovery-smoke.mjs:40
const output = execFileSync("openssl", ["x509", "-in", path, "-noout", "-fingerprint", "-sha256"], { encoding: "utf8" }); - 执行外部命令固定命令packages/node/restart-recovery-smoke.mjs:44
execFileSync("openssl", ["req", "-x509", "-newkey", "rsa:2048", "-nodes", "-days", "1", "-subj", "/CN=127.0.0.1", "-addext", "subjectAltName=IP:127.0. - 写入本地文件packages/node/restart-recovery-smoke.mjs:45
chmodSync(keyPath, 0o600); - 写入本地文件packages/node/restart-recovery-smoke.mjs:49
writeFileSync(path, JSON.stringify({ peers: [peer] })); - 写入本地文件packages/node/restart-recovery-smoke.mjs:50
chmodSync(path, 0o600); - 执行外部命令来自配置/变量packages/node/restart-recovery-smoke.mjs:53
const child = spawn(process.execPath, [join(root, "packages/node/dist/cli.js")], { - 发起网络请求packages/node/restart-recovery-smoke.mjs:79
const response = await fetch(`${base}${path}`, { ...options, headers: { "content-type": "application/json", ...(options.headers ?? {}) } }); - 删除本地文件递归packages/node/restart-recovery-smoke.mjs:152
rmSync(work, { recursive: true, force: true }); - 发起网络请求packages/node/smoke.mjs:11
const response = await fetch(`${base}${path}`, { - 发起网络请求packages/node/smoke.mjs:20
const response = await fetch(`${base}${path}`, { - 读取密钥环境变量packages/node/src/cli.ts:17
const keyPath = process.env.LINKO_TLS_KEY; - 读取本地文件packages/node/src/cli.ts:20
const peerServer = keyPath && certPath ? createPeerServer({ store, tls: { key: readFileSync(keyPath), cert: readFileSync(certPath) } }) : null; - 写入本地文件packages/node/src/ledger.ts:106
await appendFile(path, `${JSON.stringify(valid)}\n`, { encoding: 'utf8' }); - 读取本地文件packages/node/src/ledger.ts:113
text = await readFile(path, 'utf8'); - 读取本地文件packages/node/src/store.ts:130
const mode = statSync(path).mode & 0o777; - 读取本地文件packages/node/src/store.ts:132
parsed = JSON.parse(readFileSync(path, "utf8")); - 写入本地文件packages/node/src/store.ts:162
if (this.dbPath !== ":memory:") mkdirSync(dirname(this.dbPath), { recursive: true }); - 发起网络请求packages/web/src/api.ts:162
response = await fetch(`${base}${path}`, { ...init, signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS) }); - 发起网络请求packages/web/src/app.ts:343
function poll(): Promise<void> { return syncQueue.request(); }
扫描于 2026/11/3(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
开源、本地优先的信封消息,面向 DeepSeek Harness:TypeScript 节点、以人为先的收件箱、可解释的协作者发现,以及有界的局域网恢复。
README
由 DeepSeek 最新模型翻译生成Linko
Linko 是面向 DeepSeek Harness 的开源、本地优先信封消息项目。它帮助 Agent 找到合适的协作者,在明确的人类控制策略下交换有范围的上下文并继续任务。
Linko 已进入可运行的早期 MVP。本仓库仍采用规格驱动:运行时代码与产品边界、状态转移、投递恢复、隐私规则和架构决策并列维护。
为什么做 Linko
局域网消息和审批面板是有用的基础设施。Linko 增加的是随个人证据和上下文积累而变得更有用的协作层:
- 每个人和 Agent 都可以维护主观的能力声明;后续版本可以附加签名,但不生成全局信誉分。
- 任务查询可以给出带证据与解释的本地推荐。
- 上下文按范围和用途共享,不把完整私人历史广播出去。
- 人可以直接回复、让自己的 Agent 起草回复,或委托有边界的响应策略。
- 每次投递都是小型信封,包含人类可读封面、机器可读语义,以及可选的本地正文或安全界面。
- 第一版群配置档限制为 500 个成员主体;群投递与消息层 E2EE 分成不同里程碑。
项目状态
MVP 现在包含 SQLite 节点和以人为先的信封收件箱,并支持明确配对的双节点 HTTPS 配置档:持久出站队列、证书指纹固定、Bearer 认证、可重试 command ID 和 REST 恢复都已接通。
展开完整文档(README 剩余 1 节)
Linko Linko 是面向 DeepSeek Harness 的开源、本地优先信封消息项目。它帮助 Agent 找到合适的协作者,在明确的人类控制策略下交换有范围的上下文并继续任务。 Linko 已进入可运行的早期 MVP。本仓库仍采用规格驱动:运行时代码与产品边界、状态转移、投递恢复、隐私规则和架构决策并列维护。 为什么做 Linko 局域网消息和审批面板是有用的基础设施。Linko 增加的是随个人证据和上下文积累而变得更有用的协作层: - 每个人和 Agent 都可以维护主观的能力声明;后续版本可以附加签名,但不生成全局信誉分。 - 任务查询可以给出带证据与解释的本地推荐。 - 上下文按范围和用途共享,不把完整私人历史广播出去。 - 人可以直接回复、让自己的 Agent 起草回复,或委托有边界的响应策略。 - 每次投递都是小型信封,包含人类可读封面、机器可读语义,以及可选的本地正文或安全界面。 - 第一版群配置档限制为 500 个成员主体;群投递与消息层 E2EE 分成不同里程碑。 项目状态 MVP 现在包含 SQLite 节点和以人为先的信封收件箱,并支持明确配对的双节点 HTTPS 配置档:持久出站队列、证书指纹固定、Bearer 认证、可重试 command ID 和 REST 恢复都已接通。可替换的 TypeScript DSH companion bridge 已通过本地 API 提供 ask、inbox、inspect、draft、approve 和 reply 适配器。WebSocket 提示、消息签名和 E2EE 仍是后续里程碑;这不代表已经支持 2 万节点容量。 - 产品范围:English · 中文 - 架构:English · 中文 - 数据与状态:English · 中文 - 复盘记录:English · 中文 - Roadmap:English · 中文 - 决策记录:English · - 本地节点 MVP:English · - DSH companion bridge:English · - 信封收件箱 UI:English · 中文 设计方向 第一版物理存储是一个 TypeScript 节点后的一个 SQLite 数据库。不可变事件内容是持久事实;投递尝试、已读、审批和通知是本地运行状态。REST 游标拉取用于恢复,WebSocket 只是可选唤醒提示。未来可以把声明物化为图视图,但第一版不需要图数据库。 网络从普通 IP、TCP 上的 HTTPS 和可选 WebSocket 开始,使用显式配对与可选 mDNS 提示。不要求任何路由器或交换机特性。DHT、Merkle 同步、全连接 socket、区块链共识和 Rust/WASM 都是停车场实验,必须先有测量理由和回退测试。 DeepSeek Harness 适配 Linko 计划作为 DeepSeek Harness 生态的社区插件和伴随协议。它吸收 Harness 的可组合插件理念,同时保持协议可以被其他 Agent 和客户端独立使用。 贡献 请阅读 CONTRIBUTING.md 和仓库规则 AGENTS.md。当前最有价值的贡献是设计审查、威胁建模、互操作实验和小型协议 fixture。 Topics 仓库主题包括 dsh、dsh-plugin、deepseek-harness、agent-collaboration、local-first、lan-messaging、envelope-messaging、human-in-the-loop、sqlite、typescript 和 pnpm。 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
GuoMonth/dsh-linko
帮 Agent 找到合适协作者并安全交换上下文
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,173已汉化DeepSeek 客户端
74.4
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,636已汉化DSH
72.2
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,308已汉化DSH
71.3
智能体运行框架路由HarnessRouter/harnessrouter
智能体运行框架的统一接口。
★ 3,897已汉化DSH
71.2
这是你的仓库?认领条目