mirror of
https://github.com/hoshikawa2/agent_platform_oci.git
synced 2026-11-06 03:14:12 +00:00
new feature: Multi-Intent
This commit is contained in:
104
.idea/workspace.xml
generated
104
.idea/workspace.xml
generated
@@ -4,9 +4,7 @@
|
|||||||
<option name="autoReloadType" value="SELECTIVE" />
|
<option name="autoReloadType" value="SELECTIVE" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="30a0e1d8-9d7d-469b-b241-f300911cee8a" name="Changes" comment="Ajustes na documentação e remanejamento dos folders">
|
<list default="true" id="30a0e1d8-9d7d-469b-b241-f300911cee8a" name="Changes" comment="Ajustes na documentação e remanejamento dos folders" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
|
||||||
</list>
|
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
@@ -52,27 +50,107 @@
|
|||||||
"ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
"ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
||||||
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
|
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager": "true",
|
||||||
"RunOnceActivity.git.unshallow": "true",
|
"RunOnceActivity.git.unshallow": "true",
|
||||||
"RunOnceActivity.typescript.service.memoryLimit.init": "true",
|
"RunOnceActivity.typescript.service.memoryLimit.init": "true",
|
||||||
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
||||||
"git-widget-placeholder": "main",
|
"Shell Script.agent_frontend.executor": "Run",
|
||||||
|
"Shell Script.agent_template_backend.executor": "Run",
|
||||||
|
"Shell Script.mcp_gateway.executor": "Run",
|
||||||
|
"Shell Script.mcp_server.executor": "Run",
|
||||||
|
"git-widget-placeholder": "master",
|
||||||
"kotlin-language-version-configured": "true",
|
"kotlin-language-version-configured": "true",
|
||||||
"last_opened_file_path": "D:/Dropbox/ORACLE/TIM/FY27/Commits/agent_platform_oci",
|
"last_opened_file_path": "C:/Asus_Projects/kbdb/agent_framework_oci/templates/agent_template_backend",
|
||||||
"node.js.detected.package.eslint": "true",
|
"node.js.detected.package.eslint": "true",
|
||||||
"node.js.detected.package.tslint": "true",
|
"node.js.detected.package.tslint": "true",
|
||||||
"node.js.selected.package.eslint": "(autodetect)",
|
"node.js.selected.package.eslint": "(autodetect)",
|
||||||
"node.js.selected.package.tslint": "(autodetect)",
|
"node.js.selected.package.tslint": "(autodetect)",
|
||||||
"nodejs_package_manager_path": "npm",
|
"nodejs_package_manager_path": "npm",
|
||||||
"settings.editor.selected.configurable": "configurable.group.appearance",
|
"project.structure.last.edited": "Project",
|
||||||
|
"project.structure.proportion": "0.15",
|
||||||
|
"project.structure.side.proportion": "0.2",
|
||||||
|
"settings.editor.selected.configurable": "advanced.settings",
|
||||||
"vue.rearranger.settings.migration": "true"
|
"vue.rearranger.settings.migration": "true"
|
||||||
}
|
}
|
||||||
}]]></component>
|
}]]></component>
|
||||||
|
<component name="RecentsManager">
|
||||||
|
<key name="CopyFile.RECENT_KEYS">
|
||||||
|
<recent name="C:\Asus_Projects\kbdb\agent_framework_oci\templates\agent_template_backend" />
|
||||||
|
</key>
|
||||||
|
</component>
|
||||||
|
<component name="RunManager" selected="Shell Script.agent_template_backend">
|
||||||
|
<configuration name="agent_frontend" type="ShConfigurationType">
|
||||||
|
<option name="SCRIPT_TEXT" value="wsl bash -lc "source .venv/bin/activate && cd apps/agent_frontend && python -m http.server 5173"" />
|
||||||
|
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||||
|
<option name="SCRIPT_PATH" value="" />
|
||||||
|
<option name="SCRIPT_OPTIONS" value="" />
|
||||||
|
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
|
||||||
|
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||||
|
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
|
||||||
|
<option name="INTERPRETER_PATH" value="powershell.exe" />
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="EXECUTE_IN_TERMINAL" value="true" />
|
||||||
|
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||||
|
<envs />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
<configuration name="agent_template_backend" type="ShConfigurationType">
|
||||||
|
<option name="SCRIPT_TEXT" value="wsl bash -lc "source .venv/bin/activate && cd templates/agent_template_backend && python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload"" />
|
||||||
|
<option name="INDEPENDENT_SCRIPT_PATH" value="false" />
|
||||||
|
<option name="SCRIPT_PATH" value="$PROJECT_DIR$/templates/agent_template_backend/app" />
|
||||||
|
<option name="SCRIPT_OPTIONS" value="" />
|
||||||
|
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||||
|
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||||
|
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
|
||||||
|
<option name="INTERPRETER_PATH" value="powershell.exe" />
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="EXECUTE_IN_TERMINAL" value="true" />
|
||||||
|
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||||
|
<envs />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
<configuration name="mcp_gateway" type="ShConfigurationType">
|
||||||
|
<option name="SCRIPT_TEXT" value="wsl bash -lc "source .venv/bin/activate && cd scripts && bash run_mcp_gateway.sh"" />
|
||||||
|
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||||
|
<option name="SCRIPT_PATH" value="" />
|
||||||
|
<option name="SCRIPT_OPTIONS" value="" />
|
||||||
|
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
|
||||||
|
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||||
|
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
|
||||||
|
<option name="INTERPRETER_PATH" value="powershell.exe" />
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="EXECUTE_IN_TERMINAL" value="true" />
|
||||||
|
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||||
|
<envs />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
<configuration name="mcp_server" type="ShConfigurationType">
|
||||||
|
<option name="SCRIPT_TEXT" value="wsl bash -lc "source .venv/bin/activate && cd scripts && bash run_mcp_servers.sh"" />
|
||||||
|
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||||
|
<option name="SCRIPT_PATH" value="" />
|
||||||
|
<option name="SCRIPT_OPTIONS" value="" />
|
||||||
|
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
|
||||||
|
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||||
|
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
|
||||||
|
<option name="INTERPRETER_PATH" value="powershell.exe" />
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="EXECUTE_IN_TERMINAL" value="true" />
|
||||||
|
<option name="EXECUTE_SCRIPT_FILE" value="false" />
|
||||||
|
<envs />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
<list>
|
||||||
|
<item itemvalue="Shell Script.agent_template_backend" />
|
||||||
|
<item itemvalue="Shell Script.mcp_gateway" />
|
||||||
|
<item itemvalue="Shell Script.mcp_server" />
|
||||||
|
<item itemvalue="Shell Script.agent_frontend" />
|
||||||
|
</list>
|
||||||
|
</component>
|
||||||
<component name="SharedIndexes">
|
<component name="SharedIndexes">
|
||||||
<attachedChunks>
|
<attachedChunks>
|
||||||
<set>
|
<set>
|
||||||
<option value="bundled-jdk-30f59d01ecdd-cffe25b9f5b3-intellij.indexing.shared.core-IU-253.28294.334" />
|
<option value="bundled-jdk-9823dce3aa75-fbdcb00ec9e3-intellij.indexing.shared.core-IU-251.29188.36" />
|
||||||
<option value="bundled-js-predefined-d6986cc7102b-c7e53b3be11b-JavaScript-IU-253.28294.334" />
|
<option value="bundled-js-predefined-d6986cc7102b-09060db00ec0-JavaScript-IU-251.29188.36" />
|
||||||
</set>
|
</set>
|
||||||
</attachedChunks>
|
</attachedChunks>
|
||||||
</component>
|
</component>
|
||||||
@@ -92,10 +170,10 @@
|
|||||||
<workItem from="1785245181314" duration="79000" />
|
<workItem from="1785245181314" duration="79000" />
|
||||||
<workItem from="1785245608367" duration="670000" />
|
<workItem from="1785245608367" duration="670000" />
|
||||||
<workItem from="1785326458404" duration="86000" />
|
<workItem from="1785326458404" duration="86000" />
|
||||||
<workItem from="1785414225783" duration="148000" />
|
<workItem from="1785405876905" duration="1300000" />
|
||||||
<workItem from="1785414447653" duration="704000" />
|
<workItem from="1785409583147" duration="1561000" />
|
||||||
<workItem from="1785630146329" duration="316000" />
|
<workItem from="1785452072692" duration="784000" />
|
||||||
<workItem from="1787832640995" duration="4662000" />
|
<workItem from="1785453511270" duration="1006000" />
|
||||||
</task>
|
</task>
|
||||||
<task id="LOCAL-00001" summary="Ajustes na documentação e remanejamento dos folders">
|
<task id="LOCAL-00001" summary="Ajustes na documentação e remanejamento dos folders">
|
||||||
<option name="closed" value="true" />
|
<option name="closed" value="true" />
|
||||||
|
|||||||
@@ -37,3 +37,27 @@ AGENT_AUTH_BASIC_REALM=agent-contas
|
|||||||
# AGENT_AUTH_PROXY_SUBJECT_HEADER=x-authenticated-subject
|
# AGENT_AUTH_PROXY_SUBJECT_HEADER=x-authenticated-subject
|
||||||
# AGENT_AUTH_PROXY_SHARED_SECRET_HEADER=x-internal-auth
|
# AGENT_AUTH_PROXY_SHARED_SECRET_HEADER=x-internal-auth
|
||||||
# AGENT_AUTH_PROXY_SHARED_SECRET_HASH=sha256:replace-hex
|
# AGENT_AUTH_PROXY_SHARED_SECRET_HASH=sha256:replace-hex
|
||||||
|
|
||||||
|
|
||||||
|
# RAG / KBDB
|
||||||
|
# RAG provider: standard (local) ou kbdb (PKG_KB_SERVING.SEARCH_KNOWLEDGE_BASE)
|
||||||
|
RAG_PROVIDER=standard
|
||||||
|
# KBDB usa credenciais próprias; não há fallback para ADB_*.
|
||||||
|
KBDB_DB_USER=
|
||||||
|
KBDB_DB_PASSWORD=
|
||||||
|
KBDB_DB_DSN=
|
||||||
|
KBDB_DB_WALLET_LOCATION=
|
||||||
|
KBDB_DB_WALLET_PASSWORD=
|
||||||
|
KBDB_SEARCH_TYPE=hybrid
|
||||||
|
KBDB_NODE_EXPANSION=true
|
||||||
|
KBDB_NODE_MAX_RELATED=8
|
||||||
|
KBDB_GRAPH_CROSS_REF=false
|
||||||
|
KBDB_MAX_CROSS_REF_HOPS=1
|
||||||
|
KBDB_DOCUMENT_TYPE=customer_safe
|
||||||
|
KBDB_METADATA_JSON=
|
||||||
|
KBDB_MIN_SCORE=
|
||||||
|
KBDB_IDENTIFY_DOCUMENT=true
|
||||||
|
KBDB_STORE_QUERY=true
|
||||||
|
KBDB_IDENTIFY_TOP_N=3
|
||||||
|
RAG_GROUNDED_ONLY=false
|
||||||
|
KBDB_GROUNDED_ONLY=true
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -108,6 +108,14 @@ class BillingAgent(AgentRuntimeMixin):
|
|||||||
"next_state": "BILLING_ACTIVE",
|
"next_state": "BILLING_ACTIVE",
|
||||||
"mcp_results": tool_context,
|
"mcp_results": tool_context,
|
||||||
"rag": rag_metadata,
|
"rag": rag_metadata,
|
||||||
|
"rag_context": rag_context,
|
||||||
|
"rag_results": [{
|
||||||
|
"intent": state.get("intent"),
|
||||||
|
"agent": self.name,
|
||||||
|
"source_text": str(state.get("sanitized_input") or state.get("user_text") or ""),
|
||||||
|
"metadata": rag_metadata,
|
||||||
|
**({"context": rag_context} if rag_context else {}),
|
||||||
|
}],
|
||||||
"memory_context_metadata": state.get("memory_context_metadata"),
|
"memory_context_metadata": state.get("memory_context_metadata"),
|
||||||
**self.transaction_state_patch(state),
|
**self.transaction_state_patch(state),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,6 +108,14 @@ class OrdersAgent(AgentRuntimeMixin):
|
|||||||
"next_state": "ORDER_ACTIVE",
|
"next_state": "ORDER_ACTIVE",
|
||||||
"mcp_results": tool_context,
|
"mcp_results": tool_context,
|
||||||
"rag": rag_metadata,
|
"rag": rag_metadata,
|
||||||
|
"rag_context": rag_context,
|
||||||
|
"rag_results": [{
|
||||||
|
"intent": state.get("intent"),
|
||||||
|
"agent": self.name,
|
||||||
|
"source_text": str(state.get("sanitized_input") or state.get("user_text") or ""),
|
||||||
|
"metadata": rag_metadata,
|
||||||
|
**({"context": rag_context} if rag_context else {}),
|
||||||
|
}],
|
||||||
"memory_context_metadata": state.get("memory_context_metadata"),
|
"memory_context_metadata": state.get("memory_context_metadata"),
|
||||||
**self.transaction_state_patch(state),
|
**self.transaction_state_patch(state),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,6 +108,14 @@ class ProductAgent(AgentRuntimeMixin):
|
|||||||
"next_state": "PRODUCT_ACTIVE",
|
"next_state": "PRODUCT_ACTIVE",
|
||||||
"mcp_results": tool_context,
|
"mcp_results": tool_context,
|
||||||
"rag": rag_metadata,
|
"rag": rag_metadata,
|
||||||
|
"rag_context": rag_context,
|
||||||
|
"rag_results": [{
|
||||||
|
"intent": state.get("intent"),
|
||||||
|
"agent": self.name,
|
||||||
|
"source_text": str(state.get("sanitized_input") or state.get("user_text") or ""),
|
||||||
|
"metadata": rag_metadata,
|
||||||
|
**({"context": rag_context} if rag_context else {}),
|
||||||
|
}],
|
||||||
"memory_context_metadata": state.get("memory_context_metadata"),
|
"memory_context_metadata": state.get("memory_context_metadata"),
|
||||||
**self.transaction_state_patch(state),
|
**self.transaction_state_patch(state),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,6 +108,14 @@ class SupportAgent(AgentRuntimeMixin):
|
|||||||
"next_state": "SUPPORT_ACTIVE",
|
"next_state": "SUPPORT_ACTIVE",
|
||||||
"mcp_results": tool_context,
|
"mcp_results": tool_context,
|
||||||
"rag": rag_metadata,
|
"rag": rag_metadata,
|
||||||
|
"rag_context": rag_context,
|
||||||
|
"rag_results": [{
|
||||||
|
"intent": state.get("intent"),
|
||||||
|
"agent": self.name,
|
||||||
|
"source_text": str(state.get("sanitized_input") or state.get("user_text") or ""),
|
||||||
|
"metadata": rag_metadata,
|
||||||
|
**({"context": rag_context} if rag_context else {}),
|
||||||
|
}],
|
||||||
"memory_context_metadata": state.get("memory_context_metadata"),
|
"memory_context_metadata": state.get("memory_context_metadata"),
|
||||||
**self.transaction_state_patch(state),
|
**self.transaction_state_patch(state),
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -372,6 +372,7 @@ async def _process_gateway_message(req: GatewayRequest, emit_sse: bool = False)
|
|||||||
"domain": result.get("domain"),
|
"domain": result.get("domain"),
|
||||||
"mcp_tools": result.get("mcp_tools"),
|
"mcp_tools": result.get("mcp_tools"),
|
||||||
"mcp_results": result.get("mcp_results"),
|
"mcp_results": result.get("mcp_results"),
|
||||||
|
"rag_results": result.get("rag_results"),
|
||||||
"business_context": business_context.model_dump(),
|
"business_context": business_context.model_dump(),
|
||||||
"identity_missing": missing_identity_keys,
|
"identity_missing": missing_identity_keys,
|
||||||
"judges": result.get("judge_results"),
|
"judges": result.get("judge_results"),
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -23,6 +23,7 @@ class AgentState(TypedDict, total=False):
|
|||||||
domain: str
|
domain: str
|
||||||
mcp_tools: list[str]
|
mcp_tools: list[str]
|
||||||
mcp_results: list[dict[str, Any]]
|
mcp_results: list[dict[str, Any]]
|
||||||
|
rag_results: list[dict[str, Any]]
|
||||||
available_mcp_tools: list[str]
|
available_mcp_tools: list[str]
|
||||||
selected_tool_call: dict[str, Any]
|
selected_tool_call: dict[str, Any]
|
||||||
pending_tool_call: dict[str, Any]
|
pending_tool_call: dict[str, Any]
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -570,6 +570,7 @@ class AgentWorkflow:
|
|||||||
"pending_topics": drained.pending_topics,
|
"pending_topics": drained.pending_topics,
|
||||||
"handled_topics": drained.handled_topics,
|
"handled_topics": drained.handled_topics,
|
||||||
"mcp_results": drained.mcp_results,
|
"mcp_results": drained.mcp_results,
|
||||||
|
"rag_results": drained.rag_results,
|
||||||
"output_guardrails_already_applied": False,
|
"output_guardrails_already_applied": False,
|
||||||
"supervisor_action": "disabled",
|
"supervisor_action": "disabled",
|
||||||
"supervisor_attempt": int(state.get("supervisor_attempt", 0)),
|
"supervisor_attempt": int(state.get("supervisor_attempt", 0)),
|
||||||
@@ -577,7 +578,19 @@ class AgentWorkflow:
|
|||||||
|
|
||||||
context = {
|
context = {
|
||||||
**(state.get("context") or {}),
|
**(state.get("context") or {}),
|
||||||
"evidence": drained.mcp_results or (state.get("context") or {}).get("evidence"),
|
"evidence": (list(drained.mcp_results) + list(drained.rag_results)) or (state.get("context") or {}).get("evidence"),
|
||||||
|
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
||||||
|
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
||||||
|
"mcp_results": drained.mcp_results,
|
||||||
|
"evidence": (list(drained.mcp_results) + list(drained.rag_results)) or (state.get("context") or {}).get("evidence"),
|
||||||
|
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
||||||
|
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
||||||
|
"mcp_results": drained.mcp_results,
|
||||||
|
"evidence": (list(drained.mcp_results) + list(drained.rag_results)) or (state.get("context") or {}).get("evidence"),
|
||||||
|
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
||||||
|
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
||||||
|
"mcp_results": drained.mcp_results,
|
||||||
|
"evidence": (list(drained.mcp_results) + list(drained.rag_results)) or (state.get("context") or {}).get("evidence"),
|
||||||
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
||||||
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
||||||
"mcp_results": drained.mcp_results,
|
"mcp_results": drained.mcp_results,
|
||||||
@@ -650,6 +663,7 @@ class AgentWorkflow:
|
|||||||
"pending_topics": drained.pending_topics,
|
"pending_topics": drained.pending_topics,
|
||||||
"handled_topics": drained.handled_topics,
|
"handled_topics": drained.handled_topics,
|
||||||
"mcp_results": drained.mcp_results,
|
"mcp_results": drained.mcp_results,
|
||||||
|
"rag_results": drained.rag_results,
|
||||||
"guardrail_decisions": state.get("guardrail_decisions", [])
|
"guardrail_decisions": state.get("guardrail_decisions", [])
|
||||||
+ [item for r in decision.results for item in (r.metadata or {}).get("legacy_decisions", [])],
|
+ [item for r in decision.results for item in (r.metadata or {}).get("legacy_decisions", [])],
|
||||||
}
|
}
|
||||||
@@ -876,6 +890,7 @@ class AgentWorkflow:
|
|||||||
"judges": state.get("judge_results", []),
|
"judges": state.get("judge_results", []),
|
||||||
"mcp_tools": state.get("mcp_tools", []),
|
"mcp_tools": state.get("mcp_tools", []),
|
||||||
"mcp_results": state.get("mcp_results", []),
|
"mcp_results": state.get("mcp_results", []),
|
||||||
|
"rag_results": state.get("rag_results", []),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -67,6 +67,30 @@ EMBEDDING_PROVIDER=mock
|
|||||||
OCI_EMBEDDING_MODEL=cohere.embed-multilingual-v3.0
|
OCI_EMBEDDING_MODEL=cohere.embed-multilingual-v3.0
|
||||||
RAG_FILE_GLOBS=*.md,*.txt,*.yaml,*.yml,*.json
|
RAG_FILE_GLOBS=*.md,*.txt,*.yaml,*.yml,*.json
|
||||||
|
|
||||||
|
|
||||||
|
# RAG / KBDB
|
||||||
|
# RAG provider: standard (local) ou kbdb (PKG_KB_SERVING.SEARCH_KNOWLEDGE_BASE)
|
||||||
|
RAG_PROVIDER=standard
|
||||||
|
# KBDB usa credenciais próprias; não há fallback para ADB_*.
|
||||||
|
KBDB_DB_USER=
|
||||||
|
KBDB_DB_PASSWORD=
|
||||||
|
KBDB_DB_DSN=
|
||||||
|
KBDB_DB_WALLET_LOCATION=
|
||||||
|
KBDB_DB_WALLET_PASSWORD=
|
||||||
|
KBDB_SEARCH_TYPE=hybrid
|
||||||
|
KBDB_NODE_EXPANSION=true
|
||||||
|
KBDB_NODE_MAX_RELATED=8
|
||||||
|
KBDB_GRAPH_CROSS_REF=false
|
||||||
|
KBDB_MAX_CROSS_REF_HOPS=1
|
||||||
|
KBDB_DOCUMENT_TYPE=customer_safe
|
||||||
|
KBDB_METADATA_JSON=
|
||||||
|
KBDB_MIN_SCORE=
|
||||||
|
KBDB_IDENTIFY_DOCUMENT=true
|
||||||
|
KBDB_STORE_QUERY=true
|
||||||
|
KBDB_IDENTIFY_TOP_N=3
|
||||||
|
RAG_GROUNDED_ONLY=false
|
||||||
|
KBDB_GROUNDED_ONLY=true
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Observabilidade
|
# Observabilidade
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -108,6 +108,14 @@ class BillingAgent(AgentRuntimeMixin):
|
|||||||
"next_state": "BILLING_ACTIVE",
|
"next_state": "BILLING_ACTIVE",
|
||||||
"mcp_results": tool_context,
|
"mcp_results": tool_context,
|
||||||
"rag": rag_metadata,
|
"rag": rag_metadata,
|
||||||
|
"rag_context": rag_context,
|
||||||
|
"rag_results": [{
|
||||||
|
"intent": state.get("intent"),
|
||||||
|
"agent": self.name,
|
||||||
|
"source_text": str(state.get("sanitized_input") or state.get("user_text") or ""),
|
||||||
|
"metadata": rag_metadata,
|
||||||
|
**({"context": rag_context} if rag_context else {}),
|
||||||
|
}],
|
||||||
"memory_context_metadata": state.get("memory_context_metadata"),
|
"memory_context_metadata": state.get("memory_context_metadata"),
|
||||||
**self.transaction_state_patch(state),
|
**self.transaction_state_patch(state),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,6 +108,14 @@ class OrdersAgent(AgentRuntimeMixin):
|
|||||||
"next_state": "ORDER_ACTIVE",
|
"next_state": "ORDER_ACTIVE",
|
||||||
"mcp_results": tool_context,
|
"mcp_results": tool_context,
|
||||||
"rag": rag_metadata,
|
"rag": rag_metadata,
|
||||||
|
"rag_context": rag_context,
|
||||||
|
"rag_results": [{
|
||||||
|
"intent": state.get("intent"),
|
||||||
|
"agent": self.name,
|
||||||
|
"source_text": str(state.get("sanitized_input") or state.get("user_text") or ""),
|
||||||
|
"metadata": rag_metadata,
|
||||||
|
**({"context": rag_context} if rag_context else {}),
|
||||||
|
}],
|
||||||
"memory_context_metadata": state.get("memory_context_metadata"),
|
"memory_context_metadata": state.get("memory_context_metadata"),
|
||||||
**self.transaction_state_patch(state),
|
**self.transaction_state_patch(state),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,6 +108,14 @@ class ProductAgent(AgentRuntimeMixin):
|
|||||||
"next_state": "PRODUCT_ACTIVE",
|
"next_state": "PRODUCT_ACTIVE",
|
||||||
"mcp_results": tool_context,
|
"mcp_results": tool_context,
|
||||||
"rag": rag_metadata,
|
"rag": rag_metadata,
|
||||||
|
"rag_context": rag_context,
|
||||||
|
"rag_results": [{
|
||||||
|
"intent": state.get("intent"),
|
||||||
|
"agent": self.name,
|
||||||
|
"source_text": str(state.get("sanitized_input") or state.get("user_text") or ""),
|
||||||
|
"metadata": rag_metadata,
|
||||||
|
**({"context": rag_context} if rag_context else {}),
|
||||||
|
}],
|
||||||
"memory_context_metadata": state.get("memory_context_metadata"),
|
"memory_context_metadata": state.get("memory_context_metadata"),
|
||||||
**self.transaction_state_patch(state),
|
**self.transaction_state_patch(state),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,6 +108,14 @@ class SupportAgent(AgentRuntimeMixin):
|
|||||||
"next_state": "SUPPORT_ACTIVE",
|
"next_state": "SUPPORT_ACTIVE",
|
||||||
"mcp_results": tool_context,
|
"mcp_results": tool_context,
|
||||||
"rag": rag_metadata,
|
"rag": rag_metadata,
|
||||||
|
"rag_context": rag_context,
|
||||||
|
"rag_results": [{
|
||||||
|
"intent": state.get("intent"),
|
||||||
|
"agent": self.name,
|
||||||
|
"source_text": str(state.get("sanitized_input") or state.get("user_text") or ""),
|
||||||
|
"metadata": rag_metadata,
|
||||||
|
**({"context": rag_context} if rag_context else {}),
|
||||||
|
}],
|
||||||
"memory_context_metadata": state.get("memory_context_metadata"),
|
"memory_context_metadata": state.get("memory_context_metadata"),
|
||||||
**self.transaction_state_patch(state),
|
**self.transaction_state_patch(state),
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -366,6 +366,7 @@ async def _process_gateway_message(req: GatewayRequest, emit_sse: bool = False)
|
|||||||
"domain": result.get("domain"),
|
"domain": result.get("domain"),
|
||||||
"mcp_tools": result.get("mcp_tools"),
|
"mcp_tools": result.get("mcp_tools"),
|
||||||
"mcp_results": result.get("mcp_results"),
|
"mcp_results": result.get("mcp_results"),
|
||||||
|
"rag_results": result.get("rag_results"),
|
||||||
"business_context": business_context.model_dump(),
|
"business_context": business_context.model_dump(),
|
||||||
"identity_missing": missing_identity_keys,
|
"identity_missing": missing_identity_keys,
|
||||||
"judges": result.get("judge_results"),
|
"judges": result.get("judge_results"),
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -23,6 +23,7 @@ class AgentState(TypedDict, total=False):
|
|||||||
domain: str
|
domain: str
|
||||||
mcp_tools: list[str]
|
mcp_tools: list[str]
|
||||||
mcp_results: list[dict[str, Any]]
|
mcp_results: list[dict[str, Any]]
|
||||||
|
rag_results: list[dict[str, Any]]
|
||||||
available_mcp_tools: list[str]
|
available_mcp_tools: list[str]
|
||||||
selected_tool_call: dict[str, Any]
|
selected_tool_call: dict[str, Any]
|
||||||
pending_tool_call: dict[str, Any]
|
pending_tool_call: dict[str, Any]
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -570,6 +570,7 @@ class AgentWorkflow:
|
|||||||
"pending_topics": drained.pending_topics,
|
"pending_topics": drained.pending_topics,
|
||||||
"handled_topics": drained.handled_topics,
|
"handled_topics": drained.handled_topics,
|
||||||
"mcp_results": drained.mcp_results,
|
"mcp_results": drained.mcp_results,
|
||||||
|
"rag_results": drained.rag_results,
|
||||||
"output_guardrails_already_applied": False,
|
"output_guardrails_already_applied": False,
|
||||||
"supervisor_action": "disabled",
|
"supervisor_action": "disabled",
|
||||||
"supervisor_attempt": int(state.get("supervisor_attempt", 0)),
|
"supervisor_attempt": int(state.get("supervisor_attempt", 0)),
|
||||||
@@ -577,7 +578,19 @@ class AgentWorkflow:
|
|||||||
|
|
||||||
context = {
|
context = {
|
||||||
**(state.get("context") or {}),
|
**(state.get("context") or {}),
|
||||||
"evidence": drained.mcp_results or (state.get("context") or {}).get("evidence"),
|
"evidence": (list(drained.mcp_results) + list(drained.rag_results)) or (state.get("context") or {}).get("evidence"),
|
||||||
|
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
||||||
|
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
||||||
|
"mcp_results": drained.mcp_results,
|
||||||
|
"evidence": (list(drained.mcp_results) + list(drained.rag_results)) or (state.get("context") or {}).get("evidence"),
|
||||||
|
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
||||||
|
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
||||||
|
"mcp_results": drained.mcp_results,
|
||||||
|
"evidence": (list(drained.mcp_results) + list(drained.rag_results)) or (state.get("context") or {}).get("evidence"),
|
||||||
|
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
||||||
|
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
||||||
|
"mcp_results": drained.mcp_results,
|
||||||
|
"evidence": (list(drained.mcp_results) + list(drained.rag_results)) or (state.get("context") or {}).get("evidence"),
|
||||||
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
||||||
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
||||||
"mcp_results": drained.mcp_results,
|
"mcp_results": drained.mcp_results,
|
||||||
@@ -650,6 +663,7 @@ class AgentWorkflow:
|
|||||||
"pending_topics": drained.pending_topics,
|
"pending_topics": drained.pending_topics,
|
||||||
"handled_topics": drained.handled_topics,
|
"handled_topics": drained.handled_topics,
|
||||||
"mcp_results": drained.mcp_results,
|
"mcp_results": drained.mcp_results,
|
||||||
|
"rag_results": drained.rag_results,
|
||||||
"guardrail_decisions": state.get("guardrail_decisions", [])
|
"guardrail_decisions": state.get("guardrail_decisions", [])
|
||||||
+ [item for r in decision.results for item in (r.metadata or {}).get("legacy_decisions", [])],
|
+ [item for r in decision.results for item in (r.metadata or {}).get("legacy_decisions", [])],
|
||||||
}
|
}
|
||||||
@@ -876,6 +890,7 @@ class AgentWorkflow:
|
|||||||
"judges": state.get("judge_results", []),
|
"judges": state.get("judge_results", []),
|
||||||
"mcp_tools": state.get("mcp_tools", []),
|
"mcp_tools": state.get("mcp_tools", []),
|
||||||
"mcp_results": state.get("mcp_results", []),
|
"mcp_results": state.get("mcp_results", []),
|
||||||
|
"rag_results": state.get("rag_results", []),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -66,6 +66,30 @@ EMBEDDING_PROVIDER=mock
|
|||||||
OCI_EMBEDDING_MODEL=cohere.embed-multilingual-v3.0
|
OCI_EMBEDDING_MODEL=cohere.embed-multilingual-v3.0
|
||||||
RAG_FILE_GLOBS=*.md,*.txt,*.yaml,*.yml,*.json
|
RAG_FILE_GLOBS=*.md,*.txt,*.yaml,*.yml,*.json
|
||||||
|
|
||||||
|
|
||||||
|
# RAG / KBDB
|
||||||
|
# RAG provider: standard (local) ou kbdb (PKG_KB_SERVING.SEARCH_KNOWLEDGE_BASE)
|
||||||
|
RAG_PROVIDER=standard
|
||||||
|
# KBDB usa credenciais próprias; não há fallback para ADB_*.
|
||||||
|
KBDB_DB_USER=
|
||||||
|
KBDB_DB_PASSWORD=
|
||||||
|
KBDB_DB_DSN=
|
||||||
|
KBDB_DB_WALLET_LOCATION=
|
||||||
|
KBDB_DB_WALLET_PASSWORD=
|
||||||
|
KBDB_SEARCH_TYPE=hybrid
|
||||||
|
KBDB_NODE_EXPANSION=true
|
||||||
|
KBDB_NODE_MAX_RELATED=8
|
||||||
|
KBDB_GRAPH_CROSS_REF=false
|
||||||
|
KBDB_MAX_CROSS_REF_HOPS=1
|
||||||
|
KBDB_DOCUMENT_TYPE=customer_safe
|
||||||
|
KBDB_METADATA_JSON=
|
||||||
|
KBDB_MIN_SCORE=
|
||||||
|
KBDB_IDENTIFY_DOCUMENT=true
|
||||||
|
KBDB_STORE_QUERY=true
|
||||||
|
KBDB_IDENTIFY_TOP_N=3
|
||||||
|
RAG_GROUNDED_ONLY=false
|
||||||
|
KBDB_GROUNDED_ONLY=true
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Observabilidade
|
# Observabilidade
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -108,6 +108,14 @@ class BillingAgent(AgentRuntimeMixin):
|
|||||||
"next_state": "BILLING_ACTIVE",
|
"next_state": "BILLING_ACTIVE",
|
||||||
"mcp_results": tool_context,
|
"mcp_results": tool_context,
|
||||||
"rag": rag_metadata,
|
"rag": rag_metadata,
|
||||||
|
"rag_context": rag_context,
|
||||||
|
"rag_results": [{
|
||||||
|
"intent": state.get("intent"),
|
||||||
|
"agent": self.name,
|
||||||
|
"source_text": str(state.get("sanitized_input") or state.get("user_text") or ""),
|
||||||
|
"metadata": rag_metadata,
|
||||||
|
**({"context": rag_context} if rag_context else {}),
|
||||||
|
}],
|
||||||
"memory_context_metadata": state.get("memory_context_metadata"),
|
"memory_context_metadata": state.get("memory_context_metadata"),
|
||||||
**self.transaction_state_patch(state),
|
**self.transaction_state_patch(state),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,6 +108,14 @@ class OrdersAgent(AgentRuntimeMixin):
|
|||||||
"next_state": "ORDER_ACTIVE",
|
"next_state": "ORDER_ACTIVE",
|
||||||
"mcp_results": tool_context,
|
"mcp_results": tool_context,
|
||||||
"rag": rag_metadata,
|
"rag": rag_metadata,
|
||||||
|
"rag_context": rag_context,
|
||||||
|
"rag_results": [{
|
||||||
|
"intent": state.get("intent"),
|
||||||
|
"agent": self.name,
|
||||||
|
"source_text": str(state.get("sanitized_input") or state.get("user_text") or ""),
|
||||||
|
"metadata": rag_metadata,
|
||||||
|
**({"context": rag_context} if rag_context else {}),
|
||||||
|
}],
|
||||||
"memory_context_metadata": state.get("memory_context_metadata"),
|
"memory_context_metadata": state.get("memory_context_metadata"),
|
||||||
**self.transaction_state_patch(state),
|
**self.transaction_state_patch(state),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,6 +108,14 @@ class ProductAgent(AgentRuntimeMixin):
|
|||||||
"next_state": "PRODUCT_ACTIVE",
|
"next_state": "PRODUCT_ACTIVE",
|
||||||
"mcp_results": tool_context,
|
"mcp_results": tool_context,
|
||||||
"rag": rag_metadata,
|
"rag": rag_metadata,
|
||||||
|
"rag_context": rag_context,
|
||||||
|
"rag_results": [{
|
||||||
|
"intent": state.get("intent"),
|
||||||
|
"agent": self.name,
|
||||||
|
"source_text": str(state.get("sanitized_input") or state.get("user_text") or ""),
|
||||||
|
"metadata": rag_metadata,
|
||||||
|
**({"context": rag_context} if rag_context else {}),
|
||||||
|
}],
|
||||||
"memory_context_metadata": state.get("memory_context_metadata"),
|
"memory_context_metadata": state.get("memory_context_metadata"),
|
||||||
**self.transaction_state_patch(state),
|
**self.transaction_state_patch(state),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,6 +108,14 @@ class SupportAgent(AgentRuntimeMixin):
|
|||||||
"next_state": "SUPPORT_ACTIVE",
|
"next_state": "SUPPORT_ACTIVE",
|
||||||
"mcp_results": tool_context,
|
"mcp_results": tool_context,
|
||||||
"rag": rag_metadata,
|
"rag": rag_metadata,
|
||||||
|
"rag_context": rag_context,
|
||||||
|
"rag_results": [{
|
||||||
|
"intent": state.get("intent"),
|
||||||
|
"agent": self.name,
|
||||||
|
"source_text": str(state.get("sanitized_input") or state.get("user_text") or ""),
|
||||||
|
"metadata": rag_metadata,
|
||||||
|
**({"context": rag_context} if rag_context else {}),
|
||||||
|
}],
|
||||||
"memory_context_metadata": state.get("memory_context_metadata"),
|
"memory_context_metadata": state.get("memory_context_metadata"),
|
||||||
**self.transaction_state_patch(state),
|
**self.transaction_state_patch(state),
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -361,6 +361,7 @@ async def _process_gateway_message(req: GatewayRequest, emit_sse: bool = False)
|
|||||||
"domain": result.get("domain"),
|
"domain": result.get("domain"),
|
||||||
"mcp_tools": result.get("mcp_tools"),
|
"mcp_tools": result.get("mcp_tools"),
|
||||||
"mcp_results": result.get("mcp_results"),
|
"mcp_results": result.get("mcp_results"),
|
||||||
|
"rag_results": result.get("rag_results"),
|
||||||
"business_context": business_context.model_dump(),
|
"business_context": business_context.model_dump(),
|
||||||
"identity_missing": missing_identity_keys,
|
"identity_missing": missing_identity_keys,
|
||||||
"judges": result.get("judge_results"),
|
"judges": result.get("judge_results"),
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -23,6 +23,7 @@ class AgentState(TypedDict, total=False):
|
|||||||
domain: str
|
domain: str
|
||||||
mcp_tools: list[str]
|
mcp_tools: list[str]
|
||||||
mcp_results: list[dict[str, Any]]
|
mcp_results: list[dict[str, Any]]
|
||||||
|
rag_results: list[dict[str, Any]]
|
||||||
available_mcp_tools: list[str]
|
available_mcp_tools: list[str]
|
||||||
selected_tool_call: dict[str, Any]
|
selected_tool_call: dict[str, Any]
|
||||||
pending_tool_call: dict[str, Any]
|
pending_tool_call: dict[str, Any]
|
||||||
|
|||||||
Binary file not shown.
@@ -568,6 +568,7 @@ class AgentWorkflow:
|
|||||||
"pending_topics": drained.pending_topics,
|
"pending_topics": drained.pending_topics,
|
||||||
"handled_topics": drained.handled_topics,
|
"handled_topics": drained.handled_topics,
|
||||||
"mcp_results": drained.mcp_results,
|
"mcp_results": drained.mcp_results,
|
||||||
|
"rag_results": drained.rag_results,
|
||||||
"output_guardrails_already_applied": False,
|
"output_guardrails_already_applied": False,
|
||||||
"supervisor_action": "disabled",
|
"supervisor_action": "disabled",
|
||||||
"supervisor_attempt": int(state.get("supervisor_attempt", 0)),
|
"supervisor_attempt": int(state.get("supervisor_attempt", 0)),
|
||||||
@@ -575,7 +576,19 @@ class AgentWorkflow:
|
|||||||
|
|
||||||
context = {
|
context = {
|
||||||
**(state.get("context") or {}),
|
**(state.get("context") or {}),
|
||||||
"evidence": drained.mcp_results or (state.get("context") or {}).get("evidence"),
|
"evidence": (list(drained.mcp_results) + list(drained.rag_results)) or (state.get("context") or {}).get("evidence"),
|
||||||
|
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
||||||
|
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
||||||
|
"mcp_results": drained.mcp_results,
|
||||||
|
"evidence": (list(drained.mcp_results) + list(drained.rag_results)) or (state.get("context") or {}).get("evidence"),
|
||||||
|
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
||||||
|
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
||||||
|
"mcp_results": drained.mcp_results,
|
||||||
|
"evidence": (list(drained.mcp_results) + list(drained.rag_results)) or (state.get("context") or {}).get("evidence"),
|
||||||
|
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
||||||
|
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
||||||
|
"mcp_results": drained.mcp_results,
|
||||||
|
"evidence": (list(drained.mcp_results) + list(drained.rag_results)) or (state.get("context") or {}).get("evidence"),
|
||||||
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
"tool_result": drained.mcp_results or (state.get("context") or {}).get("tool_result"),
|
||||||
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
"tool_executed": any(isinstance(item, dict) and item.get("ok") for item in drained.mcp_results),
|
||||||
"mcp_results": drained.mcp_results,
|
"mcp_results": drained.mcp_results,
|
||||||
@@ -648,6 +661,7 @@ class AgentWorkflow:
|
|||||||
"pending_topics": drained.pending_topics,
|
"pending_topics": drained.pending_topics,
|
||||||
"handled_topics": drained.handled_topics,
|
"handled_topics": drained.handled_topics,
|
||||||
"mcp_results": drained.mcp_results,
|
"mcp_results": drained.mcp_results,
|
||||||
|
"rag_results": drained.rag_results,
|
||||||
"guardrail_decisions": state.get("guardrail_decisions", [])
|
"guardrail_decisions": state.get("guardrail_decisions", [])
|
||||||
+ [item for r in decision.results for item in (r.metadata or {}).get("legacy_decisions", [])],
|
+ [item for r in decision.results for item in (r.metadata or {}).get("legacy_decisions", [])],
|
||||||
}
|
}
|
||||||
@@ -805,6 +819,7 @@ class AgentWorkflow:
|
|||||||
"judges": state.get("judge_results", []),
|
"judges": state.get("judge_results", []),
|
||||||
"mcp_tools": state.get("mcp_tools", []),
|
"mcp_tools": state.get("mcp_tools", []),
|
||||||
"mcp_results": state.get("mcp_results", []),
|
"mcp_results": state.get("mcp_results", []),
|
||||||
|
"rag_results": state.get("rag_results", []),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -67,6 +67,30 @@ EMBEDDING_PROVIDER=mock
|
|||||||
OCI_EMBEDDING_MODEL=cohere.embed-multilingual-v3.0
|
OCI_EMBEDDING_MODEL=cohere.embed-multilingual-v3.0
|
||||||
RAG_FILE_GLOBS=*.md,*.txt,*.yaml,*.yml,*.json
|
RAG_FILE_GLOBS=*.md,*.txt,*.yaml,*.yml,*.json
|
||||||
|
|
||||||
|
|
||||||
|
# RAG / KBDB
|
||||||
|
# RAG provider: standard (local) ou kbdb (PKG_KB_SERVING.SEARCH_KNOWLEDGE_BASE)
|
||||||
|
RAG_PROVIDER=standard
|
||||||
|
# KBDB usa credenciais próprias; não há fallback para ADB_*.
|
||||||
|
KBDB_DB_USER=
|
||||||
|
KBDB_DB_PASSWORD=
|
||||||
|
KBDB_DB_DSN=
|
||||||
|
KBDB_DB_WALLET_LOCATION=
|
||||||
|
KBDB_DB_WALLET_PASSWORD=
|
||||||
|
KBDB_SEARCH_TYPE=hybrid
|
||||||
|
KBDB_NODE_EXPANSION=true
|
||||||
|
KBDB_NODE_MAX_RELATED=8
|
||||||
|
KBDB_GRAPH_CROSS_REF=false
|
||||||
|
KBDB_MAX_CROSS_REF_HOPS=1
|
||||||
|
KBDB_DOCUMENT_TYPE=customer_safe
|
||||||
|
KBDB_METADATA_JSON=
|
||||||
|
KBDB_MIN_SCORE=
|
||||||
|
KBDB_IDENTIFY_DOCUMENT=true
|
||||||
|
KBDB_STORE_QUERY=true
|
||||||
|
KBDB_IDENTIFY_TOP_N=3
|
||||||
|
RAG_GROUNDED_ONLY=false
|
||||||
|
KBDB_GROUNDED_ONLY=true
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Observabilidade
|
# Observabilidade
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user