syne 是 AI Skill Hub 本期精选Agent工作流之一。综合评分 6.0 分,整体质量稳定。我们推荐使用将其纳入你的 AI 工具库,帮助提升工作效率。
syne 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
syne 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 方式一:pip 安装(推荐)
pip install syne
# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install syne
# 方式三:从源码安装(获取最新功能)
git clone https://github.com/riyogarta/syne
cd syne
pip install -e .
# 验证安装
python -c "import syne; print('安装成功')"
# 命令行使用
syne --help
# 基本用法
syne input_file -o output_file
# Python 代码中调用
import syne
# 示例
result = syne.process("input")
print(result)
# syne 配置文件示例(config.yml) app: name: "syne" debug: false log_level: "INFO" # 运行时指定配置文件 syne --config config.yml # 或通过环境变量配置 export SYNE_API_KEY="your-key" export SYNE_OUTPUT_DIR="./output"
AI Agent Framework with Unlimited Memory
"I remember, therefore I am"
Named after Mnemosyne, the Greek goddess of memory and mother of the Muses.
Syne is a standalone, open-source AI agent framework built in Python. It features PostgreSQL-native memory with semantic search, an ability-based architecture for extensibility, and self-evolution capabilities where the agent can create new abilities for itself.
---
| Ability | Permission | Description | Requires |
|---|---|---|---|
image_gen | 777 | Generate images from text (FLUX.1-schnell via Together AI / Imagen via Vertex / DALL-E via OpenAI) | API key per provider |
image_analysis | 555 | Analyze and describe images (Gemini 2.5 Flash default; Vertex / Ollama / OpenAI) | Provider-specific (Vertex auto, OpenAI key) |
maps | 555 | Places, directions, geocoding | Google Maps API key |
pdf | 770 | **Read** PDFs (text + vision OCR for scanned/CAD pages) and **create** PDFs from text or URL | PyMuPDF, reportlab, beautifulsoup4 (auto-installed) |
office | 770 | **Create and read** Microsoft Office documents — Word (.docx), Excel (.xlsx), PowerPoint (.pptx) | python-docx, openpyxl, python-pptx (auto-installed) |
website_screenshot | 550 | Capture website screenshots | Playwright + Chromium (auto-installed) |
whatsapp | 700 | WhatsApp bridge (send/receive via wacli) | wacli binary |
Each ability manages its own dependencies via ensure_dependencies() — external binaries and packages are auto-installed when you enable the ability.
| Requirement | Details |
|---|---|
| **CPU** | 1 vCPU minimum (2+ recommended for Ollama embedding + evaluator) |
| **OS** | Linux (Ubuntu 22.04+, Debian 12+) |
| **Python** | 3.11+ |
| **RAM** | 2 GB minimum (Ollama loads one model at a time, ~1.3 GB per model). 4 GB recommended for smooth operation |
| **Storage** | 1 GB base + ~1 GB for Ollama models (embedding + evaluator). ~2.5 GB total recommended |
| **Docker** | Required — PostgreSQL 16 + pgvector runs in Docker |
| **Network** | Outbound HTTPS to: LLM provider (Google/OpenAI/Anthropic), Telegram API, Brave Search (optional). Ollama runs locally — no network needed for embedding and memory evaluation |
---
syne repair # Diagnose: DB, OAuth, Telegram, abilities
syne status # Quick status check
---
On the server (one-time): ```bash
syne init # Interactive setup (fully automated) syne start # Start Telegram agent syne start --debug # Start with debug logging syne cli # Interactive CLI chat (resumes per-directory) syne cli -n # Start fresh conversation (clear history) syne cli --yolo # Skip file write approvals (auto-yes) syne status # Show status syne repair # Diagnose and repair syne restart # Restart agent syne stop # Stop agent
git clone https://github.com/riyogarta/syne.git
cd syne
bash install.sh
That's it. install.sh is fully automated:
| Step | What happens |
|---|---|
| ① | Choose AI provider (OAuth free / API key) |
| ② | Auto-detect hardware → recommend models |
| ③ | Enter Telegram bot token |
| ④ | Docker + PostgreSQL + pgvector |
| ⑤ | Ollama + embedding + evaluator models |
| ⑥ | Database schema + systemd service |
When install finishes, Syne is running.
Set config memory.public_categories to ["alquran","bukhari","muslim","fiqih"] ```
| Requester | Allowed categories | Rule |
|---|---|---|
| **Owner** | All | 760 |
| **Family** | All | 760 |
| **Public** | Only categories in memory.public_categories | 765 |
When a public user searches memories, results outside the allowed categories are silently filtered — they appear as if they don't exist.
Most agent frameworks require editing SOUL.md, AGENTS.md, or CONFIG.yaml to change behavior. Syne has none of that — all runtime behavior lives in PostgreSQL, and you change it through conversation:
| Traditional File | Syne Equivalent | Just say... |
|---|---|---|
SOUL.md | soul table | *"Be more casual and witty"* |
AGENTS.md | rules table | *"Add a rule: never share my location"* |
IDENTITY.md | identity table | *"Change your name to Atlas"* |
CONFIG.yaml | config table | *"Turn on auto memory capture"* |
Fresh install comes with sensible defaults. Override anything through conversation — no SQL, no files.
---
All configuration lives in the config table. Change via conversation or update_config tool.
| Key | Default | Description |
|---|---|---|
provider.active_model | "gemini-pro" | Active chat model key |
provider.active_embedding | *(set during init)* | Active embedding model key (auto-detected by hardware tier) |
| Key | Default | Description |
|---|---|---|
memory.auto_capture | false | Auto-evaluate messages for storage |
memory.recall_limit | 5 | Max memories per query |
memory.decay_interval | 50 | Decay every N conversations |
memory.decay_amount | 1 | Recall count decrease per decay cycle |
memory.initial_recall_count | 5 | Starting durability for new memories |
memory.promotion_threshold | 10 | Promote to permanent when recall_count exceeds this |
memory.evaluator_driver | "ollama" | Evaluator: "ollama" (local) or "provider" (main LLM) |
memory.evaluator_model | "qwen3:0.6b" | Ollama model for evaluation |
| Key | Default | Description |
|---|---|---|
session.compaction_threshold | 80000 | Characters before auto-compaction |
session.compaction_keep_recent | 40 | Messages kept after compaction |
session.max_messages | 100 | Messages before suggesting compaction |
session.thinking_budget | null | Global default only — per-model thinking is set via /models |
| Key | Default | Description |
|---|---|---|
claude.oauth_client_id | *(built-in)* | Override OAuth client_id for Anthropic Claude |
| Key | Default | Description |
|---|---|---|
exec.timeout_max | 300 | Max exec timeout (seconds) |
exec.output_max_chars | 4000 | Max output characters |
web_fetch.timeout | 30 | HTTP fetch timeout (seconds) |
| Key | Default | Description |
|---|---|---|
subagents.enabled | true | Enable sub-agents |
subagents.max_concurrent | 2 | Max concurrent sub-agents |
subagents.timeout_seconds | 900 | Sub-agent timeout (15 min) |
---
syne node init # Pair with server
syne node start # Start node daemon
syne node stop # Stop node daemon
syne node restart # Restart node daemon
syne node status # Show connection status
---
class Ability:
name: str
description: str
version: str
permission: int = 0o700 # 3-digit octal (owner/family/public)
async def execute(self, params: dict, context: dict) -> dict: ...
def get_schema(self) -> dict: ...
def get_guide(self, enabled: bool, config: dict) -> str: ...
async def ensure_dependencies(self) -> tuple[bool, str]: ...
```bash
The pdf and office abilities together cover most document workflows. Both auto-extract content when a user uploads a file via Telegram — the LLM sees the document content as plain text without needing any tool call.
| Format | Read | Create | Notes |
|---|---|---|---|
| ✓ | ✓ | Hybrid mode: text + vision OCR for scanned/drawing pages (uses /vision provider) | |
| DOCX (Word) | ✓ | ✓ | Markdown-style content for create; auto-extracts paragraphs + tables on read |
| XLSX (Excel) | ✓ | ✓ | JSON sheets array for create; renders as markdown table on read |
| PPTX (PowerPoint) | ✓ | ✓ | JSON slides array for create; extracts per-slide text on read |
Examples (LLM-callable):
office(action='create_docx', title='Laporan', content='# Ringkasan\n\nIsi paragraf.')
office(action='create_xlsx', sheets='[{"name":"Q1","headers":["Item","Total"],"rows":[["Gaji",10000]]}]')
office(action='create_pptx', title='Proposal', slides='[{"title":"Slide 1","bullets":["A","B"]}]')
pdf(action='make_from_text', title='Doc', text='...')
pdf(action='read_from_url', url='https://example.com/file.pdf')
---
| Mode | Trigger | Cost impact |
|---|---|---|
auto_capture = false (default) | Only when user says "remember this" | No extra calls |
auto_capture = true | Every message evaluated | +1 evaluator call + 1 embedding per message |
With Ollama as both evaluator and embedding provider, auto-capture costs $0 — both run locally.
该工具使用 NOASSERTION 协议,商用场景请仔细阅读协议条款,必要时咨询法律意见。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
📄 NOASSERTION — 请查阅原始协议条款了解具体使用限制。
经综合评估,syne 在Agent工作流赛道中表现稳健,质量良好。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。
| 原始名称 | syne |
| 原始描述 | 开源AI工作流:AI Agent Framework with Unlimited Memory — PostgreSQL-native, self-evolving, nea。⭐13 · Python |
| Topics | workflowai-agentchatbotgeminillmmemorypython |
| GitHub | https://github.com/riyogarta/syne |
| License | NOASSERTION |
| 语言 | Python |
收录时间:2026-05-22 · 更新时间:2026-05-22 · License:NOASSERTION · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端