agstack 1.13.0__tar.gz → 1.14.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agstack-1.13.0 → agstack-1.14.0}/PKG-INFO +1 -1
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/agent_node.py +4 -1
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/registry.py +9 -2
- {agstack-1.13.0 → agstack-1.14.0}/agstack.egg-info/PKG-INFO +1 -1
- {agstack-1.13.0 → agstack-1.14.0}/pyproject.toml +1 -1
- {agstack-1.13.0 → agstack-1.14.0}/LICENSE +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/README.md +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/__init__.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/config/__init__.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/config/logger.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/config/manager.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/config/types.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/contexts.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/decorators.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/events.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/exceptions.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/fastapi/__init__.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/fastapi/exception.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/fastapi/middleware.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/fastapi/offline.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/fastapi/sse.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/infra/db/__init__.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/infra/es/__init__.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/infra/kg/__init__.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/infra/mq/__init__.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/__init__.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/client.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/__init__.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/agent.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/context.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/event.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/exceptions.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/factory.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/flow.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/loader.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/__init__.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/base.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/detect_node.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/echo_node.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/llm_chat_node.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/llm_embed_node.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/llm_rerank_node.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/python_node.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/subflow_node.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/switch_node.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/tool_node.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/records.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/sandbox.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/state.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/tool.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/prompts.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/token.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/schema.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/security/__init__.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/security/casbin.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/security/crypt.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack/status.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack.egg-info/SOURCES.txt +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack.egg-info/dependency_links.txt +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack.egg-info/requires.txt +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/agstack.egg-info/top_level.txt +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/setup.cfg +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/tests/test_flow_io.py +0 -0
- {agstack-1.13.0 → agstack-1.14.0}/tests/test_flow_switch_subflow.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agstack
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.14.0
|
|
4
4
|
Summary: Production-ready toolkit for building FastAPI and LLM applications
|
|
5
5
|
Author-email: XtraVisions <gitadmin@xtravisions.com>, Chen Hao <chenhao@xtravisions.com>
|
|
6
6
|
Maintainer-email: XtraVisions <gitadmin@xtravisions.com>, Chen Hao <chenhao@xtravisions.com>
|
|
@@ -19,11 +19,14 @@ class AgentNodeHandler(NodeHandler):
|
|
|
19
19
|
|
|
20
20
|
node_type = "agent"
|
|
21
21
|
|
|
22
|
+
_NODE_KEYS = frozenset({"agent_name", "inputs"})
|
|
23
|
+
|
|
22
24
|
def _create_agent(self, config: dict):
|
|
23
25
|
agent_name = config.get("agent_name")
|
|
24
26
|
if not agent_name:
|
|
25
27
|
raise FlowError("MISSING_AGENT_NAME", 400)
|
|
26
|
-
|
|
28
|
+
agent_kwargs = {k: v for k, v in config.items() if k not in self._NODE_KEYS}
|
|
29
|
+
agent = registry.create_agent(agent_name, **agent_kwargs)
|
|
27
30
|
if not agent:
|
|
28
31
|
raise FlowError("AGENT_NOT_FOUND", 404, {"agent_name": agent_name})
|
|
29
32
|
return agent
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
+
import copy
|
|
7
8
|
from typing import Any, cast
|
|
8
9
|
|
|
9
10
|
from .agent import Agent
|
|
@@ -78,13 +79,19 @@ class FlowRegistry:
|
|
|
78
79
|
return cast(Tool, component)
|
|
79
80
|
|
|
80
81
|
def create_agent(self, name: str, **kwargs) -> Agent | None:
|
|
81
|
-
"""创建 Agent 实例
|
|
82
|
+
"""创建 Agent 实例
|
|
83
|
+
|
|
84
|
+
kwargs 中的参数会覆盖 agent 默认值(如 max_turns, model 等)。
|
|
85
|
+
"""
|
|
82
86
|
component = self._agents.get(name)
|
|
83
87
|
if component is None:
|
|
84
88
|
return None
|
|
85
89
|
if callable(component):
|
|
86
90
|
return cast(Agent, component(**kwargs))
|
|
87
|
-
|
|
91
|
+
agent = cast(Agent, copy.copy(component))
|
|
92
|
+
for attr, value in kwargs.items():
|
|
93
|
+
setattr(agent, attr, value)
|
|
94
|
+
return agent
|
|
88
95
|
|
|
89
96
|
def create_flow(self, name: str, **kwargs) -> Any | None:
|
|
90
97
|
"""创建 Flow 实例"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agstack
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.14.0
|
|
4
4
|
Summary: Production-ready toolkit for building FastAPI and LLM applications
|
|
5
5
|
Author-email: XtraVisions <gitadmin@xtravisions.com>, Chen Hao <chenhao@xtravisions.com>
|
|
6
6
|
Maintainer-email: XtraVisions <gitadmin@xtravisions.com>, Chen Hao <chenhao@xtravisions.com>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|