Photo-agents

jmerelnycMIT更新放缓

让 LLM 智能体自主操作电脑的框架,靠视觉感知的分层记忆和自写技能实现自我进化,解决智能体长期记忆与能力积累问题。

Autonomous self-evolving agents. Vision-grounded layered memory and self-written skills for LLM agents that operate your computer.

暂无版本651star22fork同步于 2026-11-07 07:31 UTC

怎么上手

由 README 提炼,执行前请确认
pip install photoagents
cp photoagents/config/keys_template.py credentials.py
python -m photoagents
硬件要求按 README 说明

README 未说明显存或 GPU 要求;需 Python 3.10+,已在 Windows、macOS、Linux 上测试,代理循环需联网访问 LLM 提供商。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

本地运行的自主自进化 LLM 代理运行时,靠视觉感知操作你的电脑

让 LLM 智能体自主操作电脑的框架,靠视觉感知的分层记忆和自写技能实现自我进化,解决智能体长期记忆与能力积累问题。

核心能力

  • 用 perceive→reason→act 流式循环驱动任意支持工具调用的 LLM
  • 分层记忆:工作/全局/SOP/会话归档四层,代理从成功经验自写技能
  • 内置文件 IO、沙箱代码执行与 CDP 浏览器自动化工具集
  • 多提供商路由,原生支持 Claude 与 GPT 并带故障转移会话
  • 附带 Streamlit、PyQt 及 Telegram/飞书/企微/钉钉等客户端

容易踩的坑

启动前必须配置远程校验的 PHOTOAGENTS_API_KEY,否则拒绝启动;需自行复制模板填好 LLM 提供商密钥,否则选错模型;浏览器工具依赖 beautifulsoup4 且需 resources/tmwd_cdp_bridge/ 下的 CDP 配置。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Photo Agents

    License Python Status

    Autonomous self-evolving Photo Agents. A perceive / reason / act framework for photo-aware agents that operate your computer the way you do.

    "100% autonomous, self-evolving agents."

    Jump to: About · Install · Run · GUI clients · Troubleshooting · FAQ

    About

    Photo Agents is building the next generation of LLM-driven agents that ground in what they actually see on screen. Instead of dumping longer chat transcripts into a model and hoping for the best we treat memory the way biology does. Vision in. Bound observations stored in layers. Skills written by the agent itself from real success.

    The package in this repo is the runtime that ships that idea. It runs locally so you keep ownership of your screen, your data, and your keys.

    What it is

    Photo Agents is a single Python package that bundles:

    • A streaming agent loop that drives any tool-calling LLM through a perceive → reason → act cycle.
    • A multi-provider LLM router with first-class support for Anthropic Claude (native) OpenAI GPT (native) and a mixin failover session.
    • A physical-execution toolset: file I/O, sandboxed code execution (Python / PowerShell / bash), browser automation via a Chrome DevTools Protocol bridge and a layered memory system (working / global / SOP / session archive).
    • Pluggable clients: a polished Streamlit web app, a PyQt desktop app, a desktop companion and ready-to-run bots for Telegram, QQ, Feishu, WeCom and DingTalk.
    • Optional observability via Langfuse and a cron-style scheduler.

    The whole thing is gated by a remote-validated Photo Agents API key so usage stays accountable.

    Install

    pip install photoagents
    # or, with every optional client and integration
    pip install "photoagents[all]"
    

    Photo Agents needs Python 3.10 or newer. Tested on Windows, macOS, and Linux.

    Then make it available to the runtime in any of these ways (checked in order):

    1. Environment variable: PHOTOAGENTS_API_KEY=pk_live_...
    2. Saved config: ~/.photoagents/config.json field api_key
    3. Interactive prompt on first run (offered to be saved automatically)

    A successful validation is cached for 24 hours so the gate stays fast.

    LLM credentials

    Copy the credentials template and fill in your provider key:

    # from the repo root
    cp photoagents/config/keys_template.py credentials.py
    # then edit credentials.py and uncomment one of the provider configs
    

    The runtime also accepts a JSON form (credentials.json) with the same shape.

    Run

    # Interactive REPL on your terminal
    python -m photoagents
    
    # One-shot file-IO mode
    python -m photoagents --task my_task --input "List the largest files in this directory."
    
    # Reflect / watchdog mode (your check() function fires the next task)
    python -m photoagents --reflect photoagents/evolution/scheduler.py
    

    GUI clients

    Photo Agents ships several optional frontends. Pick whichever fits your workflow:

    ClientLaunch command
    Streamlit web app + webviewpythonw -m photoagents.cli.launcher
    Service hub (start/stop)pythonw -m photoagents.cli.hub
    Desktop app (PyQt)python -m photoagents.clients.desktop_app
    Desktop companionpythonw -m photoagents.clients.companion_v2
    Telegram botpython -m photoagents.clients.telegram_client
    Feishu / WeCom / DingTalk / QQ`python -m photoagents.clients.<feishu

    The launcher and hub both call the same API key gate before starting any service, so they will refuse to launch anything if your key is missing or revoked.

    On-disk state

    PathWhat lives there
    ~/.photoagents/config.jsonAPI key + license validation cache
    ~/.photoagents/global_mem.txtLong-term L2 facts
    ~/.photoagents/sessions/L4 raw session archives
    ~/.photoagents/skill_index/Vector index for skill / SOP search
    ~/.photoagents/temp/Per-task scratch (logs, intermediate output)

    Project layout

    photoagents/
    ├── auth/        License gate (remote-validated API key)
    ├── cli/         python -m photoagents, GUI launcher, service hub
    ├── clients/     Web / desktop / chat-platform frontends
    ├── config/      credentials.py template
    ├── core/        Agent loop and tool dispatcher
    ├── evolution/   Reflection / scheduler scripts (the "self-evolving" loop)
    ├── integrations/ Optional third-party hooks (Langfuse, etc.)
    ├── llm/         Multi-provider session router
    ├── resources/   System prompt, tool schema, CDP bridge, demo media
    ├── skills/      L3 SOPs and helper modules (browser, vision, OCR, ...)
    └── web/         DOM simplifier and Chrome DevTools Protocol driver
    

    Troubleshooting

    • "API key required to start the agent" — set PHOTOAGENTS_API_KEY or run once interactively so it can be saved to ~/.photoagents/config.json.
    • Browser tools not working — make sure beautifulsoup4 is installed and the CDP bridge config exists under resources/tmwd_cdp_bridge/.
    • Wrong LLM picked up — double check the keyword rules in credentials.py (native + claude/oai, or mixin).

    FAQ

    Does this send my screen data anywhere besides my chosen LLM provider? No. The runtime talks to your configured LLM provider and the Photo Agents license endpoint only.

    Can I run this fully offline? The agent loop itself needs a network-reachable LLM provider, but memory and skills are stored locally.

    Support

    • Issues: use the templates under .github/ISSUE_TEMPLATE/.

    Credits

    Built and maintained by the Photo Agents team, with thanks to everyone filing issues and sending fixes.

    License

    MIT. See LICENSE.

    Status

    Status: beta. APIs may change before 1.0.