Skip to content

Commit 5383f37

Browse files
committed
refactor KabutoHelpdeskAgent
1 parent 91298cb commit 5383f37

File tree

5 files changed

+38
-77
lines changed

5 files changed

+38
-77
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,4 @@ cython_debug/
164164
requirements.txt
165165
assets/
166166
.langgraph_api
167+
generated/

docs/index.md

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Operations
44

5-
```bash
5+
```shell
66
# Start Docker containers
77
docker compose up -d
88

@@ -20,20 +20,29 @@ uv run python scripts/elasticsearch_operator.py search-documents --index-name do
2020
# Agents
2121

2222
## Draw agent graph
23-
AGENT_NAME=chat_with_tools_agent
24-
uv run python scripts/graph_runner.py png --name $AGENT_NAME --verbose --output data/$AGENT_NAME.png
23+
mkdir -p generated
24+
AGENT_NAMES=(
25+
"chat_with_tools_agent"
26+
"issue_formatter_agent"
27+
"kabuto_helpdesk_agent"
28+
"task_decomposer_agent"
29+
)
30+
for AGENT_NAME in "${AGENT_NAMES[@]}"; do
31+
uv run python scripts/graph_runner.py png --name "$AGENT_NAME" --verbose --output "generated/${AGENT_NAME}.png"
32+
done
2533

2634
## Run agents
27-
AGENT_NAME=chat_with_tools_agent
28-
AGENT_NAME=kabuto_helpdesk_agent
29-
uv run python scripts/graph_runner.py run --name $AGENT_NAME --verbose --question "KABUTOのマニュアルから禅モードに関する情報を教えて下さい"
30-
# KABUTOの起動時に、画面全体が紫色に点滅し、システムがフリーズします。KABUTO のマニュアルから、関連する情報を取得したり過去のシステムのトラブルシュート事例が蓄積されたデータベースから、関連する情報を取得して質問に答えてください
31-
# 天狗のいたずら という現象について KABUTO のマニュアルから、関連する情報を取得したり過去のシステムのトラブルシュート事例が蓄積されたデータベースから、関連する情報を取得して質問に答えてください
32-
# KABUTOの起動時に、画面全体が紫色に点滅し、システムがフリーズします。
33-
# KABUTOのマニュアルから禅モードに関する情報を教えて下さい
34-
35-
AGENT_NAME=issue_formatter_agent
36-
uv run python scripts/graph_runner.py run --name $AGENT_NAME --verbose --question "KABUTOにログインできない!パスワードは合ってるはずなのに…若手社員である山田太郎は、Windows 11 を立ち上げ、日課のように自社の業務システムKABUTOのログイン画面を開きます。しかし、そこには、意味をなさない「虚無」という文字だけがただひっそりと表示されていたのです。これは質問でもあり不具合の報告でもあります。岡本太郎さんに本件調査依頼します。"
35+
# An array of pairs of agent names and questions
36+
NAME_QUESTION_ARRAY=(
37+
"chat_with_tools_agent:KABUTOの起動時に、画面全体が紫色に点滅し、システムがフリーズします。KABUTO のマニュアルから、関連する情報を取得したり過去のシステムのトラブルシュート事例が蓄積されたデータベースから、関連する情報を取得して質問に答えてください"
38+
"issue_formatter_agent:KABUTOにログインできない!パスワードは合ってるはずなのに…若手社員である山田太郎は、Windows 11 を立ち上げ、日課のように自社の業務システムKABUTOのログイン画面を開きます。しかし、そこには、意味をなさない「虚無」という文字だけがただひっそりと表示されていたのです。これは質問でもあり不具合の報告でもあります。岡本太郎さんに本件調査依頼します。"
39+
"kabuto_helpdesk_agent:天狗のいたずら という現象について KABUTO のマニュアルから、関連する情報を取得したり過去のシステムのトラブルシュート事例が蓄積されたデータベースから、関連する情報を取得して質問に答えてください"
40+
)
41+
for NAME_QUESTION in "${NAME_QUESTION_ARRAY[@]}"; do
42+
IFS=':' read -r AGENT_NAME QUESTION <<< "$NAME_QUESTION"
43+
echo "Running agent: $AGENT_NAME with question: $QUESTION"
44+
uv run python scripts/graph_runner.py run --name "$AGENT_NAME" --verbose --question "$QUESTION"
45+
done
3746
```
3847

3948
## References

langgraph.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"graphs": {
66
"supervisor_agent": "template_langgraph.agents.supervisor_agent:graph",
77
"chat_with_tools_agent": "template_langgraph.agents.chat_with_tools_agent.agent:graph",
8-
"kabuto_helpdesk_agent": "template_langgraph.agents.kabuto_helpdesk_agent:graph",
8+
"kabuto_helpdesk_agent": "template_langgraph.agents.kabuto_helpdesk_agent.agent:graph",
99
"issue_formatter_agent": "template_langgraph.agents.issue_formatter_agent.agent:graph",
1010
"task_decomposer_agent": "template_langgraph.agents.task_decomposer_agent.agent:graph"
1111
},

scripts/graph_runner.py

Lines changed: 14 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from template_langgraph.agents.chat_with_tools_agent.agent import graph as chat_with_tools_agent_graph
77
from template_langgraph.agents.issue_formatter_agent.agent import graph as issue_formatter_agent_graph
8-
from template_langgraph.agents.kabuto_helpdesk_agent import graph as kabuto_helpdesk_agent_graph
8+
from template_langgraph.agents.kabuto_helpdesk_agent.agent import graph as kabuto_helpdesk_agent_graph
99
from template_langgraph.agents.task_decomposer_agent.agent import graph as task_decomposer_agent_graph
1010
from template_langgraph.loggers import get_logger
1111

@@ -90,55 +90,19 @@ def run(
9090
if verbose:
9191
logger.setLevel(logging.DEBUG)
9292

93-
if name == "chat_with_tools_agent":
94-
from template_langgraph.agents.chat_with_tools_agent.agent import (
95-
AgentState,
96-
)
97-
98-
for event in chat_with_tools_agent_graph.stream(
99-
input=AgentState(
100-
messages=[
101-
{
102-
"role": "user",
103-
"content": question,
104-
}
105-
],
106-
)
107-
):
108-
logger.info("-" * 20)
109-
logger.info(f"Event: {event}")
110-
111-
if name == "issue_formatter_agent":
112-
from template_langgraph.agents.issue_formatter_agent.agent import (
113-
AgentState,
114-
)
115-
116-
for event in issue_formatter_agent_graph.stream(
117-
input=AgentState(
118-
messages=[
119-
{
120-
"role": "user",
121-
"content": question,
122-
}
123-
],
124-
)
125-
):
126-
logger.info("-" * 20)
127-
logger.info(f"Event: {event}")
128-
129-
if name == "kabuto_helpdesk_agent":
130-
from template_langgraph.agents.kabuto_helpdesk_agent import KabutoHelpdeskAgent
131-
132-
agent = KabutoHelpdeskAgent(
133-
tools=None, # ツールはカスタムせず、デフォルトのツールを使用
134-
)
135-
response = agent.run(
136-
question=question,
137-
)
138-
logger.info(f"Agent result: {response}")
139-
140-
# エージェントの応答を表示
141-
logger.info(f"Answer: {response['messages'][-1].content}")
93+
graph = get_agent_graph(name)
94+
for event in graph.stream(
95+
input={
96+
"messages": [
97+
{
98+
"role": "user",
99+
"content": question,
100+
}
101+
],
102+
}
103+
):
104+
logger.info("-" * 20)
105+
logger.info(f"Event: {event}")
142106

143107

144108
if __name__ == "__main__":

template_langgraph/agents/kabuto_helpdesk_agent.py renamed to template_langgraph/agents/kabuto_helpdesk_agent/agent.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,5 @@ def __init__(self, tools=None):
2424
debug=True,
2525
)
2626

27-
def run(self, question: str) -> dict:
28-
logger.info(f"Running KabutoHelpdeskAgent with question: {question}")
29-
return self.agent.invoke(
30-
{
31-
"messages": [
32-
{
33-
"role": "user",
34-
"content": question,
35-
},
36-
]
37-
}
38-
)
39-
4027

4128
graph = KabutoHelpdeskAgent().agent

0 commit comments

Comments
 (0)