feat: Add evaluation hooks, skill adaptation and team pipeline config
- Add EvaluationHook for post-execution agent evaluation - Add SkillAdaptationHook for dynamic skill adaptation - Add team/ directory with team coordination logic - Add TEAM_PIPELINE.yaml for smoke_fullstack pipeline config - Update RuntimeView, TraderView and RuntimeSettingsPanel UI - Add runtimeApi and websocket services - Add runtime_state.json to smoke_fullstack state Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -48,6 +48,14 @@ CREATE TABLE IF NOT EXISTS signals (
|
||||
signal TEXT,
|
||||
confidence REAL,
|
||||
reasoning_json TEXT,
|
||||
reasons_json TEXT,
|
||||
risks_json TEXT,
|
||||
invalidation TEXT,
|
||||
next_action TEXT,
|
||||
intrinsic_value REAL,
|
||||
fair_value_range_json TEXT,
|
||||
value_gap_pct REAL,
|
||||
valuation_methods_json TEXT,
|
||||
real_return REAL,
|
||||
is_correct TEXT,
|
||||
trade_date TEXT,
|
||||
@@ -270,8 +278,10 @@ class RuntimeDb:
|
||||
"""
|
||||
INSERT OR REPLACE INTO signals
|
||||
(id, ticker, agent_id, agent_name, role, signal, confidence, reasoning_json,
|
||||
reasons_json, risks_json, invalidation, next_action, intrinsic_value,
|
||||
fair_value_range_json, value_gap_pct, valuation_methods_json,
|
||||
real_return, is_correct, trade_date, created_at, meta_json)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
""",
|
||||
(
|
||||
signal_id,
|
||||
@@ -282,6 +292,14 @@ class RuntimeDb:
|
||||
payload.get("signal"),
|
||||
payload.get("confidence"),
|
||||
_json_dumps(payload.get("reasoning")),
|
||||
_json_dumps(payload.get("reasons")),
|
||||
_json_dumps(payload.get("risks")),
|
||||
payload.get("invalidation"),
|
||||
payload.get("next_action"),
|
||||
payload.get("intrinsic_value"),
|
||||
_json_dumps(payload.get("fair_value_range")),
|
||||
payload.get("value_gap_pct"),
|
||||
_json_dumps(payload.get("valuation_methods")),
|
||||
payload.get("real_return"),
|
||||
None if payload.get("is_correct") is None else str(payload.get("is_correct")),
|
||||
payload.get("date"),
|
||||
@@ -313,8 +331,10 @@ class RuntimeDb:
|
||||
"""
|
||||
INSERT INTO signals
|
||||
(id, ticker, agent_id, agent_name, role, signal, confidence, reasoning_json,
|
||||
reasons_json, risks_json, invalidation, next_action, intrinsic_value,
|
||||
fair_value_range_json, value_gap_pct, valuation_methods_json,
|
||||
real_return, is_correct, trade_date, created_at, meta_json)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
""",
|
||||
(
|
||||
signal_id,
|
||||
@@ -325,6 +345,14 @@ class RuntimeDb:
|
||||
payload.get("signal"),
|
||||
payload.get("confidence"),
|
||||
_json_dumps(payload.get("reasoning")),
|
||||
_json_dumps(payload.get("reasons")),
|
||||
_json_dumps(payload.get("risks")),
|
||||
payload.get("invalidation"),
|
||||
payload.get("next_action"),
|
||||
payload.get("intrinsic_value"),
|
||||
_json_dumps(payload.get("fair_value_range")),
|
||||
payload.get("value_gap_pct"),
|
||||
_json_dumps(payload.get("valuation_methods")),
|
||||
payload.get("real_return"),
|
||||
None if payload.get("is_correct") is None else str(payload.get("is_correct")),
|
||||
payload.get("date"),
|
||||
@@ -461,6 +489,18 @@ class RuntimeDb:
|
||||
else "该信号暂未完成后验评估"
|
||||
),
|
||||
"tone": "positive" if str(row["signal"] or "").lower() in {"bullish", "buy", "long"} else "negative" if str(row["signal"] or "").lower() in {"bearish", "sell", "short"} else "neutral",
|
||||
# Extended signal fields
|
||||
"signal": row["signal"],
|
||||
"confidence": row["confidence"],
|
||||
"reasoning": json.loads(row["reasoning_json"]) if row["reasoning_json"] else None,
|
||||
"reasons": json.loads(row["reasons_json"]) if row["reasons_json"] else None,
|
||||
"risks": json.loads(row["risks_json"]) if row["risks_json"] else None,
|
||||
"invalidation": row["invalidation"],
|
||||
"next_action": row["next_action"],
|
||||
"intrinsic_value": row["intrinsic_value"],
|
||||
"fair_value_range": json.loads(row["fair_value_range_json"]) if row["fair_value_range_json"] else None,
|
||||
"value_gap_pct": row["value_gap_pct"],
|
||||
"valuation_methods": json.loads(row["valuation_methods_json"]) if row["valuation_methods_json"] else None,
|
||||
}
|
||||
for row in signal_rows
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user