前言¶
在 DSH 里跑智能体,常见做法是:你在 Web GUI 或某个 Session 里下指令,等它跑完再自己去找产物。定时任务、聊天消息、本地目录里丢下的 .md,往往要分别接进不同脚本或手工触发。myagent 把这个层次收成一套 bundle:多种来源经同一道确定性门禁变成 Ticket,每个 Ticket 在独立 DSH Session 和目录里无人值守执行,结果按「从哪来、回哪去」送回聊天室或文件。
下面按定位、能力、安装与典型用法说明 liyabgf/dsh-myagent,事实以仓库 README 与发布包为准。
这是什么¶
一句话:把你用一句话说清楚的事,无人值守做完,再把结果送回你说话的地方。
- 维护者:liyabgf
- 仓库:https://github.com/liyabgf/dsh-myagent
- 目录页:https://www.skillhub.cn/plugins/liyabgf/dsh-myagent
- 形态:DeepSeek Harness(DSH)bundle,随包提供
lib/、panel/、bridges/、prompts/等;docs/、src/、tests/不随安装包发布,深入设计说明需在 GitHub 仓库查看。
目标用户是一个人、一台自己的机器,不是团队多租户平台。它假定「能在本机写文件、能发 HTTP 请求的进程 = 操作者本人」,安全边界见仓库 SECURITY.md。装之前应先读 SECURITY.md:worker 无 OS 级沙箱,面板与 API 不在宿主统一认证之后。
核心功能¶
请求怎么走¶
定时排期、本地投递目录、主 Session 对话、规则、聊天平台五条来路,经同一道 gate(trigger, settings) 判定为 accepted、observed 或 ignored,理由固定八种(如 sender_not_allowed、paused、accepted 等),每次判定写入 Decision,面板可查「为什么没跑」。
放行后生成 Mandate 与 Ticket;Assignment 表示一轮执行,失败、中断、等人后再继续都会留历史。worker 通过 myagent_report 汇报状态(progress / waiting / ready / blocked / failed / dropped);结束时在 Ticket 目录写 RESULT.md,并送回来源(聊天消息或文件等)。跨进程副作用走持久化 effect 队列,崩溃后可重试。
架构裁剪自 dsh-superagent-prototype,保留 Source / Trigger / Policy / Decision / Mandate / Ticket / Assignment / Report / Delivery 等概念;门禁是确定性的,不做模型评审。
五条来路(摘要)¶
| 来源 | 触发方式 | 说明 |
|---|---|---|
cron |
排期到点 | every / daily / weekly / cron,含时区;漏跑时刻可折叠 |
inbox |
向目录丢 *.md |
约每 5 秒轮询;支持 front matter 的 title、scope、attach |
session |
主 Session 中 myagent_create_ticket 或面板派活 |
走同一门禁 |
rule |
事件驱动(如 Ticket 结束) | then 里配置 prompt 与 scope |
chat |
Telegram / 飞书消息经桥写入频道目录 | 凭据不进 myagent 设置,只在桥进程 env |
聊天桥在 bridges/telegram/、bridges/lark/;面板「聊天」页做接入引导(systemd / launchd 单元、env 路径、频道健康),不代管桥进程起停。
面板与日常界面¶
装好后第一件事:面板在 <你的 DSH Web GUI 地址>/myagent/(与 GUI 同端口子路径)。侧边栏设置旁会出现「myagent 面板」入口。日常下任务、收结果以 Telegram 或飞书为主;面板用于查账与干预。
默认 acceptMode 为 observe:门禁与 Decision 照常,但不执行、不写领域数据。确认记录合理后,再在面板改为 auto。
API 要求同源 loopback,并带请求头 x-myagent-request: 1(详见 SECURITY.md)。
刻意不做的边界¶
- 不做真沙箱:worker 为完全访问;设
executor.sandbox为vm不会假装隔离。 - 不做多用户权限体系;发送者过滤依赖映射表与文件系统权限。
- 产物可跨任务复用、手艺可沉淀,README 称这些默认自动处理,无需逐项批准。
bundle 注册 worker 专用 preset myagent-worker(去掉会向人提问、审批等易挂起无人值守的工具);主 Session 仍用 profile 默认 preset,额外挂载 myagent 工具与提示词。
安装与启用¶
在 DSH 宿主中安装 bundle(命令以 README 为准):
plugin_manager install_bundle target=github:liyabgf/dsh-myagent
装进当前 profile 后启用 myagent 插件即可;路径类配置有默认值,不必先改 profile:
| 配置项 | 默认 | 说明 |
|---|---|---|
stateDir |
<DSH_HOME>/state/myagent |
数据库与锁;修改会重挂插件 |
workRoot |
<stateDir>/work |
各 Ticket 工作目录根 |
inboxDir |
<stateDir>/inbox |
本地投递目录 |
mainSessionId |
myagent-main |
前台主 Session |
promptMaxChars |
100000 |
提示词覆盖上限 |
package.json 标明许可证 MIT,当前发布版本 0.14.3;引擎要求 Node ^22.19.0 || >=24.0.0,DSH ^0.2.1-alpha.3 等 peer 依赖以包内 engines / peerDependencies 为准。
启用后可在日志中查看面板完整 URL,或访问 /myagent/api/state 的 health 排查问题。
典型用法¶
1. 先观察门禁,再自动执行¶
- 安装并启用插件,保持默认
observe。 - 打开
http://<DSH Web GUI>/myagent/,查看 Decision 与来路是否符合预期。 - 将
acceptMode改为auto,再发真实任务。
2. 本地 inbox 投递¶
向 inboxDir(默认 <stateDir>/inbox)放入 .md,例如:
---
title: 本周竞品动态
scope: 只读 ~/notes,产物写在本目录
attach: /abs/last-week.csv
---
整理这三家的更新,产出 digest.md 和 table.csv。
轮询接手后,文件会移到 accepted/、observed/ 或 rejected/(拒绝原因写在文件头)。
3. 聊天接入(Telegram / 飞书)¶
在面板「聊天」页按引导配置桥的环境变量与系统服务;消息写入频道目录后作为 chat 来源进入门禁。未映射发送者的消息会保留,映射补齐后由后续扫描放行。在聊天里回复机器人报告并追问时,系统可把追问与已完成任务归到同一工作上下文(门禁放行后处理)。
4. 主 Session 派活¶
在主 Session 调用 myagent_create_ticket,或在面板「派活」,与 inbox、cron 一样过同一门禁。
适用场景与注意¶
适合:个人单机、希望用聊天室下指令并无人值守收结果;需要 cron + 目录投递 + 规则联动;愿意用面板做监督而非日常主界面。
不适合:需要强隔离多租户、或把凭据写进面板 JSON 的团队平台场景。
安全与权限:插件以当前 DSH 进程权限运行;worker 无沙箱。安装前请阅读源码与 MIT 许可证,并阅读 SECURITY.md。社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,属 DSH 生态「一切皆插件」下的第三方 bundle。
结尾¶
myagent 把「多条来路 → 一道门禁 → 独立 Session 执行 → 按路返回」收进一个 DSH bundle,默认先 observe 再 auto,聊天优先、面板查账。若要试用,用官方 plugin_manager install_bundle 安装,从 /myagent/ 面板与 SECURITY.md 开始即可。