You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hugegraph.apache.org by vg...@apache.org on 2026/05/05 14:20:41 UTC
(hugegraph-doc) branch asf-staging updated: Publish static image cleanup
This is an automated email from the ASF dual-hosted git repository.
VGalaxies pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/hugegraph-doc.git
The following commit(s) were added to refs/heads/asf-staging by this push:
new b7a4fa72 Publish static image cleanup
b7a4fa72 is described below
commit b7a4fa724c63bd7532b753354baa0be60835ffb8
Author: VGalaxies <vg...@apache.org>
AuthorDate: Tue May 5 14:20:29 2026 +0000
Publish static image cleanup
---
404.html | 2 +-
assets/js/6e05e76f.4ee6349e.js | 1 +
assets/js/6e05e76f.8e201bf9.js | 1 -
assets/js/b8b3af4c.09cc0d74.js | 1 -
assets/js/b8b3af4c.25839811.js | 1 +
assets/js/bbbaa51b.23a6ef89.js | 1 -
assets/js/bbbaa51b.e218c44a.js | 1 +
.../js/{f19f80e8.13ceccf3.js => f19f80e8.17f2a458.js} | 2 +-
...ntime~main.51254725.js => runtime~main.ee1111d7.js} | 2 +-
.../09/30/toplingdb-yaml-configuration-file/index.html | 2 +-
blog/2025/10/09/toplingdb-quick-start/index.html | 2 +-
blog/2025/10/29/agentic-graphrag/index.html | 2 +-
blog/archive/index.html | 2 +-
blog/images/images-server/agentic-background-cn.png | Bin 0 -> 63520 bytes
blog/index.html | 2 +-
.../09/30/toplingdb-yaml-configuration-file/index.html | 2 +-
cn/blog/2025/10/09/toplingdb-quick-start/index.html | 2 +-
cn/blog/2025/10/29/agentic-graphrag/index.html | 10 +++++-----
cn/blog/archive/index.html | 2 +-
cn/blog/atom.xml | 2 +-
cn/blog/index.html | 16 ++++++++--------
cn/blog/rss.xml | 2 +-
cn/community/contribution-guidelines/cla/index.html | 2 +-
.../committer-guidelines/index.html | 2 +-
.../contribution-guidelines/contribute/index.html | 2 +-
.../hugegraph-server-idea-setup/index.html | 2 +-
cn/community/contribution-guidelines/index.html | 2 +-
.../contribution-guidelines/subscribe/index.html | 2 +-
.../validate-release/index.html | 2 +-
cn/community/index.html | 2 +-
.../hugegraph-0.12.0-release-notes/index.html | 2 +-
.../changelog/hugegraph-1.0.0-release-notes/index.html | 2 +-
.../changelog/hugegraph-1.2.0-release-notes/index.html | 2 +-
.../changelog/hugegraph-1.3.0-release-notes/index.html | 2 +-
.../changelog/hugegraph-1.5.0-release-notes/index.html | 2 +-
.../changelog/hugegraph-1.7.0-release-notes/index.html | 2 +-
cn/docs/changelog/index.html | 2 +-
cn/docs/clients/gremlin-console/index.html | 2 +-
cn/docs/clients/hugegraph-client/index.html | 2 +-
cn/docs/clients/index.html | 2 +-
cn/docs/clients/restful-api/auth/index.html | 2 +-
cn/docs/clients/restful-api/cypher/index.html | 2 +-
cn/docs/clients/restful-api/edge/index.html | 2 +-
cn/docs/clients/restful-api/edgelabel/index.html | 2 +-
cn/docs/clients/restful-api/graphs/index.html | 2 +-
cn/docs/clients/restful-api/graphspace/index.html | 2 +-
cn/docs/clients/restful-api/gremlin/index.html | 2 +-
cn/docs/clients/restful-api/index.html | 2 +-
cn/docs/clients/restful-api/indexlabel/index.html | 2 +-
cn/docs/clients/restful-api/metrics/index.html | 2 +-
cn/docs/clients/restful-api/other/index.html | 2 +-
cn/docs/clients/restful-api/propertykey/index.html | 2 +-
cn/docs/clients/restful-api/rank/index.html | 2 +-
cn/docs/clients/restful-api/rebuild/index.html | 2 +-
cn/docs/clients/restful-api/schema/index.html | 2 +-
cn/docs/clients/restful-api/task/index.html | 2 +-
cn/docs/clients/restful-api/traverser/index.html | 2 +-
cn/docs/clients/restful-api/variable/index.html | 2 +-
cn/docs/clients/restful-api/vertex/index.html | 2 +-
cn/docs/clients/restful-api/vertexlabel/index.html | 2 +-
cn/docs/config/config-authentication/index.html | 2 +-
cn/docs/config/config-guide/index.html | 2 +-
cn/docs/config/config-https/index.html | 2 +-
cn/docs/config/config-option/index.html | 2 +-
cn/docs/config/index.html | 2 +-
cn/docs/download/download/index.html | 2 +-
cn/docs/guides/architectural/index.html | 2 +-
cn/docs/guides/backup-restore/index.html | 2 +-
cn/docs/guides/custom-plugin/index.html | 2 +-
cn/docs/guides/desgin-concept/index.html | 2 +-
cn/docs/guides/faq/index.html | 2 +-
cn/docs/guides/hugegraph-docker-cluster/index.html | 2 +-
cn/docs/guides/index.html | 2 +-
cn/docs/guides/security/index.html | 2 +-
cn/docs/guides/toolchain-local-test/index.html | 14 +++++++-------
cn/docs/index.html | 2 +-
cn/docs/introduction/index.html | 2 +-
cn/docs/language/hugegraph-example/index.html | 2 +-
cn/docs/language/hugegraph-gremlin/index.html | 2 +-
cn/docs/language/index.html | 2 +-
.../hugegraph-api-0.5.6-cassandra/index.html | 2 +-
.../hugegraph-api-0.5.6-rocksdb/index.html | 2 +-
cn/docs/performance/api-performance/index.html | 2 +-
.../performance/hugegraph-benchmark-0.4.4/index.html | 2 +-
.../performance/hugegraph-benchmark-0.5.6/index.html | 2 +-
.../hugegraph-loader-performance/index.html | 2 +-
cn/docs/performance/index.html | 2 +-
.../quickstart/client/hugegraph-client-go/index.html | 2 +-
.../client/hugegraph-client-python/index.html | 2 +-
cn/docs/quickstart/client/hugegraph-client/index.html | 2 +-
cn/docs/quickstart/client/index.html | 2 +-
.../computing/hugegraph-computer-config/index.html | 2 +-
.../quickstart/computing/hugegraph-computer/index.html | 2 +-
.../quickstart/computing/hugegraph-vermeer/index.html | 2 +-
cn/docs/quickstart/computing/index.html | 2 +-
.../hugegraph-ai/config-reference/index.html | 2 +-
.../quickstart/hugegraph-ai/hugegraph-llm/index.html | 2 +-
.../quickstart/hugegraph-ai/hugegraph-ml/index.html | 2 +-
cn/docs/quickstart/hugegraph-ai/index.html | 2 +-
cn/docs/quickstart/hugegraph-ai/quick_start/index.html | 2 +-
cn/docs/quickstart/hugegraph-ai/rest-api/index.html | 2 +-
.../quickstart/hugegraph/hugegraph-hstore/index.html | 2 +-
cn/docs/quickstart/hugegraph/hugegraph-pd/index.html | 2 +-
.../quickstart/hugegraph/hugegraph-server/index.html | 2 +-
cn/docs/quickstart/hugegraph/index.html | 2 +-
cn/docs/quickstart/index.html | 2 +-
.../quickstart/toolchain/hugegraph-hubble/index.html | 2 +-
.../quickstart/toolchain/hugegraph-loader/index.html | 2 +-
.../toolchain/hugegraph-spark-connector/index.html | 2 +-
.../quickstart/toolchain/hugegraph-tools/index.html | 2 +-
cn/docs/quickstart/toolchain/index.html | 2 +-
cn/download/index.html | 2 +-
cn/index.html | 2 +-
community/contribution-guidelines/cla/index.html | 2 +-
.../committer-guidelines/index.html | 2 +-
.../contribution-guidelines/contribute/index.html | 2 +-
.../hugegraph-server-idea-setup/index.html | 2 +-
community/contribution-guidelines/index.html | 2 +-
community/contribution-guidelines/subscribe/index.html | 2 +-
.../validate-release/index.html | 2 +-
community/index.html | 2 +-
community/maturity/index.html | 2 +-
.../changelog/hugegraph-1.0.0-release-notes/index.html | 2 +-
.../changelog/hugegraph-1.2.0-release-notes/index.html | 2 +-
.../changelog/hugegraph-1.3.0-release-notes/index.html | 2 +-
.../changelog/hugegraph-1.5.0-release-notes/index.html | 2 +-
.../changelog/hugegraph-1.7.0-release-notes/index.html | 2 +-
docs/changelog/index.html | 2 +-
docs/clients/gremlin-console/index.html | 2 +-
docs/clients/hugegraph-client/index.html | 2 +-
docs/clients/index.html | 2 +-
docs/clients/restful-api/auth/index.html | 2 +-
docs/clients/restful-api/cypher/index.html | 2 +-
docs/clients/restful-api/edge/index.html | 2 +-
docs/clients/restful-api/edgelabel/index.html | 2 +-
docs/clients/restful-api/graphs/index.html | 2 +-
docs/clients/restful-api/graphspace/index.html | 2 +-
docs/clients/restful-api/gremlin/index.html | 2 +-
docs/clients/restful-api/index.html | 2 +-
docs/clients/restful-api/indexlabel/index.html | 2 +-
docs/clients/restful-api/metrics/index.html | 2 +-
docs/clients/restful-api/other/index.html | 2 +-
docs/clients/restful-api/propertykey/index.html | 2 +-
docs/clients/restful-api/rank/index.html | 2 +-
docs/clients/restful-api/rebuild/index.html | 2 +-
docs/clients/restful-api/schema/index.html | 2 +-
docs/clients/restful-api/task/index.html | 2 +-
docs/clients/restful-api/traverser/index.html | 2 +-
docs/clients/restful-api/variable/index.html | 2 +-
docs/clients/restful-api/vertex/index.html | 2 +-
docs/clients/restful-api/vertexlabel/index.html | 2 +-
docs/config/config-authentication/index.html | 2 +-
docs/config/config-guide/index.html | 2 +-
docs/config/config-https/index.html | 2 +-
docs/config/config-option/index.html | 2 +-
docs/config/index.html | 2 +-
docs/download/download/index.html | 2 +-
docs/guides/architectural/index.html | 2 +-
docs/guides/backup-restore/index.html | 2 +-
docs/guides/custom-plugin/index.html | 2 +-
docs/guides/desgin-concept/index.html | 2 +-
docs/guides/faq/index.html | 2 +-
docs/guides/hugegraph-docker-cluster/index.html | 2 +-
docs/guides/index.html | 2 +-
docs/guides/security/index.html | 2 +-
docs/guides/toolchain-local-test/index.html | 2 +-
docs/images/cn/toolchain-test-mermaid-1.png | Bin 0 -> 132319 bytes
docs/images/cn/toolchain-test-mermaid-2.png | Bin 0 -> 31183 bytes
docs/index.html | 2 +-
docs/introduction/index.html | 2 +-
docs/language/hugegraph-example/index.html | 2 +-
docs/language/hugegraph-gremlin/index.html | 2 +-
docs/language/index.html | 2 +-
.../hugegraph-api-0.5.6-cassandra/index.html | 2 +-
.../hugegraph-api-0.5.6-rocksdb/index.html | 2 +-
docs/performance/api-performance/index.html | 2 +-
docs/performance/hugegraph-benchmark-0.4.4/index.html | 2 +-
docs/performance/hugegraph-benchmark-0.5.6/index.html | 2 +-
.../hugegraph-loader-performance/index.html | 2 +-
docs/performance/index.html | 2 +-
docs/quickstart/client/hugegraph-client-go/index.html | 2 +-
.../client/hugegraph-client-python/index.html | 2 +-
docs/quickstart/client/hugegraph-client/index.html | 2 +-
docs/quickstart/client/index.html | 2 +-
.../computing/hugegraph-computer-config/index.html | 2 +-
.../quickstart/computing/hugegraph-computer/index.html | 2 +-
docs/quickstart/computing/hugegraph-vermeer/index.html | 2 +-
docs/quickstart/computing/index.html | 2 +-
.../hugegraph-ai/config-reference/index.html | 2 +-
docs/quickstart/hugegraph-ai/hugegraph-llm/index.html | 2 +-
docs/quickstart/hugegraph-ai/hugegraph-ml/index.html | 2 +-
docs/quickstart/hugegraph-ai/index.html | 2 +-
docs/quickstart/hugegraph-ai/quick_start/index.html | 2 +-
docs/quickstart/hugegraph-ai/rest-api/index.html | 2 +-
docs/quickstart/hugegraph/hugegraph-hstore/index.html | 2 +-
docs/quickstart/hugegraph/hugegraph-pd/index.html | 2 +-
docs/quickstart/hugegraph/hugegraph-server/index.html | 2 +-
docs/quickstart/hugegraph/index.html | 2 +-
docs/quickstart/index.html | 2 +-
docs/quickstart/toolchain/hugegraph-hubble/index.html | 2 +-
docs/quickstart/toolchain/hugegraph-loader/index.html | 2 +-
.../toolchain/hugegraph-spark-connector/index.html | 2 +-
docs/quickstart/toolchain/hugegraph-tools/index.html | 2 +-
docs/quickstart/toolchain/index.html | 2 +-
download/index.html | 2 +-
index.html | 2 +-
206 files changed, 217 insertions(+), 217 deletions(-)
diff --git a/404.html b/404.html
index 5a8833b2..a53eadb3 100644
--- a/404.html
+++ b/404.html
@@ -16,7 +16,7 @@
<link rel="alternate" type="application/rss+xml" href="/cn/blog/rss.xml" title="Apache HugeGraph RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cn/blog/atom.xml" title="Apache HugeGraph Atom Feed"><link rel="stylesheet" href="/assets/css/styles.7b8cbe21.css">
-<script src="/assets/js/runtime~main.51254725.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ee1111d7.js" defer="defer"></script>
<script src="/assets/js/main.1fc5d235.js" defer="defer"></script>
</head>
<body>
diff --git a/assets/js/6e05e76f.4ee6349e.js b/assets/js/6e05e76f.4ee6349e.js
new file mode 100644
index 00000000..b093215d
--- /dev/null
+++ b/assets/js/6e05e76f.4ee6349e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_hugegraph_doc=self.webpackChunkapache_hugegraph_doc||[]).push([[1725],{10867(n,e,r){r.r(e),r.d(e,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var o=r(4079),l=r(74848),t=r(28453);const s={date:new Date("2025-10-29T00:00:00.000Z"),title:"Agentic GraphRAG",linkTitle:"Agentic GraphRAG\uff1a\u6a21\u5757\u5316\u67b6\u6784\u5b9e\u8df5",slug:"/2025/10/29/agentic-graphrag",sidebar_label:"Agentic GraphRAG\uff1a\u6 [...]
\ No newline at end of file
diff --git a/assets/js/6e05e76f.8e201bf9.js b/assets/js/6e05e76f.8e201bf9.js
deleted file mode 100644
index da5d53b9..00000000
--- a/assets/js/6e05e76f.8e201bf9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_hugegraph_doc=self.webpackChunkapache_hugegraph_doc||[]).push([[1725],{10867(n,e,r){r.r(e),r.d(e,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var o=r(4079),l=r(74848),t=r(28453);const s={date:new Date("2025-10-29T00:00:00.000Z"),title:"Agentic GraphRAG",linkTitle:"Agentic GraphRAG\uff1a\u6a21\u5757\u5316\u67b6\u6784\u5b9e\u8df5",slug:"/2025/10/29/agentic-graphrag",sidebar_label:"Agentic GraphRAG\uff1a\u6 [...]
\ No newline at end of file
diff --git a/assets/js/b8b3af4c.09cc0d74.js b/assets/js/b8b3af4c.09cc0d74.js
deleted file mode 100644
index 6fae7b8e..00000000
--- a/assets/js/b8b3af4c.09cc0d74.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_hugegraph_doc=self.webpackChunkapache_hugegraph_doc||[]).push([[4254],{89073(n,e,r){r.r(e),r.d(e,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var o=r(4079),l=r(74848),t=r(28453);const s={date:new Date("2025-10-29T00:00:00.000Z"),title:"Agentic GraphRAG",linkTitle:"Agentic GraphRAG\uff1a\u6a21\u5757\u5316\u67b6\u6784\u5b9e\u8df5",slug:"/2025/10/29/agentic-graphrag",sidebar_label:"Agentic GraphRAG\uff1a\u6 [...]
\ No newline at end of file
diff --git a/assets/js/b8b3af4c.25839811.js b/assets/js/b8b3af4c.25839811.js
new file mode 100644
index 00000000..0b3e5f4d
--- /dev/null
+++ b/assets/js/b8b3af4c.25839811.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_hugegraph_doc=self.webpackChunkapache_hugegraph_doc||[]).push([[4254],{89073(n,e,r){r.r(e),r.d(e,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var o=r(4079),l=r(74848),t=r(28453);const s={date:new Date("2025-10-29T00:00:00.000Z"),title:"Agentic GraphRAG",linkTitle:"Agentic GraphRAG\uff1a\u6a21\u5757\u5316\u67b6\u6784\u5b9e\u8df5",slug:"/2025/10/29/agentic-graphrag",sidebar_label:"Agentic GraphRAG\uff1a\u6 [...]
\ No newline at end of file
diff --git a/assets/js/bbbaa51b.23a6ef89.js b/assets/js/bbbaa51b.23a6ef89.js
deleted file mode 100644
index e11660d0..00000000
--- a/assets/js/bbbaa51b.23a6ef89.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_hugegraph_doc=self.webpackChunkapache_hugegraph_doc||[]).push([[4063],{59811(n){n.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"/2025/10/29/agentic-graphrag","metadata":{"permalink":"/cn/blog/2025/10/29/agentic-graphrag","editUrl":"https://github.com/apache/hugegraph-doc/edit/master/content/cn/blog/hugegraph-ai/agentic_graphrag.md","source":"@site/content/cn/blog/hugegraph-ai/agentic_graphrag.md","title":"Agentic GraphRAG","description":"\u4e3a [...]
\ No newline at end of file
diff --git a/assets/js/bbbaa51b.e218c44a.js b/assets/js/bbbaa51b.e218c44a.js
new file mode 100644
index 00000000..f96de33d
--- /dev/null
+++ b/assets/js/bbbaa51b.e218c44a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_hugegraph_doc=self.webpackChunkapache_hugegraph_doc||[]).push([[4063],{59811(n){n.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"/2025/10/29/agentic-graphrag","metadata":{"permalink":"/cn/blog/2025/10/29/agentic-graphrag","editUrl":"https://github.com/apache/hugegraph-doc/edit/master/content/cn/blog/hugegraph-ai/agentic_graphrag.md","source":"@site/content/cn/blog/hugegraph-ai/agentic_graphrag.md","title":"Agentic GraphRAG","description":"\u4e3a [...]
\ No newline at end of file
diff --git a/assets/js/f19f80e8.13ceccf3.js b/assets/js/f19f80e8.17f2a458.js
similarity index 59%
rename from assets/js/f19f80e8.13ceccf3.js
rename to assets/js/f19f80e8.17f2a458.js
index c399914c..b5140cf0 100644
--- a/assets/js/f19f80e8.13ceccf3.js
+++ b/assets/js/f19f80e8.17f2a458.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkapache_hugegraph_doc=self.webpackChunkapache_hugegraph_doc||[]).push([[7862],{24014(e,n,r){r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>o,frontMatter:()=>a,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"guides/toolchain-local-test","title":"HugeGraph\u5de5\u5177\u94fe\u672c\u5730\u6d4b\u8bd5\u6307\u5357","description":"\u672c\u6307\u5357\u5e2e\u52a9\u5f00\u53d1\u8005\u5728\u672c\u5730\u8fd0\u884c HugeGraph \u5de5\u5177\u94fe\u6d4b\u8bd5\ [...]
\ No newline at end of file
+"use strict";(self.webpackChunkapache_hugegraph_doc=self.webpackChunkapache_hugegraph_doc||[]).push([[7862],{24014(e,n,r){r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>o,frontMatter:()=>a,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"guides/toolchain-local-test","title":"HugeGraph\u5de5\u5177\u94fe\u672c\u5730\u6d4b\u8bd5\u6307\u5357","description":"\u672c\u6307\u5357\u5e2e\u52a9\u5f00\u53d1\u8005\u5728\u672c\u5730\u8fd0\u884c HugeGraph \u5de5\u5177\u94fe\u6d4b\u8bd5\ [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.51254725.js b/assets/js/runtime~main.ee1111d7.js
similarity index 96%
rename from assets/js/runtime~main.51254725.js
rename to assets/js/runtime~main.ee1111d7.js
index 3740989a..a0088f57 100644
--- a/assets/js/runtime~main.51254725.js
+++ b/assets/js/runtime~main.ee1111d7.js
@@ -1 +1 @@
-(()=>{"use strict";var a,e,f,c,b,d={},t={};function r(a){var e=t[a];if(void 0!==e)return e.exports;var f=t[a]={exports:{}};return d[a].call(f.exports,f,f.exports,r),f.exports}r.m=d,a=[],r.O=(e,f,c,b)=>{if(!f){var d=1/0;for(i=0;i<a.length;i++){for(var[f,c,b]=a[i],t=!0,o=0;o<f.length;o++)(!1&b||d>=b)&&Object.keys(r.O).every(a=>r.O[a](f[o]))?f.splice(o--,1):(t=!1,b<d&&(d=b));if(t){a.splice(i--,1);var n=c();void 0!==n&&(e=n)}}return e}b=b||0;for(var i=a.length;i>0&&a[i-1][2]>b;i--)a[i]=a[i-1 [...]
\ No newline at end of file
+(()=>{"use strict";var a,e,f,c,b,d={},t={};function r(a){var e=t[a];if(void 0!==e)return e.exports;var f=t[a]={exports:{}};return d[a].call(f.exports,f,f.exports,r),f.exports}r.m=d,a=[],r.O=(e,f,c,b)=>{if(!f){var d=1/0;for(i=0;i<a.length;i++){for(var[f,c,b]=a[i],t=!0,o=0;o<f.length;o++)(!1&b||d>=b)&&Object.keys(r.O).every(a=>r.O[a](f[o]))?f.splice(o--,1):(t=!1,b<d&&(d=b));if(t){a.splice(i--,1);var n=c();void 0!==n&&(e=n)}}return e}b=b||0;for(var i=a.length;i>0&&a[i-1][2]>b;i--)a[i]=a[i-1 [...]
\ No newline at end of file
diff --git a/blog/2025/09/30/toplingdb-yaml-configuration-file/index.html b/blog/2025/09/30/toplingdb-yaml-configuration-file/index.html
index 5a57c43f..8a30bd58 100644
--- a/blog/2025/09/30/toplingdb-yaml-configuration-file/index.html
+++ b/blog/2025/09/30/toplingdb-yaml-configuration-file/index.html
@@ -16,7 +16,7 @@
<link rel="alternate" type="application/rss+xml" href="/cn/blog/rss.xml" title="Apache HugeGraph RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cn/blog/atom.xml" title="Apache HugeGraph Atom Feed"><link rel="stylesheet" href="/assets/css/styles.7b8cbe21.css">
-<script src="/assets/js/runtime~main.51254725.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ee1111d7.js" defer="defer"></script>
<script src="/assets/js/main.1fc5d235.js" defer="defer"></script>
</head>
<body>
diff --git a/blog/2025/10/09/toplingdb-quick-start/index.html b/blog/2025/10/09/toplingdb-quick-start/index.html
index d62d976f..e1aefac3 100644
--- a/blog/2025/10/09/toplingdb-quick-start/index.html
+++ b/blog/2025/10/09/toplingdb-quick-start/index.html
@@ -16,7 +16,7 @@
<link rel="alternate" type="application/rss+xml" href="/cn/blog/rss.xml" title="Apache HugeGraph RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cn/blog/atom.xml" title="Apache HugeGraph Atom Feed"><link rel="stylesheet" href="/assets/css/styles.7b8cbe21.css">
-<script src="/assets/js/runtime~main.51254725.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ee1111d7.js" defer="defer"></script>
<script src="/assets/js/main.1fc5d235.js" defer="defer"></script>
</head>
<body>
diff --git a/blog/2025/10/29/agentic-graphrag/index.html b/blog/2025/10/29/agentic-graphrag/index.html
index 2f2805c7..02becb76 100644
--- a/blog/2025/10/29/agentic-graphrag/index.html
+++ b/blog/2025/10/29/agentic-graphrag/index.html
@@ -16,7 +16,7 @@
<link rel="alternate" type="application/rss+xml" href="/cn/blog/rss.xml" title="Apache HugeGraph RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cn/blog/atom.xml" title="Apache HugeGraph Atom Feed"><link rel="stylesheet" href="/assets/css/styles.7b8cbe21.css">
-<script src="/assets/js/runtime~main.51254725.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ee1111d7.js" defer="defer"></script>
<script src="/assets/js/main.1fc5d235.js" defer="defer"></script>
</head>
<body>
diff --git a/blog/archive/index.html b/blog/archive/index.html
index ff101419..a355e6eb 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -16,7 +16,7 @@
<link rel="alternate" type="application/rss+xml" href="/cn/blog/rss.xml" title="Apache HugeGraph RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cn/blog/atom.xml" title="Apache HugeGraph Atom Feed"><link rel="stylesheet" href="/assets/css/styles.7b8cbe21.css">
-<script src="/assets/js/runtime~main.51254725.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ee1111d7.js" defer="defer"></script>
<script src="/assets/js/main.1fc5d235.js" defer="defer"></script>
</head>
<body>
diff --git a/blog/images/images-server/agentic-background-cn.png b/blog/images/images-server/agentic-background-cn.png
new file mode 100644
index 00000000..d625cbc3
Binary files /dev/null and b/blog/images/images-server/agentic-background-cn.png differ
diff --git a/blog/index.html b/blog/index.html
index 95496a82..71bff97b 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -16,7 +16,7 @@
<link rel="alternate" type="application/rss+xml" href="/cn/blog/rss.xml" title="Apache HugeGraph RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cn/blog/atom.xml" title="Apache HugeGraph Atom Feed"><link rel="stylesheet" href="/assets/css/styles.7b8cbe21.css">
-<script src="/assets/js/runtime~main.51254725.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ee1111d7.js" defer="defer"></script>
<script src="/assets/js/main.1fc5d235.js" defer="defer"></script>
</head>
<body>
diff --git a/cn/blog/2025/09/30/toplingdb-yaml-configuration-file/index.html b/cn/blog/2025/09/30/toplingdb-yaml-configuration-file/index.html
index 85df4f7c..113ab7fb 100644
--- a/cn/blog/2025/09/30/toplingdb-yaml-configuration-file/index.html
+++ b/cn/blog/2025/09/30/toplingdb-yaml-configuration-file/index.html
@@ -16,7 +16,7 @@
<link rel="alternate" type="application/rss+xml" href="/cn/blog/rss.xml" title="Apache HugeGraph RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cn/blog/atom.xml" title="Apache HugeGraph Atom Feed"><link rel="stylesheet" href="/assets/css/styles.7b8cbe21.css">
-<script src="/assets/js/runtime~main.51254725.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ee1111d7.js" defer="defer"></script>
<script src="/assets/js/main.1fc5d235.js" defer="defer"></script>
</head>
<body>
diff --git a/cn/blog/2025/10/09/toplingdb-quick-start/index.html b/cn/blog/2025/10/09/toplingdb-quick-start/index.html
index 31a4c6fe..e58fd0aa 100644
--- a/cn/blog/2025/10/09/toplingdb-quick-start/index.html
+++ b/cn/blog/2025/10/09/toplingdb-quick-start/index.html
@@ -16,7 +16,7 @@
<link rel="alternate" type="application/rss+xml" href="/cn/blog/rss.xml" title="Apache HugeGraph RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cn/blog/atom.xml" title="Apache HugeGraph Atom Feed"><link rel="stylesheet" href="/assets/css/styles.7b8cbe21.css">
-<script src="/assets/js/runtime~main.51254725.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ee1111d7.js" defer="defer"></script>
<script src="/assets/js/main.1fc5d235.js" defer="defer"></script>
</head>
<body>
diff --git a/cn/blog/2025/10/29/agentic-graphrag/index.html b/cn/blog/2025/10/29/agentic-graphrag/index.html
index 9ddfd1b6..fa5a8d98 100644
--- a/cn/blog/2025/10/29/agentic-graphrag/index.html
+++ b/cn/blog/2025/10/29/agentic-graphrag/index.html
@@ -16,7 +16,7 @@
<link rel="alternate" type="application/rss+xml" href="/cn/blog/rss.xml" title="Apache HugeGraph RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cn/blog/atom.xml" title="Apache HugeGraph Atom Feed"><link rel="stylesheet" href="/assets/css/styles.7b8cbe21.css">
-<script src="/assets/js/runtime~main.51254725.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ee1111d7.js" defer="defer"></script>
<script src="/assets/js/main.1fc5d235.js" defer="defer"></script>
</head>
<body>
@@ -38,7 +38,7 @@
<li class="">Online: 当GraphRAG系统接收到用户问题时,根据图数据库捕捉到的语料库中不同实体之间的关联关系,我们可以从图数据库中抓取到上面的三句话(具体图数据库索引可能如下图所示)</li>
</ol>
<div style="text-align:center">
- <img decoding="async" loading="lazy" src="/blog/images/images-server/agentic-background.png" alt="image" width="400" class="img_ev3q">
+ <img decoding="async" loading="lazy" src="/blog/images/images-server/agentic-background-cn.png" alt="image" width="400" class="img_ev3q">
</div>
<p>但是GraphRAG本身也存在几个问题:</p>
<ol>
@@ -56,7 +56,7 @@
<p>由于Operator的实现需要遵循下面的接口:</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token keyword" style="font-style:italic">class</span><span class="token plain"> </span><span class="t [...]
<p>Operator在实际运行时接受字典类型的context对象作为输入,返回的对象也是一个字典,可以用来作为下一个Operator的输入,这样的设计有一个很高明的地方——他将不同的Operator之间的依赖关系和Operator本身的具体实现解耦了,每个Operator是一个相对独立的存在,如果Operator A需要依赖Operator B的输出,那么只需要检查context对象中是否存有Operator B的输出即可。这是一种低耦合的设计。好处是我们能很方便地将不同的Operator自由组合。根据不同的用户输入组装(配置)合适Workflow Serving用户请求,那不正是我们在项目背景中提到的Agentic GraphRAG的目的所在吗?</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">👉🏼 理论上现有设计已经可以正常过渡到Agentic GraphRAG,但是现有设计存在诸多悬而未决的问题:</span><br></div><div class="token-lin [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">👉🏼 理论上现有设计已经可以正常过渡到Agentic GraphRAG,但是现有设计存在诸多悬而未决的问题:</span><br></div><div class="token-lin [...]
<h1>打破链式束缚,拥抱全新架构</h1>
<p>之前的调度器给我们的启发是Operator粒度的解耦是一个不错的设计理念,但是调度器本身能力有限,限制了Workflow的能力。因此我们计划替换项目中的调度器!经过对几种不同的Workflow编排框架进行简单的调研之后,我们认为下面几个特性是我们筛选调度器的标准。(下面我们统一将框架编排对象称为Workflow,Workflow由一系列Task组成)</p>
<ol>
@@ -153,7 +153,7 @@
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="抽象设计是否合理">抽象设计是否合理?<a href="#抽象设计是否合理" class="hash-link" aria-label="Direct link to 抽象设计是否合理?" title="Direct link to 抽象设计是否合理?" translate="no"></a></h3>
<p>所以我们开始考察那个被我们称之为Workflow的抽象,在上一个设计中,它是由一系列Operator组成的链表。这样的设计否定了并行的可能,那么如果我们说Workflow是一系列Operator组成的DAG图是否合理呢?</p>
<p>直观来说这样的定义很合理,但是实际实践下来,我们发现Workflow中的每个节点(后面我们称之为Node)和Operator一一对应却不是一个好的设计,因为我们需要在不同的请求之间复用Workflow(这样可以节省Workflow构造过程中不可避免的资源创建以及一些DAG图校验带来的性能开销)。</p>
-<p>举个例子,向量相似度查询是一个很常见的RAG流程,但是根据不同底层向量数据库暴露的接口不同,我们可能需要提供FaissVectorSearch、VectraVectorSearch等多种目的相同但是具体实现不同的Operator。如果我们将Operator和Workflow中的Node等同,那么我们对于Workflow的复用机会将大大减少,因为使用Faiss进行搜索和使用Vectra进行搜索的Workflow将会是不同的Workflow,但是如果我们将功能类似的向量索引Operator都封装到VectorSearchNode中,那么我们是不是能够有更多的Workflow复用机会呢?在VectorSearchNode的具体实现中我们只需要根据需要调用对应的Operator即可。通过在Workflow和Operator中间加一层的方式,有下面三个 好处:</p>
+<p>举个例子,向量相似度查询是一个很常见的RAG流程,但是根据不同底层向量数据库暴露的接口不同,我们可能需要提供FaissVectorSearch、VectraVectorSearch等多种目的相同但是具体实现不同的Operator。如果我们将Operator和Workflow中的Node等同,那么我们对于Workflow的复用机会将大大减少,因为使用Faiss进行搜索和使用Vectra进行搜索的Workflow将会是不同的Workflow,但是如果我们将功能类似的向量索引Operator都封装到VectorSearchNode中,那么我们是不是能够有更多的Workflow复用机会呢?在VectorSearchNode的具体实现中我们只需要根据需要调用对应的Operator即可。通过在Workflow和Operator中间加一层的方式,有下面三 个好处:</p>
<ol>
<li class="">新增新的Operator,我们只需要修改对应Node的具体实现即可,不需要修改上层Workflow的逻辑。Operator对Node负责,Node对Workflow负责,很好地实现了职能分离。</li>
<li class="">拥有更多的Workflow复用的机会。</li>
@@ -247,7 +247,7 @@
</ol>
<p>最后,我想说,技术上的探索固然重要,但这段旅程中最宝贵的财富,是与优秀的同行者共事的经历以及从中获得的成长与感悟。这才是推动我们不断前行的真正动力。</p>
<h1>结语</h1>
-<p>在 HugeGraph-AI 的重构与革新过程中,AI工具的引入大大提升了开发效率,但最终的决策和取舍,仍然需要严谨的思考,Talk is not cheap, thinking is necessary。每当遇到新的技术难题,我们总能提出多种解决方案,而真正的考验在于如何在它们之间进行权衡 (trade-off)。技术世界并非非黑即白,不同的架构选择、方案取舍,往往对应着不同的目标用户与应用场景。我们对 CGraph 的选择,正是这一理念的最佳实践。它并非业界首个图调度框架,但在性能、灵活性与开发成本等诸多维度的考量中,它为我们提供了最契合当前需求的平衡点——在这条充满权衡的道路上, 它离我们最近。</p>
+<p>在 HugeGraph-AI 的重构与革新过程中,AI工具的引入大大提升了开发效率,但最终的决策和取舍,仍然需要严谨的思考,Talk is not cheap, thinking is necessary。每当遇到新的技术难题,我们总能提出多种解决方案,而真正的考验在于如何在它们之间进行权衡 (trade-off)。技术世界并非非黑即白,不同的架构选择、方案取舍,往往对应着不同的目标用户与应用场景。我们对 CGraph 的选择,正是这一理念的最佳实践。它并非业界首个图调度框架,但在性能、灵活性与开发成本等诸多维度的考量中,它为我们提供了最契合当前需求的平衡点——在这条充满权衡的道路上 ,它离我们最近。</p>
<p>这也让我们更加坚信:一个产品或技术最终被选择,往往不只因其理念的先进,更在于它能否在复杂的现实约束下,为特定问题提供最务实的解法。</p>
<p>项目暂告一段落,由衷感谢每一位并肩作战的伙伴!这段经历因你们而精彩。</p></div><footer class="docusaurus-mt-lg"><div class="row margin-top--sm theme-blog-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/apache/hugegraph-doc/edit/master/content/cn/blog/hugegraph-ai/agentic_graphrag.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3 [...]
</body>
diff --git a/cn/blog/archive/index.html b/cn/blog/archive/index.html
index a5d1139c..8febd1d1 100644
--- a/cn/blog/archive/index.html
+++ b/cn/blog/archive/index.html
@@ -16,7 +16,7 @@
<link rel="alternate" type="application/rss+xml" href="/cn/blog/rss.xml" title="Apache HugeGraph RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cn/blog/atom.xml" title="Apache HugeGraph Atom Feed"><link rel="stylesheet" href="/assets/css/styles.7b8cbe21.css">
-<script src="/assets/js/runtime~main.51254725.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ee1111d7.js" defer="defer"></script>
<script src="/assets/js/main.1fc5d235.js" defer="defer"></script>
</head>
<body>
diff --git a/cn/blog/atom.xml b/cn/blog/atom.xml
index 730b4f4f..9a2a6fbc 100644
--- a/cn/blog/atom.xml
+++ b/cn/blog/atom.xml
@@ -28,7 +28,7 @@
<li class="">Online: 当GraphRAG系统接收到用户问题时,根据图数据库捕捉到的语料库中不同实体之间的关联关系,我们可以从图数据库中抓取到上面的三句话(具体图数据库索引可能如下图所示)</li>
</ol>
<div style="text-align:center">
- <img decoding="async" loading="lazy" src="https://hugegraph.apache.org/blog/images/images-server/agentic-background.png" alt="image" width="400" class="img_ev3q">
+ <img decoding="async" loading="lazy" src="https://hugegraph.apache.org/blog/images/images-server/agentic-background-cn.png" alt="image" width="400" class="img_ev3q">
</div>
<p>但是GraphRAG本身也存在几个问题:</p>
<ol>
diff --git a/cn/blog/index.html b/cn/blog/index.html
index 0b72c8cb..2aa0fa96 100644
--- a/cn/blog/index.html
+++ b/cn/blog/index.html
@@ -16,7 +16,7 @@
<link rel="alternate" type="application/rss+xml" href="/cn/blog/rss.xml" title="Apache HugeGraph RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cn/blog/atom.xml" title="Apache HugeGraph Atom Feed"><link rel="stylesheet" href="/assets/css/styles.7b8cbe21.css">
-<script src="/assets/js/runtime~main.51254725.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.ee1111d7.js" defer="defer"></script>
<script src="/assets/js/main.1fc5d235.js" defer="defer"></script>
</head>
<body>
@@ -38,7 +38,7 @@
<li class="">Online: 当GraphRAG系统接收到用户问题时,根据图数据库捕捉到的语料库中不同实体之间的关联关系,我们可以从图数据库中抓取到上面的三句话(具体图数据库索引可能如下图所示)</li>
</ol>
<div style="text-align:center">
- <img decoding="async" loading="lazy" src="/blog/images/images-server/agentic-background.png" alt="image" width="400" class="img_ev3q">
+ <img decoding="async" loading="lazy" src="/blog/images/images-server/agentic-background-cn.png" alt="image" width="400" class="img_ev3q">
</div>
<p>但是GraphRAG本身也存在几个问题:</p>
<ol>
@@ -56,7 +56,7 @@
<p>由于Operator的实现需要遵循下面的接口:</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token keyword" style="font-style:italic">class</span><span class="token plain"> </span><span class="t [...]
<p>Operator在实际运行时接受字典类型的context对象作为输入,返回的对象也是一个字典,可以用来作为下一个Operator的输入,这样的设计有一个很高明的地方——他将不同的Operator之间的依赖关系和Operator本身的具体实现解耦了,每个Operator是一个相对独立的存在,如果Operator A需要依赖Operator B的输出,那么只需要检查context对象中是否存有Operator B的输出即可。这是一种低耦合的设计。好处是我们能很方便地将不同的Operator自由组合。根据不同的用户输入组装(配置)合适Workflow Serving用户请求,那不正是我们在项目背景中提到的Agentic GraphRAG的目的所在吗?</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">👉🏼 理论上现有设计已经可以正常过渡到Agentic GraphRAG,但是现有设计存在诸多悬而未决的问题:</span><br></div><div class="token-lin [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#bfc7d5"><span class="token plain">👉🏼 理论上现有设计已经可以正常过渡到Agentic GraphRAG,但是现有设计存在诸多悬而未决的问题:</span><br></div><div class="token-lin [...]
<h1>打破链式束缚,拥抱全新架构</h1>
<p>之前的调度器给我们的启发是Operator粒度的解耦是一个不错的设计理念,但是调度器本身能力有限,限制了Workflow的能力。因此我们计划替换项目中的调度器!经过对几种不同的Workflow编排框架进行简单的调研之后,我们认为下面几个特性是我们筛选调度器的标准。(下面我们统一将框架编排对象称为Workflow,Workflow由一系列Task组成)</p>
<ol>
@@ -149,7 +149,7 @@
<img decoding="async" loading="lazy" src="/blog/images/images-server/agentic-frame.png" alt="image" width="800" class="img_ev3q">
</div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="架构设计">架构设计<a href="#架构设计" class="hash-link" aria-label="Direct link to 架构设计" title="Direct link to 架构设计" translate="no"></a></h2>
-<p>起初,我们的目标很纯粹:基于CGraph, 打造一个属于我们自己的调度器。然而深入思考之后,我们发现:一个好的调度器,<strong>源于对调度对象的深刻理解</strong>(是时候拷问自己了🤣)。就像CPU调度器和GPU调度器由于其调度对象以及生态定位的不同也会采取不同调度策略。</p>
+<p>起初,我们的目标很纯粹:基于CGraph ,打造一个属于我们自己的调度器。然而深入思考之后,我们发现:一个好的调度器,<strong>源于对调度对象的深刻理解</strong>(是时候拷问自己了🤣)。就像CPU调度器和GPU调度器由于其调度对象以及生态定位的不同也会采取不同调度策略。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="抽象设计是否合理">抽象设计是否合理?<a href="#抽象设计是否合理" class="hash-link" aria-label="Direct link to 抽象设计是否合理?" title="Direct link to 抽象设计是否合理?" translate="no"></a></h3>
<p>所以我们开始考察那个被我们称之为Workflow的抽象,在上一个设计中,它是由一系列Operator组成的链表。这样的设计否定了并行的可能,那么如果我们说Workflow是一系列Operator组成的DAG图是否合理呢?</p>
<p>直观来说这样的定义很合理,但是实际实践下来,我们发现Workflow中的每个节点(后面我们称之为Node)和Operator一一对应却不是一个好的设计,因为我们需要在不同的请求之间复用Workflow(这样可以节省Workflow构造过程中不可避免的资源创建以及一些DAG图校验带来的性能开销)。</p>
@@ -175,7 +175,7 @@
<p>我们利用 CGraph 框架提供的 <code>GParam</code>(全局参数)抽象来实现精细化的状态隔离:</p>
<ol>
<li class=""><strong>分离上下文</strong>: 我们为WorkflowInput和WorkflowState定义两个独立的 <code>GParam</code> 上下文。</li>
-<li class=""><strong>注 入生命周期钩子</strong>: 我们在工作流的执行逻辑外层进行封装,实现以下自动化清理机制:
+<li class=""><strong>