-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Expand file tree
/
Copy pathagent.py
More file actions
64 lines (59 loc) · 2.28 KB
/
Copy pathagent.py
File metadata and controls
64 lines (59 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
"""Managed Deep Agent entrypoint for Chat LangChain."""
from managed_deepagents import define_deep_agent
from src.agent.config import (
DEFAULT_MODEL,
GUARDRAILS_MODEL,
model_fallback_middleware,
model_retry_middleware,
summarization_model,
tool_retry_middleware,
)
from src.middleware.guardrails_middleware import GuardrailsMiddleware
from src.middleware.ingress_guards_middleware import IngressGuardsMiddleware
from src.middleware.summarization_middleware import CustomSummarizationMiddleware
from src.prompts.context_summary_prompt import context_summary_prompt
from src.tools.link_check_tools import check_links
from src.tools.pricing_tools import fetch_langchain_pricing
from src.tools.pylon_tools import get_support_article_content, search_support_articles
from src.utils.trace_root_metadata import build_docs_agent_trace_metadata
# The MCP docs tools are declared in connectors/mcp.py so the managed runtime
# owns client lifecycle and appends those tools during compilation.
docs_agent_tools = [
search_support_articles,
get_support_article_content,
fetch_langchain_pricing,
check_links,
]
docs_agent_middleware = [
# Cap oversized user input (was auth.py). Trace metadata is applied via
# define_deep_agent(metadata=...) so it lands on the LangSmith root run.
IngressGuardsMiddleware(),
GuardrailsMiddleware(
model=GUARDRAILS_MODEL.id,
fallback_model=DEFAULT_MODEL.id,
block_off_topic=True,
),
CustomSummarizationMiddleware(
model=DEFAULT_MODEL.id,
summary_model=summarization_model,
trigger=("tokens", 130_000),
keep=("tokens", 30_000),
summary_prompt=context_summary_prompt,
trim_tokens_to_summarize=None,
),
tool_retry_middleware,
model_retry_middleware,
model_fallback_middleware,
]
agent = define_deep_agent(
name="docs_agent",
# Keep this literal so `mda deploy` can infer the provider package and
# preflight GOOGLE_API_KEY.
model="google_genai:gemini-3.5-flash-lite",
tools=docs_agent_tools,
middleware=docs_agent_middleware,
# The current public app does not have cross-thread user memory. Keep MDA
# managed memory off until identity scoping is ready.
disable_memory=True,
metadata=build_docs_agent_trace_metadata(),
)