問い合わせ v1

examples/inquiry/temporal/inquiry.ja.flow · dandori doc

お客さまの問い合わせの種類を判断のモデルが選び、その確信度も返す。エージェントは問い合わせを読んで注文番号と要点を取り出し、種類も読む。判断のモデルが種類に十分な確信を持てないときは、エージェントが読んだ種類を使う。受け持つ窓口と最初の返事までの時間は規則が決め、返事の下書きは別のエージェントが書き、窓口のシステムに起票する。選ぶことは判断のモデルが、読むことと書くことはエージェントが、決めることは規則が受け持つ(選ぶのと読むのは会社が自分で動かしているモデル、書くのは Claude)。Temporal 向けの版:判断とエージェントは生成したアクティビティで、種類は System One の API(TypeSafe の Jev の API)を話すサーバーに尋ね(`url`。この例では会社の Ollama)、読み取りは Open Responses を話すサーバーに(`url`。同じ Ollama)、下書きはワーカーが持つ鍵で Claude に送る。規則はワークフローと同じワーカーでローカルアクティビティとして動き、その結果はマーカーとして履歴に残る。起票は自分で書くアクティビティ

flow
on failureon 迷い, failuresome 注文IDnoneon failure問い合わせ v166 読み = 読み取る(…)agent · gpt-oss:20b · http://ollama.internal:11434/v1retry 2 times every 10 seconds · timeout 1 minute68 手作業 = 起票する(…)自分で書くタスクretry 2 times every 5 secondstimeout, failure → ワークフローが失敗する!69 succeed チケットID = 手作業.チケットID, 窓口 = 総合71 種類 = 種類を選ぶ(…)jev · nimble:9b-q4_K_M · http://ollama.internal:11434/v1 · confidence 0.8 else 迷いretry 2 times every 1 second · timeout 10 seconds72 let 種類 = 読み.種類73 判定 = 振り分け(…)rule 問い合わせの振り分け.rule · localtimeout, failure → ワークフローが失敗する!74 let 件名 = "{種類}の問い合わせ"75 match 読み.注文ID76 let 件名 = "{種類}の問い合わせ(注文 {注文ID})"78 下書き = 下書きする(…)agent claude · claude-sonnet-5timeout 1 minute79 let 下書き = none80 票 = 起票する(…)自分で書くタスクretry 2 times every 5 secondstimeout, failure → ワークフローが失敗する!81 succeed チケットID = 票.チケットID, 窓口 = 判定.窓口

呼び出し

行呼び出し呼ぶものリトライタイムアウト失敗したとき
66読み = 読み取る(…)agent · gpt-oss:20b · http://ollama.internal:11434/v110 秒おきに 2 回(failure・timeout)1 分timeout・failure → 67 行目
68手作業 = 起票する(…)自分で書くタスク・key5 秒おきに 2 回(failure・timeout)—timeout・failure → ワークフローが失敗する
71種類 = 種類を選ぶ(…)jev · nimble:9b-q4_K_M · http://ollama.internal:11434/v1 · confidence 0.8 else 迷い1 秒おきに 2 回(failure・timeout)10 秒迷い・timeout・failure → 72 行目
73判定 = 振り分け(…)規則 問い合わせの振り分け.rule(Temporal ではローカルアクティビティ)1 秒後と 2 秒後の 2 回(failure・timeout)10 秒timeout・failure → ワークフローが失敗する
78下書き = 下書きする(…)agent claude · claude-sonnet-5—1 分timeout・failure → 79 行目
80票 = 起票する(…)自分で書くタスク・key5 秒おきに 2 回(failure・timeout)—timeout・failure → ワークフローが失敗する

終わり方

行終わり方
69succeed チケットID = 手作業.チケットID, 窓口 = 総合
81succeed チケットID = 票.チケットID, 窓口 = 判定.窓口