Releases: AgentEra/Agently
v4.1.3
Highlights
- Promotes the 4.1.2 runtime foundation into a coherent AI application runtime for production-grade AI service backends.
- Makes one Agent turn able to connect model reasoning, Actions, remote Skills, MCP tools, Dynamic Task DAGs, process streams, structured outputs, and coding-agent guidance through one engineering path.
- Adds Agent auto-orchestration so
agent.start()can route through ordinary model response, Actions, Skills Executor, or Dynamic Task when those candidates are declared. - Turns Skills into runtime capabilities declared through
agent.use_skills(...), with lazy remote discovery, on-demand materialization, MCP/script mounting, effort-aware execution, and structured diagnostics. - Adds
agent.activate_model(...)and Model Pool / Key Pool guidance for switching concrete model aliases such asollama-qwen2.5anddeepseek-v4without rewriting business logic.
Business Value
Agently 4.1.3 is aimed at AI services with real backend responsibilities: stable output contracts, observable tool calls, external-system boundaries, recoverable execution, and rich process streams for UIs and logs.
Typical 4.1.3 services can now express:
- business input contracts and structured output contracts
- reusable Actions and external MCP services
- remote Skills from public or private repositories
- dynamic task graphs for complex decomposition
- streamable execution objects for frontend progress and runtime evidence
- model-stage routing through configured model aliases and key pools
Example Shape
result = (
agent
.activate_model("ollama-qwen2.5")
.use_actions([lookup_customer, fetch_contract, notify_owner])
.use_skills(
[{"source": "anthropics/skills", "subpath": "skills/docx"}],
mode="model_decision",
)
.use_dynamic_task(mode="auto", max_tasks=8)
.input({"customer_id": "C-1024", "ticket": "payment failure"})
.output({
"summary": (str, "business summary", True),
"risk_level": (str, "low / medium / high", True),
"next_actions": ([str], "recommended actions", True),
})
.start()
)Documentation
- English release notes:
docs/en/development/release-notes-4.1.3.md - Chinese release notes:
docs/cn/development/release-notes-4.1.3.md - PyPI package: https://pypi.org/project/agently/4.1.3/
v4.1.2
Highlights
- Added Action Execution Environment v2 for managed runtime resources.
- Added Action-native built-in capability packages for Search, Browse, and Cmd.
- Added agent capability helpers for common execution capabilities such as Python, shell, Node.js, SQLite, and workspace access.
- Added compact action execution recall with artifact-backed full result access.
- Added companion compatibility manifests for Agently, Agently-Skills, and Agently-Devtools release alignment.
Features
Action Execution Environment
- [ExecutionEnvironment] Added managed environment lifecycle support for Python, Bash, Node.js, Docker, Browser, SQLite, and MCP resources.
- [ExecutionEnvironment] Added provider contracts for declaring, ensuring, health-checking, injecting, and releasing managed resources.
- [Action] Added environment-aware action execution so executors can receive managed handles and resources without changing executor call signatures.
- [TriggerFlow] Added support for managed execution-local resources while keeping
runtime_resourcesas the compatibility surface.
Built-in Actions
- [Action] Added Action-native built-in packages under
agently.builtins.actions. - [Action] Added Search and Browse packages with Action Runtime integration.
- [Action] Added Cmd and sandbox-oriented execution paths for local command workflows.
- [Action] Added execution recall so instruction-heavy action outputs can be summarized in model context while full outputs remain available through artifacts.
Agent Capability Helpers
- [Agent] Added capability helpers for common managed execution capabilities.
- [Agent] Added
desc_modebehavior for helper descriptions, supporting default, append, and override modes. - [Agent] Improved default helper descriptions so model-facing action guidance keeps baseline usage and safety constraints.
Updates
Runtime And Observability
- [Runtime] Improved runtime console log routing.
- [Observability] Preferred
ObservationEventnaming while keeping legacy runtime event compatibility. - [EventCenter] Expanded event coverage for action and execution-environment lifecycle paths.
Compatibility
- [Compatibility] Added version-scoped compatibility manifests under
compatibility/releases/. - [Compatibility] Added release index metadata for current and in-development compatibility lines.
- [Compatibility] Added Agently-Skills and Agently-Devtools companion alignment metadata.
- [DevTools] Updated static 4.1.2 compatibility metadata to recommend
agently-devtools>=0.1.4,<0.2.0.
Docs And Examples
- [Docs] Added Execution Environment documentation in English and Chinese.
- [Docs] Added extension-boundary guidance for core contracts, providers, built-in capabilities, and application helpers.
- [Docs] Updated Action Runtime, observability, settings, and TriggerFlow resource guidance.
- [Examples] Added built-in action examples for Search and Browse.
- [Examples] Added execution-environment examples for Python, Node.js, SQLite, Browser, and health-check reuse.
- [Examples] Added cookbook examples for model-driven action loops, routing, concurrency, reflection, and shell-policy workflows.
- [Examples] Archived obsolete built-in tool examples.
Developer Experience
- [Types] Added Pyright configuration for the main repository.
- [Tests] Added compatibility registry coverage.
- [Tests] Expanded coverage for Action Runtime, Execution Environment, EventCenter, runtime observation, and built-in action flows.
Bug Fixes
- [Runtime] Fixed runtime console log routing behavior.
- [Agent] Preserved default helper descriptions when custom descriptions are supplied.
- [Compatibility] Kept published framework-code compatibility metadata stable while allowing static release metadata updates.
Full Changelog: v4.1.1...v4.1.2
v4.1.1
Highlights
- Major TriggerFlow execution lifecycle refactor with explicit close snapshots.
- New model requester protocols: OpenAI Responses API and native Anthropic Claude.
- New output validation flow with
.validate(),validate_handler=, andensure_all_keys=True. - Updated Agently-Skills bundles for app development and migration workflows.
TriggerFlow Lifecycle Refactor
- [TriggerFlow] Refactored execution lifecycle semantics around explicit execution objects and close snapshots.
- [TriggerFlow] Added clearer lifecycle states for long-running executions: open, sealed, and closed.
- [TriggerFlow] Improved
auto_closeand manual-close behavior so short scripts, service handlers, background workers, and streaming workflows can use different lifecycle strategies. - [TriggerFlow] Updated
execution.close()/execution.async_close()to return the full execution close snapshot. - [TriggerFlow] Improved runtime stream shutdown behavior so stream consumers can drain consistently when an execution closes.
- [TriggerFlow] Updated FastAPI Helper integration to work directly with
TriggerFlowandTriggerFlowExecutionunder the new lifecycle model. - [TriggerFlow] Kept
.end()and legacy result-sink behavior as compatibility surfaces, while recommending close snapshots for new code.
Features
Model Requesters
- [ModelRequester] Added
OpenAIResponsesCompatible, a built-in requester for OpenAI Responses API-shaped endpoints. - [ModelRequester] Added
AnthropicCompatible, a native Anthropic Claude protocol requester. - [ModelRequester] Refactored official built-in requesters so each implementation directly follows the
ModelRequesterprotocol without requiring third-party developers to depend on a shared prototype layer.
Output Validation
- [Output] Added
.validate()/validate_handler=support for value-level business validation on model results. - [Output] Added
ensure_all_keys=Truefor strict whole-structure output enforcement. - [Output] Improved structured-output selection and clarified the relationship between required schema leaves,
ensure_keys,ensure_all_keys, and custom validation handlers.
Updates
Request And Prompt Behavior
- [OpenAICompatible] Added first-token timeout support for streaming requests.
- [Prompt] Fixed and refined prompt mapping behavior.
- [Docs] Updated prompt, output-control, model requester, and TriggerFlow examples for the 4.1.1 compatibility line.
Docs And Skills
- [Docs] Moved official website documentation into the main repository so implementation and docs can evolve together.
- [Skills] Updated the official Agently-Skills companion catalog for Agently 4.1.1.
- [Skills] Simplified install bundles into
appandmigration:app: build new Agently applications with core request, TriggerFlow, service wrapping, session, and knowledge-base guidance.migration: migrate existing LangChain, LangGraph, LlamaIndex, CrewAI, or similar systems into Agently.
- [Skills] Updated installation guidance to prefer target-agent installs over
--all, avoiding unnecessary hidden agent directories in project workspaces.
Developer Experience
- [Types] Resolved Pyright issues in core runtime paths.
- [Examples] Made optional-dependency examples safer for static analysis.
- [Tests] Skipped Ollama-dependent tests automatically when an Ollama server is unavailable.
Bug Fixes
- [Runtime] Switched event logs to use runtime context settings.
- [DevTools] Updated the evaluation example executor to match current runtime behavior.
Full Changelog: v4.1.0...v4.1.1
v4.1.0
Features
Action Runtime
- [Action] Replaced the old single-layer tool path with a three-layer Action Runtime:
ActionRuntime,ActionFlow, andActionExecutor. - [Action] Added native support for local functions, MCP servers, Python/Bash sandboxes, and custom execution backends.
TriggerFlow
- [TriggerFlow] Renamed runtime events to the
triggerflow.*namespace, while keeping compatibility aliases for legacyworkflow.*andtrigger_flow.*subscriptions. - [TriggerFlow] Published Mermaid definitions on workflow definition runtime events so execution graphs can show the full static flow.
Runtime Logging
- [Runtime] Added debug log profiles (
off,simple,detail) and switched the default runtime output to quiet mode. - [Runtime] Unified console and storage sinks around the same profile model so summary and detail rendering stay consistent.
Updates
Agent And Core
- [Agent] Exported
Agentas a default top-level import fromagently. - [Core] Normalized
RuntimeContextinternals and consolidated the runtime log helpers.
Docs And Examples
- [Docs] Refreshed the README for 4.1.0 and updated the
agently-devtoolscompatibility line toagently >=4.1.0,<4.2.0. - [Examples] Added Action Runtime samples, refreshed DevTools examples to use the
Agentlyshortcut, and archived obsolete tool/MCP demos.
Bug Fixes
- [Runtime] Fixed duplicate streaming
doneemission. - [Response] Fixed the JSON repair fallback for structured streaming.
v4.0.9
v4.0.9
Features
Runtime Observation And DevTools Companion
- [Runtime] Added the runtime event bus and run-lineage foundation for request, model, agent-turn, action, and workflow observation.
- [Runtime] Added model request observation lifecycle events, including prompt build, request, streaming, retry, completion, and meta stages.
- [DevTools] Introduced
agently-devtoolsas an optional companion package for local observation, evaluation, logs, and playground workflows. - [DevTools] Added public integration entrypoints around
ObservationBridgeandcreate_local_observation_app.
TriggerFlow
- [TriggerFlow] TriggerFlow executions now emit workflow definitions so local execution graphs can display the full static flow, including branches that have not run yet.
- [TriggerFlow] Added chunk-level runtime scope, including signal metadata, runtime input and output payloads, and origin-chunk metadata on workflow stream and result events.
- [TriggerFlow] Added flow definition export and import through JSON and YAML, plus Mermaid generation for reviewable workflow assets.
- [TriggerFlow] Added execution state save and load support for restart-safe pause and resume workflows.
- [TriggerFlow] Added sub-flow support, runtime resources, and stronger contract typing, including FastAPI Helper alignment with TriggerFlow contracts.
Tools And Developer Experience
- [Tools] Added Playwright and PyAutoGUI-powered built-in browsing support, with fallback integration in
Browse. - [Skills] Published the official installable Agently skills catalog.
Updates
Request, Response, And Settings
- [Request] Split
ModelRequestresponse and result handling into clearer response-side modules. - [Response] Refined response reuse paths around
ModelResponseandModelResponseResult. - [Settings] Added
auto_load_env=Truesupport tosettings.load_settings()and to entities that expose.load_settings(). - [Prompt] Added
save_toandencodingsupport to.get_json_prompt()and.get_yaml_prompt(). - [Output] Added
Enumsupport in output format declarations. - [Utils] Renamed
RuntimeDatatoStateDatawhile keeping compatibility aliases.
Session And Tooling
- [Session] Streamlined session resize pipeline and handler APIs, with follow-up typing and behavior fixes.
- [Tools] Refactored tool handlers and multi-round action flow to make tool execution paths easier to observe and maintain.
Bug Fixes
- [Runtime] Fixed parsed model completion payload fields in runtime observation.
- [TriggerFlow] Fixed cases where flow definition export or Mermaid generation could miss chunks.
- [Prompt] Fixed long-string handling in
.load_yaml_prompt()and.load_json_prompt(). - [Settings] Fixed auth-header handling and preserved compatibility between
optionsandrequest_options. - [Data] Fixed list-at-root handling in
DataLocator. - [Session] Fixed chat-history mutation bugs caused by pointer behavior in session helpers.
v4.0.8
Agently v4.0.8
Features
1. New integration: Agently FastAPIHelper
FastAPIHelper is a new FastAPI integration that turns Agently providers into HTTP APIs with minimal setup.
It supports BaseAgent, ModelRequest, TriggerFlow, TriggerFlowExecution, and custom generator functions, with unified request/response wrapping for POST, GET, SSE, and WebSocket.
Related examples:
from agently import Agently
from agently.integrations.fastapi import FastAPIHelper
import uvicorn
agent = Agently.create_agent()
agent.role("You are a concise and helpful assistant.", always=True)
app = FastAPIHelper(response_provider=agent)
app.use_post("/agent/chat").use_get("/agent/chat/get").use_sse("/agent/chat/sse").use_websocket("/agent/chat/ws")
if __name__ == "__main__":
uvicorn.run(app, host="127.0.0.1", port=8000)Quick test with cURL:
# POST (non-streaming)
curl -sS -X POST "http://127.0.0.1:8000/agent/chat" \
-H "Content-Type: application/json" \
-d '{
"data": { "input": "Say hello in one short sentence." },
"options": {}
}'{
"status": 200,
"data": "Hello! Nice to meet you.",
"msg": null
}# SSE (streaming)
curl -N -G "http://127.0.0.1:8000/agent/chat/sse" \
--data-urlencode 'payload={"data":{"input":"Count 1 to 3"},"options":{}}'data: {"status": 200, "data": "1", "msg": null}
data: {"status": 200, "data": ", 2", "msg": null}
data: {"status": 200, "data": ", 3", "msg": null}
2. Session system rewrite (Session + SessionExtension)
A redesigned session system is now built into the default Agent extension stack.
It introduces Session as a first-class core object with full_context, context_window, and memo, plus structured import/export (JSON / YAML) and customizable analysis/execution handlers for memory control.
Related example:
from agently import Agently
agent = Agently.create_agent()
agent.activate_session(session_id="demo_session")
agent.input("Remember this: my favorite city is Chengdu.").streaming_print()
agent.input("What is my favorite city?").streaming_print()
agent.deactivate_session()
agent.input("What is my favorite city?").streaming_print()Updates
1. TriggerFlow runtime improvements
- Added
.set_concurrency()toTriggerFlowExecutionfor dynamic runtime concurrency control. - Added
FunctionShifter.asyncify_sync_generator()to bridge sync generators into async streaming pipelines. FastAPIHelpercan now forward concurrency options toTriggerFlowExecution.
Related examples:
- 11-triggerflow-03_concurrency.py
- 11-triggerflow-10_runtime_stream.py
- fastapi_helper_triggerflow_ollama.py
2. Tooling and MCP compatibility
- Added built-in
Cmdtool (agently.builtins.tools.Cmd) with allowlist and workdir guardrails. - Added
BuiltInToolprotocol andtool_info_list-based built-in tool integration path. - Updated MCP integration requirement to
fastmcp>=3.
Related examples:
3. Prompt and API behavior refinements
- Moved
.get_json_prompt()and.get_yaml_prompt()toConfigurePromptExtension. - Added
prompt.add_current_timesetting with sharedTimeInfoutility support. - Improved compatibility handling for deprecated response
contentarguments. set_debug_console("ON")is now deprecated and has no runtime effect.ChatSessionExtensionis now deprecated in favor ofSessionExtension.
Related examples:
4. Documentation and examples refresh
- Reorganized and expanded examples (
basic,step_by_step, and FastAPI helper scenarios). - Added coding-agent docs and cheatsheets.
- Updated README/README_CN and project legal docs (LICENSE/CLA/TRADEMARK related updates).
Related links:
5. Stability and bug fixes
- Fixed incorrect prompt slot assignment in
.role(). - Fixed potential deadlock when fetching result in
finallyevent flows. - Fixed agent settings propagation issues.
- Fixed
DataFormatterhandling for JSON SchemaadditionalProperties=false. - Improved typed output handling for nested Pydantic target types.
- Added wildcard data path support (for example:
resources[*].title).
Full Changelog: v4.0.7...v4.0.8
v4.0.7
Features
TriggerFlow Concurrency Control
- [TriggerFlow]: Global concurrency control for each execution (pass
concurrencywhen creating execution or starting flow). - [TriggerFlow]:
.batch()supports concurrency control. - [TriggerFlow]:
.for_each()supports concurrency control. - [Example]: New concurrency control example.
Python Sandbox Utility
- [Utils]: New Python Sandbox utility (safer isolated execution environment).
Updates
TriggerFlow
- [TriggerFlow]:
.to()/.batch()support tuple form(name, handler)to create chunks quickly. - [TriggerFlow]: Use
TriggerFlow.chunk()in BaseProcess so chunks are registered properly. - [TriggerFlow]: Auto-generated id for quick-created chunks.
- [Examples]: New TriggerFlow RESTful API + FastAPI example.
- [Examples]: New example for quick chunk creation.
Agent Request
- [Request]: Request instance adds
.start()/.async_start()methods. - [Request Settings]:
specificsupportsNone. - [Request Settings]:
auto_load_envadded to.set_settings(), and core classes now usesettings.set_settingsuniformly.
Prompt / Configure Prompt
- [Prompt]:
.get_yaml_prompt()/.get_json_prompt()renamed from.to_*. - [Prompt]:
.load_yaml_prompt()/.load_json_prompt()supportPathinput and key-path extraction. - [Prompt]: Add
encodingparameter to.load_yaml_prompt()/.load_json_prompt(). - [Prompt]: Fix prompt type misjudgement.
- [Prompt]:
DataFormatter.substitute_placeholder()separated from Prompt into utils.
Debug / Developer Experience
- [Debug]: Console printing beautified and flushed for smoother output.
- [Examples]: Provide function calling & reasoning examples for
specifictype. - [Examples]: Add uvicorn start script.
Bug Fixes
- [TriggerFlow]: Fix batch wait bug.
- [Prompt]: Ignore
Nonein output configure prompt generation. - [Prompt]: Ensure
yaml.safe_dump()usessort_keysto keep original order. - [Request]:
.get_result()should be sync (fixed in range). - [Misc]: Fix LazyImport error causing main package import issues.
- [MCP]: Support MCP responses without structured_content or non-TextContent.
- [Auth]: Avoid sending auth when none is configured.
- [Compatibility]: Ensure compatibility for uncertain types like
dict/dict[Any, Any].
v4.0.6
Features
ChromaDB Integrations
You can use Agently ChromaDB Integrations to simplify the use case of ChromaDB
from agently import Agently
from agently.integrations.chromadb import ChromaData, ChromaEmbeddingFunction
from chromadb import Client as ChromaDBClient
embedding = Agently.create_agent()
embedding.set_settings(
"OpenAICompatible",
{
"model": "qwen3-embedding:0.6b",
"base_url": "http://127.0.0.1:11434/v1/",
"auth": "nothing",
"model_type": "embeddings",
},
).set_settings("debug", False)
embedding_function = ChromaEmbeddingFunction(agent=embedding)
chroma_data = ChromaData(
[
{
"document": "Book about Dogs",
"metadata": {"book_name": "🐶"},
},
{
"document": "Book about cars",
"metadata": {"book_name": "🚗"},
},
{
"document": "Book about vehicles",
"metadata": {"book_name": "🚘"},
},
{
"document": "Book about birds",
"metadata": {"book_name": "🐦⬛"},
},
],
)
chromadb = ChromaDBClient()
collection = chromadb.create_collection(
name="test",
get_or_create=True,
metadata={
"hnsw:space": "cosine",
},
configuration={
"embedding_function": embedding_function,
},
)
collection.add(**chroma_data.get_kwargs())
print("[ADD]:\n", chroma_data.get_original_data())
result = collection.query(query_texts=["Book about traffic"])
print(result)Updates
TriggerFlow
.when()support 'and', 'or' and 'simple_or' mode. [Example Code]- Developers can use
.save_blue_print()to export blue print data from trigger flow instance or from blue print instance and use.load_blue_print()to import blue print data into other trigger flow instance or blue print instance. [Example Code]
Agent Request
Better Prompt DX
- [Prompt]: New prompt slots
optionsto allow developers to customize single request / agent request options. - [Prompt]: New prompt slots
examplesto help developers provide one-shot / few-shots examples. - [Prompt]: Update
agent.promptto allow developers export prompt text or messages only. [Example Code] - [Prompt]: New settings
prompt.prompt_title_mappingto help developers to customize title of different prompt slots. [Example Code]
Configure Prompt Update
- [Configure Prompt]: Support the expression of Agently output format. [Example Code]
Request Settings Updates to Support Local Deployed Model Service
- [Request Settings]: Support customized authorization headers [Example Code]
- [Request Settings]: Developers can use
full_urlto provide full model request URL in case that sometimes the model URL does not follow the rule of OpenAI base URL. - [Request Settings]: Developers can use
api_keyin request settings now, it works all the same asauth.
Agent Response
- [Instant Mode]: StreamingData add attribute
full_datawhich contains current completed streaming data. - [Result]: Former
.get_result()method is renamed as.get_data()which will return parsed data. New.get_result()method will returnAgentlyResponseResultinstance which contains more attributes to help developers to collect information of result. - [Response Generator Type]: New response generator type
typed_delta(and now.get_generator()and.get_async_generator()will use argumenttypeinstead of argumentcontent). - [Response Event]: Add new response event
tool_callswhich can be consumed in generator typetyped_deltaandinstant/streaming_parse. [Example Code]
Plugins
- [Agent Extension Core]: Update extension handler slots to
request_prefixes,broadcast_prefixes,broadcast_suffixesandfinally - [Tools]: Built-in tool Search new support argument
optionsto customize more options configures. [Example Code]
Utils
- [FunctionShifter]: New decorator
@auto_options_functo help developers to create a function that will ignore undefined key arguments that passed by caller (useful when model try to pass undefined arguments to a tool function).
v4.0.5
Key Feature Updates
TriggerFlow
- Rewrite for each process (
.for_each()) to support nested for each loops perfectly. [Example Code] - Add
.____(<comments>, log_info=<True | False>, print_info=<True | False>, show_value=<True | False>)to help developers to write flow chain beautifully. - Add
.when()to support developers to wait chunk done event, runtime data change event, flow data change event or customize event and trigger the next actions. [Example Code] - Add
.collect()to support developers to wait and collect parallel branches. [Example Code] - Rewrite and update match case process, now developers can use
.match(mode=<"hit_all" | "hit_first">)to set different judgement hit strategy. [Example Code]
You can also explore more example codes in TriggerFlow examples dir.
Prompt Configures
In Agently v3, developers loved YAML-Prompt very much. Now we update this feature to Prompt Configures!
Mappings replacing in any prompt settings
Now developers can use mappings parameter in any prompt setting methods. Use case examples: agent.input("${user_input}", mappings={ "user_input": beautify(user_input) }) or agent.set_agent_prompt("instruct", "You're a ${ role }", mappings={ "role": roles[current_role] }).
Developers can use mapping replacing feature to replace placeholder ${ <variable name> } in string content. Dvelopers can also use it to replace key name or value in dictionary like { "${ key_to_be_replaced }": "${ value_to_be_replaced_directly }" }.
Check here to see Example Code
YAML and JSON format supported!
Now developers can use both YAML and JSON format data to configure agent behaviors!
-
YAML-Prompt Example Code:
-
JSON-Prompt Example Code:
Built-In Tools
We added two built-in tools Search and Browse which can be registered to agent or be used independently. You can use from agently.builtins.tools import Search, Browse to import and use them.
Search tool can search information from DuckDuckGo, Bing, Google, Yahoo, Wikipedia via package ddgs and search document from arXiv.
Browse tool use BeautifulSoup4 to fetch most common website page content for agent.
Check here to see Example Code
Instant Mode
We add a new attribute .wildcard_path to instant mode event data for developers to watch items in list easier. Now developers can use code like if data.wildcard_path == "root_key.list[*]:" to watch and handle every item in root_key.list from Agently agent response in instant mode.
Check here to see Example Code
Other Updates
- Optimized
LazyImportto support the situation when the package's import name is different from the install name. - Optimized tool using logic to catch exceptions when calling the tools instead of preventing the agent request process.
- Many other updates and bug fixes...
=========
We'll keep updating and welcome all users to express your ideas or discuss with us in https://github.com/AgentEra/Agently/discussions
Have fun and happy coding!
v4.0.3
Some major bugs fixed and add more examples:
Trigger Flow Feature Examples: https://github.com/AgentEra/Agently/tree/main/examples/trigger_flow
Trigger Flow WebSocket Server Example: https://github.com/AgentEra/Agently/tree/main/examples/trigger_flow/ws_server