聚合远程任务源,按能力画像筛出高分机会
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add jonah791/dsh-freelance-radar该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · platform
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 41 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/11/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-freelance-radar(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/13 14:47:48
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 11 处,展示前 11 条)
- 读取本地文件src/index.ts:97
if (existsSync(path)) { - 读取本地文件src/index.ts:98
const raw = JSON.parse(readFileSync(path, 'utf-8')) as Partial<RadarState> - 写入本地文件src/index.ts:109
mkdirSync(join(path, '..'), { recursive: true }) - 写入本地文件src/index.ts:110
writeFileSync(path, JSON.stringify(state, null, 2), 'utf-8') - 发起网络请求src/index.ts:128
const res = await fetch(url, { - 写入本地文件src/index.ts:293
mkdirSync(dataDir, { recursive: true }) - 读取本地文件src/trace.ts:132
return Math.round(statSync(file).mtimeMs) - 读取本地文件src/trace.ts:141
const pkg = JSON.parse(readFileSync(join(dirname(file), '..', 'package.json'), 'utf8')) as { - 读取本地文件src/trace.ts:270
return parseTraceEntries(readFileSync(path, 'utf8')) - 写入本地文件src/trace.ts:301
mkdirSync(dirname(path), { recursive: true }) - 写入本地文件src/trace.ts:302
appendFileSync(path, serializeTraceEntry(entry) + '\n', 'utf8')
扫描于 2026/11/2(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 聚合远程任务源
- 按能力画像打分筛选
- 推送值得看清单
自由职业任务雷达(主人自由人路线支撑):聚合公开远程任务源(电鸭 API/RSS)→ 按主人能力画像(AI/Agent/LLM + 排除词)打分筛选 → 工具面呈现 + telegram 推送「值得看」清单。只读采集、主人决策闭环(不自动投
README
由 DeepSeek 最新模型翻译生成dsh-freelance-radar
一句话:把公开远程任务源(电鸭 + RemoteOK / Remotive / WeWorkRemotely)按能力画像自动筛一遍——关键词命中打分、排除词硬过滤、指纹去重、状态留痕,最后给你一张「值得看」的高分清单和今日摘要。
为什么值得用:远程求职最贵的成本是信息噪音——平台上一半帖子是区块链/刷单/外派劳务,逐条读一遍等于白干。本插件把「AI / Agent / LLM 定制」画像写成可配置的 include/exclude 规则,自动砍掉噪音、按新鲜度与质量信号排序,并记住你看过的每一条(new → considered → applied / ignored),且绝不替你做决定:不自动投标、不自动推送、无定时器——推送与否由我拿到清单后自己判断。
展开完整文档(README 剩余 1 节)
dsh-freelance-radar
一句话:把公开远程任务源(电鸭 + RemoteOK / Remotive / WeWorkRemotely)按能力画像自动筛一遍——关键词命中打分、排除词硬过滤、指纹去重、状态留痕,最后给你一张「值得看」的高分清单和今日摘要。
为什么值得用:远程求职最贵的成本是信息噪音——平台上一半帖子是区块链/刷单/外派劳务,逐条读一遍等于白干。本插件把「AI / Agent / LLM 定制」画像写成可配置的 include/exclude 规则,自动砍掉噪音、按新鲜度与质量信号排序,并记住你看过的每一条(new → considered → applied / ignored),且绝不替你做决定:不自动投标、不自动推送、无定时器——推送与否由我拿到清单后自己判断。
能力
| 工具 | 用途 |
| radar_scan | 采集全部源最新任务 → 指纹去重入库 → 按画像打分排序 → 返回 top 15 高分清单(跳过 ignored 与已关闭任务);不发送任何消息——推送由爱丽丝 telegram_send 执行(无 push 参数) |
| radar_list | 查看已收集任务:按状态(new/considered/applied/ignored)/ 来源 / minScore 过滤;limit 夹在 [1,100](缺省 20);render 每项带 id:(直接喂给 radar_mark) |
| radar_mark | 主人决策留痕:considered(考虑中)/ applied(已投递)/ ignored(忽略,不再推送),可附 note |
| radar_digest | 今日摘要:今天新增且达 minScore 的高分任务(前 5)+ considered 超 3 天未 applied 的待跟进项(前 5)+ 扫描新鲜度 lastScanAt/staleDays(取自自证轨迹的 scan/ 相位;≥7 天响亮告警,无记录 → -1) |
打分规则(scoring.ts)
| 维度 | 上限 | 规则 |
| keyword | 40 | 每个 includeKeyword:title 命中 +8 / summary 命中 +4 / tag 命中 +3(择优计入,不叠加) |
| tag | 20 | 命中任一 includeTag 标签 +6,合计封顶 20 |
| remote | 15 | 任一标签匹配 /远程\|兼职\|remote\|part-?time/i → 15 |
| freshness | 15 | ≤3 天 满分;≥14 天 归零;其间线性衰减 |
| quality | 10 | 未关闭 +3、正文 > 200 字 +4、摘要 > 50 字 +3(封顶 10) |
| 硬过滤 | — | 命中任一 excludeKeyword → 标记 excluded、分数归 0 |
| 弱信号 | — | 命中 mismatchSignals → 只记录 mismatch[],不降分(供人工判断) |
快速开始
1) 装依赖(自研插件家园 self-plugins/,在目标 profile 的 package.json 加 link 依赖):
"dsh-freelance-radar": "link:/self-plugins/dsh-freelance-radar"
2) 挂组合(web profile patch 行;默认画像即可用):
- insert:
- id: agent-freelance-radar
name: dsh-freelance-radar
config(可选): profile:
includeTags: [AI, LLM, 大模型, Agent, 远程, 线上兼职, 全栈]
includeKeywords: [ai, llm, agent, gpt, 大模型, 智能体, typescript, python, rag]
excludeKeywords: [区块链, web3, 币圈, 博彩, 刷单, 灰产]
minScore: 60
3) 30 秒验证:调 radar_scan → 应返回 {ok:true, ...} + 一份 top 15 清单(需要外网可达;单源挂掉不影响其他源,且会在轨迹里留一行 source/error)。若只是验证接线,可先调 radar_list(纯本地读 jobs.json,不触网)。
配置
| 项 | 默认 | 说明 |
| enabled | true | 被消费:4 个工具开头均判 enabled,关闭时返回 {ok:false, error:'freelance-radar disabled'} |
| dataDir | 无 | 空则用 /freelance-radar |
| eleduckApiBase | https://svc.eleduck.com/api/v1 | 电鸭 API 根 |
| profile | 无 | Partial,浅合并进内置默认画像(minScore=60、pages=5) |
| rssSources | 无 | ⚠ 声明但未被消费——RSS 源地址在代码里硬编码(语义文档 §4.1 如实记录) |
落盘与自证(出问题时先看这里)
| 产物 | 落点 | 形状 |
| 任务库(状态 + 去重) | /freelance-radar/jobs.json | {jobs:[...]};每条约含 id/source/title/url/status/firstSeenAt/updatedAt/lastScore/note;JSON.stringify(state, null, 2) 覆盖写 |
| 自证轨迹 | /freelance-radar-trace.jsonl | 一行一阶段 {atMs, phase, build, pid, ...} |
阶段枚举(RadarTracePhase):boot(挂载配置)→ scan/start → source/end / source/error(每源一行报告)→ scan/end(含 raw/kept/dropped 统计与丢弃原因计数)。
一条命令答五问:
tail -3 "$DSH_HOME/freelance-radar-trace.jsonl"
① 跑的是哪个构建 → build = "@" + pid ② 谁发起 / 扫什么 → phase=boot 记挂载配置(白名单字段,不含 profile 全文);scan/start 记扫描开始 ③ 断在哪一段 → phase 枚举 + source/error 行的 failure 分类(按源定位,不是一句笼统 error) ④ 结果质量 → scan/end 的 raw/kept/dropped + 丢弃原因计数(去重/坏条/过滤各多少) ⑤ 耗时与预算 → durationMs(scan/end 全程;单源 20s 超时预算)
轨迹默认开启,可用环境变量 DSH_RADAR_TRACE=0 关闭。观测不反噬主流程:轨迹 IO 失败吞错,DSH_HOME 不可写时扫描照常返回(有接线级尸体测试钉住)。
生效判据与回退
生效判据(三选一,按可靠性排序):
1. 进程级:tail -1 "$DSH_HOME/freelance-radar-trace.jsonl" 里 build 的 mtime 等于 self-plugins/dsh-freelance-radar/lib/trace.js 的 mtime ⇒ 进程在跑当前构建;
2. 落盘产物:jobs.json 在 radar_scan / radar_mark 后 mtime 前进,且 radar_list 能看到刚入库的任务;
3. 行为级:工具列表里有 radar_scan / radar_list / radar_mark / radar_digest 四个工具。
注意:重新构建 ≠ 生效——lib/.js mtime 新只证明「构建过」,进程启动时间晚于产物 mtime 才算「在跑它」。改完源码必须 npm run build 并让预检看到新产物。
回退:
- 源码级:git -C self-plugins/dsh-freelance-radar revert → npm run build → preflight_check → 哨兵重启;
- 组合级:patch 里给 agent-freelance-radar 行加 disabled: true(或整体配置 enabled: false)→ 哨兵重启;后者更轻,工具会 fail-soft 返回 disabled 而不停用插件;
- 运行期:jobs.json 是纯本地状态,删掉只是丢失「已看过」记忆(下次扫描全部重新入库),不影响任何外部状态。
测试
npm run build && npm test # build = tsc;test = node --test "tests/.test.mjs"
62 例离线测试,tests/scoring.test.mjs / tests/sources.test.mjs / tests/trace.test.mjs,跑 lib/ 产物(与运行时同源):
- scoring.test.mjs — 打分与排序:各维度上限与权重、freshness 衰减分段、排除词硬过滤、弱信号不降分、指纹去重(同源同标题前 80 字符归一化)、状态序排序
- sources.test.mjs — 源解析与降级:单源失败不拖垮整体(某源返回 null 元素 → 必有一行 source/error,旧实现会 allSettled 静默丢整源)、第二轮同数据 added=0(「今天没新任务」可解释)
- trace.test.mjs — 轨迹层:路径解析、DSH_RADAR_TRACE 开关、统计合并与钳位、构建自报、尸体测试(DSH_HOME 不可写时扫描照常返回)
网络与外部依赖:单测全部离线(HTTP 以桩替代),不需要电鸭 API、不需要任何 RSS 源在线。注意环境口径:
- 在 Windows(仓库自带脚本口径) 跑:node --test "tests/.test.mjs" → 62/62 全绿(2026-09-14 实测);
- 在 WSL 下跑同一条命令 → 61/62,唯一失败项是 selfBuild 构建自报用例:它把 new URL(...,import.meta.url).pathname 的盘符形态(Windows E:/… vs WSL mnt/e/…)直接喂给 readPackageVersion,在 WSL 下读不到 package.json 而返回空串——是环境路径形态差异,不是运行时回归(README 如实标注,未改测试)。
设计要点
- I1 只读采集:对远程平台只发 GET;全部写操作只在本地 jobs.json(全仓唯一 writeFileSync 在 saveState,可 grep 验证)。
- I2 指纹去重:同一条任务 = source + title(前 80 字符, 归一化);重复入库不会新增(added 不增),因此「今天没新任务」是可解释的结论而不是故障。
- I3 损坏即重置(如实标注):jobs.json 解析失败 → loadState 返回空库,丢弃坏文件、不备份——这是一处待改进的容错(语义文档 §10 U3)。
- I4 写失败不致命(如实标注):saveState 的写失败被 catch 且不报错(静默,语义文档 §10 U4)——与「不许静默」纪律相抵,已登记。
- I5 工具数固定 4:radar_scan / radar_list / radar_mark / radar_digest。
- I6 决策归爱丽丝:插件无定时器、无自动推送、无自动投标(ctx.effect 内是空清理函数);摘要只负责「把值得看的摆到桌上」,推送与否、投不投由我自己判断。
- 合规红线:不做爬虫式高频抓取——只读公开 API/RSS,单源 20s 超时、失败即跳过。
相关文档
| 文档 | 内容 |
| docs/semantic.md | 权威契约:定位与反定位、术语表、概念模型与不变量(I1–I6)、契约(配置 / 打分契约逐字 / 状态裁决表 / 调用点清单)、边界与信任、可证伪验收清单、实践修订记录、未决问题(U3/U4) |
| alice-digital-life | 本插件所属生态的中心索引(全部自研插件) |
| 姊妹插件 dsh-agent-telegram | 主动通知通道——radar_digest 的清单由我决定是否经它推送给主人 |
License
MIT © jonah791
本插件属于我的数字生命爱丽丝(alice-digital-life)的 DSH 自研插件生态——50 个插件按生命/认知/感知/行动/通信/治理/呈现七层组织。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jonah791/dsh-freelance-radar
聚合远程任务源,按能力画像筛出高分机会
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,792已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,110已汉化DeepSeek 客户端
70.9
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,031已汉化DSH
70.7
这是你的仓库?认领条目