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.
Files changed (64) hide show
  1. {agstack-1.13.0 → agstack-1.14.0}/PKG-INFO +1 -1
  2. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/agent_node.py +4 -1
  3. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/registry.py +9 -2
  4. {agstack-1.13.0 → agstack-1.14.0}/agstack.egg-info/PKG-INFO +1 -1
  5. {agstack-1.13.0 → agstack-1.14.0}/pyproject.toml +1 -1
  6. {agstack-1.13.0 → agstack-1.14.0}/LICENSE +0 -0
  7. {agstack-1.13.0 → agstack-1.14.0}/README.md +0 -0
  8. {agstack-1.13.0 → agstack-1.14.0}/agstack/__init__.py +0 -0
  9. {agstack-1.13.0 → agstack-1.14.0}/agstack/config/__init__.py +0 -0
  10. {agstack-1.13.0 → agstack-1.14.0}/agstack/config/logger.py +0 -0
  11. {agstack-1.13.0 → agstack-1.14.0}/agstack/config/manager.py +0 -0
  12. {agstack-1.13.0 → agstack-1.14.0}/agstack/config/types.py +0 -0
  13. {agstack-1.13.0 → agstack-1.14.0}/agstack/contexts.py +0 -0
  14. {agstack-1.13.0 → agstack-1.14.0}/agstack/decorators.py +0 -0
  15. {agstack-1.13.0 → agstack-1.14.0}/agstack/events.py +0 -0
  16. {agstack-1.13.0 → agstack-1.14.0}/agstack/exceptions.py +0 -0
  17. {agstack-1.13.0 → agstack-1.14.0}/agstack/fastapi/__init__.py +0 -0
  18. {agstack-1.13.0 → agstack-1.14.0}/agstack/fastapi/exception.py +0 -0
  19. {agstack-1.13.0 → agstack-1.14.0}/agstack/fastapi/middleware.py +0 -0
  20. {agstack-1.13.0 → agstack-1.14.0}/agstack/fastapi/offline.py +0 -0
  21. {agstack-1.13.0 → agstack-1.14.0}/agstack/fastapi/sse.py +0 -0
  22. {agstack-1.13.0 → agstack-1.14.0}/agstack/infra/db/__init__.py +0 -0
  23. {agstack-1.13.0 → agstack-1.14.0}/agstack/infra/es/__init__.py +0 -0
  24. {agstack-1.13.0 → agstack-1.14.0}/agstack/infra/kg/__init__.py +0 -0
  25. {agstack-1.13.0 → agstack-1.14.0}/agstack/infra/mq/__init__.py +0 -0
  26. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/__init__.py +0 -0
  27. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/client.py +0 -0
  28. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/__init__.py +0 -0
  29. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/agent.py +0 -0
  30. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/context.py +0 -0
  31. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/event.py +0 -0
  32. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/exceptions.py +0 -0
  33. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/factory.py +0 -0
  34. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/flow.py +0 -0
  35. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/loader.py +0 -0
  36. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/__init__.py +0 -0
  37. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/base.py +0 -0
  38. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/detect_node.py +0 -0
  39. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/echo_node.py +0 -0
  40. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/llm_chat_node.py +0 -0
  41. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/llm_embed_node.py +0 -0
  42. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/llm_rerank_node.py +0 -0
  43. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/python_node.py +0 -0
  44. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/subflow_node.py +0 -0
  45. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/switch_node.py +0 -0
  46. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/nodes/tool_node.py +0 -0
  47. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/records.py +0 -0
  48. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/sandbox.py +0 -0
  49. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/state.py +0 -0
  50. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/flow/tool.py +0 -0
  51. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/prompts.py +0 -0
  52. {agstack-1.13.0 → agstack-1.14.0}/agstack/llm/token.py +0 -0
  53. {agstack-1.13.0 → agstack-1.14.0}/agstack/schema.py +0 -0
  54. {agstack-1.13.0 → agstack-1.14.0}/agstack/security/__init__.py +0 -0
  55. {agstack-1.13.0 → agstack-1.14.0}/agstack/security/casbin.py +0 -0
  56. {agstack-1.13.0 → agstack-1.14.0}/agstack/security/crypt.py +0 -0
  57. {agstack-1.13.0 → agstack-1.14.0}/agstack/status.py +0 -0
  58. {agstack-1.13.0 → agstack-1.14.0}/agstack.egg-info/SOURCES.txt +0 -0
  59. {agstack-1.13.0 → agstack-1.14.0}/agstack.egg-info/dependency_links.txt +0 -0
  60. {agstack-1.13.0 → agstack-1.14.0}/agstack.egg-info/requires.txt +0 -0
  61. {agstack-1.13.0 → agstack-1.14.0}/agstack.egg-info/top_level.txt +0 -0
  62. {agstack-1.13.0 → agstack-1.14.0}/setup.cfg +0 -0
  63. {agstack-1.13.0 → agstack-1.14.0}/tests/test_flow_io.py +0 -0
  64. {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.13.0
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
- agent = registry.create_agent(agent_name)
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
- return cast(Agent, component)
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.13.0
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>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agstack"
3
- version = "1.13.0"
3
+ version = "1.14.0"
4
4
  description = "Production-ready toolkit for building FastAPI and LLM applications"
5
5
  readme = "README.md"
6
6
  license = "MIT"
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