能力标签
AI工作流框架
⚙️
Agent工作流

AI工作流框架

基于 Python · 无代码搭建完整 AI 自动化流程
英文名:selectools
⭐ 10 Stars 🍴 2 Forks 💻 Python 📄 Apache-2.0 🏷 AI 8.0分
8.0AI 综合评分
ai-agentsai-safetyenterprise-ai
✦ AI Skill Hub 推荐

AI工作流框架 是 AI Skill Hub 本期精选Agent工作流之一。综合评分 8.0 分,整体质量较高。我们强烈推荐将其纳入你的 AI 工具库,帮助提升工作效率。

📚 深度解析

AI工作流框架 是一套完整的 AI Agent 自动化工作流方案。随着 AI 能力的不断提升,基于 Agent 的自动化工作流正在成为提升个人和团队效率的核心方式。区别于传统的 RPA 自动化(模拟鼠标键盘操作),AI Agent 工作流通过理解任务意图、动态规划执行路径,能够处理更复杂的非结构化任务。

AI工作流框架 工作流的设计遵循"最小配置,最大复用"原则:核心逻辑已经封装好,用户只需配置自己的 API Key 和业务参数即可快速上手。工作流内置错误处理和重试机制,在网络波动或 API 限速等情况下仍能稳定运行,适合作为生产环境的自动化基础设施。

在实际部署时,建议先在测试环境中运行 3-5 次,验证各个环节的输出结果符合预期,再部署到生产环境。AI Skill Hub 评分 8.0 分,是同类 Agent 工作流中的精选推荐。

📋 工具概览

AI工作流框架 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。

GitHub Stars
⭐ 10
开发语言
Python
支持平台
Windows / macOS / Linux
维护状态
轻量级项目,按需更新
开源协议
Apache-2.0
AI 综合评分
8.0 分
工具类型
Agent工作流
Forks
2

📖 中文文档

以下内容由 AI Skill Hub 根据项目信息自动整理,如需查看完整原始文档请访问底部「原始来源」。

AI工作流框架 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。

📌 核心特色
  • 可视化 Agent 工作流编排,无需编写复杂代码
  • 支持多步骤自动化任务链,实现全流程无人值守
  • 与外部 API、数据库和第三方服务无缝集成
  • 内置错误处理与自动重试机制,保障稳定运行
  • 提供可复用的自动化模板,快速在同类场景部署
🎯 主要使用场景
  • 自动化日常重复性工作,将精力集中于创造性任务
  • 构建数据采集 → 处理 → 输出的完整自动化管线
  • 实现跨平台、跨系统的数据流转和业务协同
以下安装命令基于项目开发语言和类型自动生成,实际以官方 README 为准。
安装命令
# 方式一:pip 安装(推荐)
pip install selectools

# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install selectools

# 方式三:从源码安装(获取最新功能)
git clone https://github.com/johnnichev/selectools
cd selectools
pip install -e .

# 验证安装
python -c "import selectools; print('安装成功')"
📋 安装步骤说明
  1. 访问 GitHub 仓库获取工作流文件
  2. 在对应平台(Dify / Flowise / Make 等)中找到「导入工作流」功能
  3. 上传工作流文件
  4. 按照提示配置必要的环境变量和 API Key
  5. 运行测试确认流程正常后投入使用
以下用法示例由 AI Skill Hub 整理,涵盖最常见的使用场景。
常用命令 / 代码示例
# 命令行使用
selectools --help

# 基本用法
selectools input_file -o output_file

# Python 代码中调用
import selectools

# 示例
result = selectools.process("input")
print(result)
以下配置示例基于典型使用场景生成,具体参数请参照官方文档调整。
配置示例
# selectools 配置文件示例(config.yml)
app:
  name: "selectools"
  debug: false
  log_level: "INFO"

# 运行时指定配置文件
selectools --config config.yml

# 或通过环境变量配置
export SELECTOOLS_API_KEY="your-key"
export SELECTOOLS_OUTPUT_DIR="./output"
📑 README 深度解析 真实文档 完整度 84/100 查看 GitHub 原文 →
以下内容由系统直接从 GitHub README 解析整理,保留代码块、表格与列表结构。

简介

┌─┐┌─┐┬  ┌─┐┌─┐┌┬┐┌─┐┌─┐┬  ┌─┐
└─┐├┤ │  ├┤ │   │ │ ││ ││  └─┐
└─┘└─┘┴─┘└─┘└─┘ ┴ └─┘└─┘┴─┘└─┘

PyPI Downloads CI Docs Python License Evaluators

An open-source project from NichevLabs.

Multi-agent orchestration in plain Python. Build agent graphs, compose pipelines with |, deploy with one command. No DSL, no compile step, no paid debugger. Works with OpenAI, Anthropic, Gemini, and Ollama.

What's New in v0.27

What's New in v0.26

What's New in v0.25

What's New in v0.24

What's New in v0.23

What's New in v0.22

What's New in v0.21

What's New in v0.20

What's New in v0.19

"Weather in NYC?" hits cache for "What's the weather in New York City?"

What's Included

  • 6 LLM Providers: OpenAI, Azure OpenAI, Anthropic, Gemini, Ollama, LiteLLM (100+ models) + FallbackProvider (auto-failover) + RouterProvider (cost-based routing)
  • Agent-as-API: AgentAPI — production REST endpoints (chat, SSE streaming, sessions) from any agent
  • A2A Protocol: Agent Card discovery + JSON-RPC 2.0 agent-to-agent messaging
  • Structured Output: Pydantic / JSON Schema response_format with auto-retry
  • Execution Traces: result.trace with typed timeline of every agent step
  • Reasoning Visibility: result.reasoning explains why the agent chose a tool
  • Batch Processing: agent.batch() / agent.abatch() for concurrent classification
  • Tool Policy Engine: Declarative allow/review/deny rules with human-in-the-loop
  • 4 Embedding Providers: OpenAI, Anthropic/Voyage, Gemini (free!), Cohere
  • 7 Vector Stores: In-memory, SQLite, Chroma, Pinecone, FAISS, Qdrant, pgvector
  • Hybrid Search: BM25 + vector fusion with Cohere/Jina reranking
  • Advanced Chunking: Semantic + contextual chunking for better retrieval
  • Dynamic Tool Loading: Plugin system with hot-reload support
  • Response Caching: InMemoryCache and RedisCache with stats tracking
  • 115 Model Registry: Type-safe constants with pricing and metadata
  • Pre-built Toolbox: 56 tools for files, data, text, datetime, web, code, search, GitHub, DB, calculator, email, PDF, Slack, Notion, Linear, Discord, S3, browser, image gen
  • Persistent Sessions: 6 backends (JSON file, SQLite, Redis, Supabase, MongoDB, DynamoDB) with TTL and cross-session search
  • Scheduled Agents: AgentScheduler runs an agent on a cron or interval schedule with per-job max-runs, failure isolation, and an async loop
  • Reasoning Tools: think/analyze tools make reasoning explicit, inspectable, and bounded by min/max steps
  • Prompt-Injection Guardrail: PromptInjectionGuardrail — heuristic jailbreak/injection detection with high-precision patterns
  • Entity Memory: LLM-based named entity extraction and tracking
  • Unified Memory: tiered conversation/knowledge/entity/episodic memory with token-aware compaction
  • Knowledge Backends: Supabase/Redis blob persistence for KnowledgeMemory on ephemeral infra
  • Typed Tool Results: ToolResult base class + Artifact side-channel via emit_artifact()
  • Deferred Confirmation: selectools.pending for chat-channel destructive-tool confirmation
  • Anthropic Prompt Caching: cache_system/cache_tools with hit-rate visibility on UsageStats
  • Knowledge Graph: Triple extraction with in-memory and SQLite storage
  • Cross-Session Knowledge: Daily logs + persistent memory with auto-injected remember + recall tools, pluggable stores (File, SQLite), importance scoring, TTL
  • Token Budget & Cancellation: max_total_tokens, max_cost_usd hard limits; CancellationToken for cooperative stopping
  • Token Estimation: estimate_run_tokens() for pre-execution budget checks
  • Model Switching: model_selector callback for per-iteration model selection
  • Semantic Cache: SemanticCache — embedding-based cache hits for paraphrased queries (cosine similarity, LRU + TTL)
  • Prompt Compression: Auto-summarise old history when context window fills up; compress_context, compress_threshold, compress_keep_recent
  • Conversation Branching: ConversationMemory.branch() and SessionStore.branch() for A/B exploration and checkpointing
  • Multi-Agent Orchestration: AgentGraph with routing, parallel execution, HITL, checkpointing; SupervisorAgent with 4 strategies (plan_and_execute, round_robin, dynamic, magentic)
  • Composable Pipelines: Pipeline + @step + | operator + parallel() + branch() — chain agents, tools, and transforms
  • 115 Examples: Multi-agent graphs, RAG, hybrid search, streaming, structured output, traces, batch, policy, observer, guardrails, audit, sessions (incl. Supabase), entity memory, knowledge graph, eval framework, advanced agent patterns, stability markers, HTML trace viewer, agent-as-API, A2A, routing, unified memory, scheduled agents, reasoning tools, and more
  • Built-in Eval Framework: 50 evaluators (30 deterministic + 21 LLM-as-judge), A/B testing, regression detection, HTML reports, JUnit XML, snapshot testing
  • AgentObserver Protocol: 46 lifecycle events with run_id correlation, LoggingObserver, SimpleStepObserver, OTel export
  • 7700+ Tests: Unit, integration, regression, and E2E with real API calls

Key Features

3 Ways to Build

```python

3. Deploy — 1 command

v0.23.0 — Supabase Sessions + Builder RAG

Two user-facing features plus a post-ship bug-hunt sweep that pinned 8 code-generator fixes in the visual builder.

  • SupabaseSessionStore — 4th SessionStore backend alongside JSON, SQLite, and Redis. Postgres-backed via Supabase PostgREST, with idempotent upserts, namespace isolation, and the same validation guards as RedisSessionStore. Optional dep: pip install selectools[supabase]. Demo: examples/96_supabase_session_store.py.
  • Visual builder: first-class RAG + session nodes — drag Retriever (RAG) onto the canvas and pick any of 7 vector stores (memory, SQLite, Chroma, Pinecone, FAISS, Qdrant, pgvector), toggle Hybrid (BM25 + vector + RRF) and cross-encoder Rerank. Drag Session Store as a resource node and wire it into an agent via the new Session Store dropdown. Two new presets: Hybrid RAG and Multi-Tenant RAG. Python + YAML code generators emit real, runnable code.
from supabase import create_client
from selectools import SupabaseSessionStore, Agent, AgentConfig

store = SupabaseSessionStore(client=create_client(URL, KEY))
agent = Agent(
    tools=[...],
    config=AgentConfig(session_store=store, session_id="u-1", max_iterations=5),
)

See CHANGELOG.md for the full entry including the 8 builder code-gen fixes.

v0.20.1 — Visual Agent Builder + GitHub Pages

The first AI agent framework to ship a visual graph builder in a single pip install. No React. No build step. No CDN.

Try the builder in your browser → — no install required.

Open in Colab Examples Gallery

```bash pip install selectools selectools serve --builder

→ open http://localhost:8000/builder

```

  • Drag START, END, and Agent nodes onto the canvas
  • Click ports to connect agents with edges
  • Add condition labels to edges (e.g. "approved") for conditional routing
  • Edit provider, model, and system prompt in the properties panel
  • Generated Python and YAML update live in the code panel
  • Export or copy to clipboard with one click

v0.19.0 — Serve, Deploy & Complete Composition

```python

One command deploys your agent over HTTP with SSE streaming

Build a multi-agent graph in plain Python — no DSL, no compile step

graph = AgentGraph() graph.add_node("planner", planner_agent) graph.add_node("writer", writer_agent) graph.add_node("reviewer", reviewer_agent) graph.add_edge("planner", "writer") graph.add_edge("writer", "reviewer") graph.add_edge("reviewer", AgentGraph.END) graph.set_entry("planner") result = graph.run("Write a blog post about AI safety")

Install

pip install selectools                    # Core + basic RAG
pip install selectools[rag]               # + Chroma, Pinecone, FAISS, Qdrant, Voyage, Cohere, PyPDF, BeautifulSoup
pip install selectools[observe]           # + OpenTelemetry, Langfuse observers
pip install selectools[postgres]          # + psycopg2 (enables pgvector)
pip install selectools[cache]             # + Redis cache
pip install selectools[mcp]               # + MCP client/server
pip install "selectools[rag,observe,cache,mcp]"  # Everything

Add your provider's API key to a .env file in your project root:

``` OPENAI_API_KEY=sk-...

Reasoning strategies — guide the LLM's thought process

config = AgentConfig(reasoning_strategy="react") # Thought → Action → Observation config = AgentConfig(reasoning_strategy="cot") # Chain-of-Thought step-by-step config = AgentConfig(reasoning_strategy="plan_then_act") # Plan first, then execute

Quick Start

New to Selectools? Follow the 5-minute Quickstart tutorial — no API key needed.

Examples

Examples are numbered by difficulty. Start from 01 and work your way up.

#ExampleFeaturesAPI Key?
0101_hello_world.pyFirst agent, @tool, ask()No
0202_search_weather.pyToolRegistry, multiple toolsNo
0303_toolbox.py56 pre-built tools (file, data, text, datetime, web, code, search, and more)No
0404_conversation_memory.pyMulti-turn memoryYes
0505_cost_tracking.pyToken counting, cost warningsYes
0606_async_agent.pyarun(), concurrent agents, FastAPIYes
0707_streaming_tools.pyGenerator-based streamingYes
0808_streaming_parallel.pyastream(), parallel execution, StreamChunkYes
0909_caching.pyInMemoryCache, RedisCache, cache statsYes
1010_routing_mode.pyRouting mode, intent classificationYes
1111_tool_analytics.pyCall counts, success rates, timingYes
1212_observability_hooks.pyLifecycle observers, tool validationYes
1313_dynamic_tools.pyToolLoader, plugins, hot-reloadYes
1414_rag_basic.pyRAG pipeline, document loading, vector searchYes + [rag]
1515_semantic_search.pyPure semantic search, metadata filteringYes + [rag]
1616_rag_advanced.pyPDFs, SQLite persistence, custom chunkingYes + [rag]
1717_rag_multi_provider.pyEmbedding/store/chunk-size comparisonsYes + [rag]
1818_hybrid_search.pyBM25 + vector fusion, RRF, rerankingYes + [rag]
1919_advanced_chunking.pySemantic and contextual chunkingYes + [rag]
2020_customer_support_bot.pyMulti-tool customer support workflowYes
2121_data_analysis_agent.pyData exploration and analysisYes
2222_ollama_local.pyFully local LLM via OllamaNo (Ollama)
2323_structured_output.pyPydantic response_format, auto-retry, JSON extractionNo
2424_traces_and_reasoning.pyAgentTrace timeline, reasoning visibility, JSON exportNo
2525_provider_fallback.pyFallbackProvider, circuit breaker, failover chainNo
2626_batch_processing.pybatch(), abatch(), structured batch, error isolationNo
2727_tool_policy.pyToolPolicy, deny_when, HITL approval, memory trimmingNo
2828_agent_observer.pyAgentObserver, LoggingObserver, multiple observers, OTel exportNo
2929_guardrails.pyInput/output guardrails, PII redaction, topic blockingNo
3030_audit_logging.pyJSONL audit logging, privacy controls, daily rotationNo
3131_tool_output_screening.pyPrompt injection detection in tool outputsNo
3232_coherence_checking.pyLLM-based intent verification for injection defenseYes
3333_persistent_sessions.pyJsonFileSessionStore, cross-restart persistenceNo
3434_summarize_on_trim.pySummarize trimmed messages for context preservationNo
3535_entity_memory.pyNamed entity extraction and trackingNo
3636_knowledge_graph.pyTriple extraction, in-memory and SQLite storageNo
3737_knowledge_memory.pyCross-session facts, daily logs, remember toolNo
3838_terminal_tools.py@tool(terminal=True), stop_condition callbackNo
3939_eval_framework.pyEvalSuite, TestCase, evaluators, HTML reportsNo
4040_eval_advanced.pyPairwise A/B, regression detection, snapshotsNo
4141_mcp_client.pyMCPClient, mcp_tools(), tool interopNo
4242_mcp_server.pyMCPServer, expose tools as MCP endpointsNo
4343_token_budget.pymax_total_tokens, max_cost_usd budget limitsNo
4444_cancellation.pyCancellationToken, cooperative stoppingNo
4545_approval_gate.py@tool(requires_approval=True), confirm_actionNo
4646_simple_observer.pySimpleStepObserver, single-callback integrationNo
4747_token_estimation.pyestimate_run_tokens(), pre-flight cost checksNo
4848_model_switching.pymodel_selector callback, per-iteration modelNo
4949_knowledge_stores.pySQLite, Redis, Supabase knowledge storesNo
5050_reasoning_strategies.pyReAct, Chain-of-Thought, Plan-then-ActNo
| 51 | 51_tool_result_caching.py | `@tool(cacheable=True, cache_

Agent Configuration

config = AgentConfig(
    model="gpt-4o-mini",
    temperature=0.0,
    max_tokens=2000,
    max_iterations=6,
    max_retries=3,
    retry_backoff_seconds=2.0,
    request_timeout=60.0,
    tool_timeout_seconds=30.0,
    cost_warning_threshold=0.50,
    parallel_tool_execution=True,
    routing_only=False,
    stream=False,
    cache=None,                  # InMemoryCache or RedisCache
    tool_policy=None,            # ToolPolicy with allow/review/deny rules
    confirm_action=None,         # Human-in-the-loop approval callback
    approval_timeout=60.0,       # Seconds before auto-deny
    enable_analytics=True,
    verbose=False,
    observers=[LoggingObserver()],  # Lifecycle observer (replaces deprecated hooks)
    system_prompt="You are a helpful assistant...",
)

BUG-03: sync APIs now work in Jupyter / FastAPI handlers

agent.run("hello") # Just works inside async contexts ```

  • 6 HIGH severity (shipping blockers): streaming dropped tool calls, typing.Literal crashed @tool(), asyncio.run() re-entry in 8 sync wrappers, HITL silently lost in parallel groups + subgraphs, ConversationMemory had no thread lock
  • 9 MEDIUM severity: <think> tag stripping, RAG batch limits, MCP concurrent race, str→int/float/bool argument coercion, Union[str, int] support, multi-interrupt generators, GraphState fail-fast validation, session namespace isolation, summary growth cap
  • 7 LOW-MED severity: cancelled-result extraction, AgentTrace lock, async observer exception logging, batch clone isolation, OTel/Langfuse observer locks, vector store search dedup, Optional[T] without default handling
  • +57 new regression tests in tests/agent/test_regression.py, each with empirical fault-injection verification (test fails without fix, passes after)
  • Thread safety end-to-end correct across ConversationMemory, AgentTrace, OTelObserver, LangfuseObserver, MCPClient, FallbackProvider, batch clone isolation

See CHANGELOG.md for the full per-bug breakdown with cross-references to every original Agno/PraisonAI issue.

v0.19.3 — Stability Markers Applied to All Public APIs

Every public class and function exported from selectools now carries a stability marker:

from selectools import Agent, AgentGraph, PlanAndExecuteAgent

print(Agent.__stability__)               # "stable"
print(AgentGraph.__stability__)          # "beta"
print(PlanAndExecuteAgent.__stability__) # "beta"

@stable — 60+ core symbols (Agent, AgentConfig, providers, memory, tools, evals, guardrails, sessions, knowledge, cache, cancellation)

@beta — 30+ newer symbols (AgentGraph, SupervisorAgent, Pipeline, @step, parallel, branch, all four patterns, compose)

or ANTHROPIC_API_KEY, GEMINI_API_KEY — whichever provider you use

```

Tool Calling Agent (No API Key)

from selectools import Agent, AgentConfig, tool
from selectools.providers.stubs import LocalProvider

@tool(description="Look up the price of a product")
def get_price(product: str) -> str:
    prices = {"laptop": "$999", "phone": "$699", "headphones": "$149"}
    return prices.get(product.lower(), f"No price found for {product}")

agent = Agent(
    tools=[get_price],
    provider=LocalProvider(),
    config=AgentConfig(max_iterations=3),
)

result = agent.ask("How much is a laptop?")
print(result.content)

Mark your own extensions with stability levels

@stable class MyProductionAgent: ...

@beta class MyExperimentalFeature: ...

@deprecated(since="0.19", replacement="MyProductionAgent") class MyOldAgent: ...

v0.18.0 — Composable Pipelines

```python from selectools import Pipeline, step, parallel, branch

@step def summarize(text: str) -> str: return agent.run(f"Summarize: {text}").content

@step def translate(text: str, lang: str = "es") -> str: return agent.run(f"Translate to {lang}: {text}").content

Load tools from a plugin directory

tools = ToolLoader.from_directory("./plugins", recursive=True) agent.add_tools(tools)

Hot-reload after editing a plugin

updated = ToolLoader.reload_file("./plugins/search.py") agent.replace_tool(updated[0])

Same question twice -> second call is instant (cache hit)

agent.ask("What is Python?") agent.reset() agent.ask("What is Python?")

print(cache.stats) # CacheStats(hits=1, misses=1, hit_rate=50.00%) ```

For distributed setups: from selectools.cache_redis import RedisCache

🎯 aiskill88 AI 点评 A 级 2026-06-15

高质量的AI工作流框架,内置安全防护和审计功能

⚡ 核心功能

👥 适合人群

自动化工程师和运维人员项目经理和业务分析师希望减少重复性工作的专业人士数字化转型团队

🎯 使用场景

  • 自动化日常重复性工作,将精力集中于创造性任务
  • 构建数据采集 → 处理 → 输出的完整自动化管线
  • 实现跨平台、跨系统的数据流转和业务协同

⚖️ 优点与不足

✅ 优点
  • +Apache-2.0 协议,可免费商用
  • +大幅减少重复性人工操作
  • +可视化流程,清晰直观
  • +可扩展性强,支持复杂场景
⚠️ 不足
  • 初始配置和调试需投入一定时间
  • 强依赖外部服务的稳定性
  • 复杂场景需具备一定技术基础
⚠️ 使用须知

AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。

建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。

📄 License 说明

✅ Apache 2.0 — 宽松开源协议,可商用,需保留版权声明和 NOTICE 文件,含专利授权条款。

🔗 相关工具推荐

🧩 你可能还需要
基于当前 Skill 的能力图谱,自动补全的工具组合

❓ 常见问题 FAQ

参考官方文档和示例代码
💡 AI Skill Hub 点评

经综合评估,AI工作流框架 在Agent工作流赛道中表现稳健,质量优秀。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。

⬇️ 获取与下载
⬇ 下载源码 ZIP

✅ Apache-2.0 协议 · 可免费商用 · 直接从 aiskill88 服务器下载,无需跳转 GitHub

📚 深入学习 AI工作流框架
查看分步骤安装教程和完整使用指南,快速上手这款工具
🌐 原始信息
原始名称 selectools
原始描述 开源AI工作流:Production-ready Python framework for AI agents with built-in guardrails, audit 。⭐10 · Python
Topics ai-agentsai-safetyenterprise-ai
GitHub https://github.com/johnnichev/selectools
License Apache-2.0
语言 Python
🔗 原始来源
🐙 GitHub 仓库  https://github.com/johnnichev/selectools 🌐 官方网站  https://selectools.dev

收录时间:2026-06-15 · 更新时间:2026-06-15 · License:Apache-2.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。

📺 订阅 AI Skill Hub Daily Telegram 频道
每天 8 条精选 AI Skill、MCP、Agent 与自动化工具推送
加入频道 →