演示如何构建常驻式 agent(Janus),通过信号收集器、注意力排序、风险治理、人工审批网关等设计规避隐私风险。
我尝试过的大多数「AI Agent」都是 prompt-first:你输入一些内容,它们给出回答,然后就结束了。我想要的是更接近真正助理的东西——它能够留意我的电脑上正在发生什么,并自行判断是否需要采取行动,而不必等我先打开聊天窗口。正因如此,我开发了 Stram。
仓库:https://github.com/CodeInfinity1/Stram(采用 MIT 许可证,版本 v1.0.1)
Stram 是 Janus 的运行时、桌面应用和发布载体,而 Janus 则是运行在其中的 Agent。Janus 并不是一个等待你发送下一条消息的聊天机器人——它被设计为随时可用、能够感知上下文,并可以通过受治理的工具,自主采取下一步安全行动。
整个流程如下:
\text 刺激信号 -> 交互控制层 -> 精简的本地上下文 -> 模型主导的注意力与规划 -> 经过 schema 验证的工具调用 -> 策略与审批关卡 -> 执行与审计时间线 -> 记忆、学习、恢复与响应生成 \
Collectors 会监控用户主动授权的范围——当前活跃应用、浏览器、文件、shell 输出、频道和语音——并将原始事件转换为结构化信号,而不是直接把原始隐私数据塞进 prompt。
在模型开始制定任何计划之前,Attention 会根据紧迫性、相关性和风险对这些信号进行排序,因此并非每个事件都会触发行动。
Janus 会判断应该采取哪种姿态:立即响应、静默观察、请求澄清、起草回复、监控某个条件,或者请求批准。
Governance 意味着,任何存在风险的操作——执行 shell、修改浏览器状态、发送消息——都会暂停,等待你的明确批准,同时记录完整的审计轨迹,包括工具、目的、风险以及拟议参数。
Memory 会让目标、承诺、环境事实和经验教训跨会话持久保存,并按任务进行隔离,确保在正确的场景中,出于正确的原因召回正确的信息。
所有操作都通过你自己的模型服务商密钥运行——OpenAI、Anthropic、Groq、本地 Ollama,或者任何由你指定的服务。整个流程中不存在由我托管的后端。
\bash git clone https://github.com/CodeInfinity1/Stram.git cd Stram python3 -m pip install -e ".[browser,pdf,ocr,office,test]" python3 -m stram run "system_status {}" --workspace . --planner explicit \
或者启动本地 API 和 dashboard:
\bash python3 -m stram serve --workspace . --port 8765 \
仓库的 apps/\ 目录下还提供了原生 macOS(Swift)和 Windows(.NET)桌面壳应用。
我宁愿现在就把情况说清楚,也不希望你在踩坑之后才发现:
v1.0.1,仍处于早期阶段。核心运行时、工具契约和安全关卡已经有自动化测试覆盖,但 Collectors、频道和桌面端的实际行为,取决于你所配置的凭据和平台。
二进制文件目前尚未进行代码签名或公证。首次运行时,你会在 macOS 上遇到 Gatekeeper 警告,或者在 Windows 上遇到 SmartScreen 警告——README 中提供了相应的解决方法,正式签名也已经列入路线图。
你需要提供自己的模型 API key,或者使用本地 Ollama 模型——如果两者都没有,项目无法开箱即用。
在我无法接触到的 macOS/Windows 环境中进行测试。
找出审批与安全层中的漏洞——这个东西能够操作你的 shell 和浏览器,因此在它接触其他人的环境之前,我希望有持怀疑态度的人来严格审视它。
为尚未接入的浏览器和应用补充 Collector 覆盖。
完善文档——其中很多内容仍然是为已经深入了解代码的人编写的,而不是面向初次接触项目的读者。
CONTRIBUTING.md 中列出了贡献优先级和 PR 要求,SECURITY.md 则深入说明了安全模型。
真诚欢迎大家在评论区提供反馈,尤其是批评性的意见。
如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。