diff --git a/.gitattributes b/.gitattributes index a6344aac8c09253b3b630fb776ae94478aa0275b..46e08b1daa57d675c81c52171ba40a3923328337 100644 --- a/.gitattributes +++ b/.gitattributes @@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text *tfevents* filter=lfs diff=lfs merge=lfs -text +podcast/meta2_15_knoten_podcast.mp3 filter=lfs diff=lfs merge=lfs -text +podcast/meta2_agentische_sanduhr_podcast.mp3 filter=lfs diff=lfs merge=lfs -text diff --git a/podcast/audio_segments_15/034_Samuel_Stimme.mp3 b/podcast/audio_segments_15/034_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..65279ac028b241bf9b9e14499c7c8044825906de Binary files /dev/null and b/podcast/audio_segments_15/034_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/035_Samuel_Stimme.mp3 b/podcast/audio_segments_15/035_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ba7d4297a7e1e897dd4c776e629a56744cc308d2 Binary files /dev/null and b/podcast/audio_segments_15/035_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/036_Analystin.mp3 b/podcast/audio_segments_15/036_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e940a08883bbbe327f1ccc7b9951e2a770cdd802 Binary files /dev/null and b/podcast/audio_segments_15/036_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/037_Analystin.mp3 b/podcast/audio_segments_15/037_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..0f9c7b427cdf5a22fa737a5c0ec358e8434d3a6a Binary files /dev/null and b/podcast/audio_segments_15/037_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/038_Kritiker.mp3 b/podcast/audio_segments_15/038_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..21b7237232cde6d5170b3d9ef5376d31bd62ef70 Binary files /dev/null and b/podcast/audio_segments_15/038_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/039_Kritiker.mp3 b/podcast/audio_segments_15/039_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..8e971812acb51934bbe03437684db419fae829ac Binary files /dev/null and b/podcast/audio_segments_15/039_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/040_Kritiker.mp3 b/podcast/audio_segments_15/040_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..9149e213e851cd3988d7bb9f68e06e6bd08cb874 Binary files /dev/null and b/podcast/audio_segments_15/040_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/041_Moderator.mp3 b/podcast/audio_segments_15/041_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..9f73ee1134de5bf3765addc4678263d2b7c26af1 Binary files /dev/null and b/podcast/audio_segments_15/041_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/042_Moderator.mp3 b/podcast/audio_segments_15/042_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..99ab49ec33c900753f91fa5be9584b3263fc313c Binary files /dev/null and b/podcast/audio_segments_15/042_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/043_Analystin.mp3 b/podcast/audio_segments_15/043_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..68224aff915d1214fcda0818a555d6b32ce5d1bf Binary files /dev/null and b/podcast/audio_segments_15/043_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/044_Analystin.mp3 b/podcast/audio_segments_15/044_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a9e626203a66ece477c2ef2a596558bcb99d3395 Binary files /dev/null and b/podcast/audio_segments_15/044_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/045_Analystin.mp3 b/podcast/audio_segments_15/045_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..07749a0114a21723380069a368095d4321583710 Binary files /dev/null and b/podcast/audio_segments_15/045_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/046_Kritiker.mp3 b/podcast/audio_segments_15/046_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..12032ea5ce6b7063b88f6d93495426642531c862 Binary files /dev/null and b/podcast/audio_segments_15/046_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/047_Kritiker.mp3 b/podcast/audio_segments_15/047_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b9d4f39b2641288b2392916a30be4d31bf9914cd Binary files /dev/null and b/podcast/audio_segments_15/047_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/048_Kritiker.mp3 b/podcast/audio_segments_15/048_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..5b1cccb2b04b08661a3d4081d994288f3bf5d5cb Binary files /dev/null and b/podcast/audio_segments_15/048_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/049_Samuel_Stimme.mp3 b/podcast/audio_segments_15/049_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..6c90343321a9f46d0186bd8b67a38a98de8b6ef1 Binary files /dev/null and b/podcast/audio_segments_15/049_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/050_Moderator.mp3 b/podcast/audio_segments_15/050_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e6112af5e56c80e1dfecf909bbe0b2eb0044bdf4 Binary files /dev/null and b/podcast/audio_segments_15/050_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/051_Moderator.mp3 b/podcast/audio_segments_15/051_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..1fbec63ddf8760a1da84cf69c0ae6d5b97ea3ad8 Binary files /dev/null and b/podcast/audio_segments_15/051_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/052_Analystin.mp3 b/podcast/audio_segments_15/052_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..1a7e12c218bb239e27a8dc18dfceffb3824cedae Binary files /dev/null and b/podcast/audio_segments_15/052_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/053_Analystin.mp3 b/podcast/audio_segments_15/053_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b4dbac9981cc9f3d982fc7077bfbc64d6c34657f Binary files /dev/null and b/podcast/audio_segments_15/053_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/054_Analystin.mp3 b/podcast/audio_segments_15/054_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..800950b07cede0cf82835e2052acedabb27a397a Binary files /dev/null and b/podcast/audio_segments_15/054_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/055_Kritiker.mp3 b/podcast/audio_segments_15/055_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d7bbef97c17ee4420fb9dc3e9473ca2e0e4cf6ec Binary files /dev/null and b/podcast/audio_segments_15/055_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/056_Kritiker.mp3 b/podcast/audio_segments_15/056_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..6dd92441afd3bc6315d6fe746f25d1d1428126fa Binary files /dev/null and b/podcast/audio_segments_15/056_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/057_Kritiker.mp3 b/podcast/audio_segments_15/057_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..cdfe85bcdb3613a611dbc5aa68398ff850233a91 Binary files /dev/null and b/podcast/audio_segments_15/057_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/058_Kritiker.mp3 b/podcast/audio_segments_15/058_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e1a0f5e99c573c71f42eb71f868c0aec20689f7b Binary files /dev/null and b/podcast/audio_segments_15/058_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/059_Moderator.mp3 b/podcast/audio_segments_15/059_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c26241ef41878d4953b3495d78d811542ba9c543 Binary files /dev/null and b/podcast/audio_segments_15/059_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/060_Samuel_Stimme.mp3 b/podcast/audio_segments_15/060_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c06216903b77d90b19a348cc5fbe29b1e45cc405 Binary files /dev/null and b/podcast/audio_segments_15/060_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/061_Samuel_Stimme.mp3 b/podcast/audio_segments_15/061_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e47d174140d0beb80c7c18e1a4fd2b9e3ab7ed84 Binary files /dev/null and b/podcast/audio_segments_15/061_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/062_Samuel_Stimme.mp3 b/podcast/audio_segments_15/062_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..1a16fb38ca13bc22de5fc2505eef80231e100658 Binary files /dev/null and b/podcast/audio_segments_15/062_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/063_Samuel_Stimme.mp3 b/podcast/audio_segments_15/063_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..977dc2d43681de12d193c42659d02c81198e4784 Binary files /dev/null and b/podcast/audio_segments_15/063_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/064_Samuel_Stimme.mp3 b/podcast/audio_segments_15/064_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b69b47855d1c84249c8a09e8f4ff5e5206207d31 Binary files /dev/null and b/podcast/audio_segments_15/064_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/065_Analystin.mp3 b/podcast/audio_segments_15/065_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..5f26b54a1cc99fa4219d1269891f03c1bb9633a5 Binary files /dev/null and b/podcast/audio_segments_15/065_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/066_Analystin.mp3 b/podcast/audio_segments_15/066_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..7fdbcb0b946b77f274e7afb8cc78d337b9e5001e Binary files /dev/null and b/podcast/audio_segments_15/066_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/067_Analystin.mp3 b/podcast/audio_segments_15/067_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..89173791e26ab323706676ac40fe80ce24d947a6 Binary files /dev/null and b/podcast/audio_segments_15/067_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/068_Moderator.mp3 b/podcast/audio_segments_15/068_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..4cd35aba9faf5c4bcada165edf46284f56ffed66 Binary files /dev/null and b/podcast/audio_segments_15/068_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/069_Moderator.mp3 b/podcast/audio_segments_15/069_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..4e2c3707320167a2301cb7ef69aa48053d9b4f64 Binary files /dev/null and b/podcast/audio_segments_15/069_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/070_Analystin.mp3 b/podcast/audio_segments_15/070_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..da44ddc4db9b9f494c888ac575ae339ae92c4797 Binary files /dev/null and b/podcast/audio_segments_15/070_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/071_Analystin.mp3 b/podcast/audio_segments_15/071_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..07713d8f36b52cf724f362cd1b8702dd0146f4cf Binary files /dev/null and b/podcast/audio_segments_15/071_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/072_Analystin.mp3 b/podcast/audio_segments_15/072_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..10cbb03b7b07a7e08cda745b041bbc4bfed0e243 Binary files /dev/null and b/podcast/audio_segments_15/072_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/073_Kritiker.mp3 b/podcast/audio_segments_15/073_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..57890f2840eb4e060a5af22fade72e6054604ed3 Binary files /dev/null and b/podcast/audio_segments_15/073_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/074_Kritiker.mp3 b/podcast/audio_segments_15/074_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b889e9a29d506b37ae33ace191e1a79f70cfa1ee Binary files /dev/null and b/podcast/audio_segments_15/074_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/075_Kritiker.mp3 b/podcast/audio_segments_15/075_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..70c970e06b5fd675e8481d2f9b06732fb913de8b Binary files /dev/null and b/podcast/audio_segments_15/075_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/076_Kritiker.mp3 b/podcast/audio_segments_15/076_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d5fc1e7549113faea8d0e63cd028cb7ffc7086c4 Binary files /dev/null and b/podcast/audio_segments_15/076_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/077_Moderator.mp3 b/podcast/audio_segments_15/077_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a3551d0de046365289954c59eb9b977bd65298db Binary files /dev/null and b/podcast/audio_segments_15/077_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/078_Moderator.mp3 b/podcast/audio_segments_15/078_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..93b031ad30123c2aba033a6293784d0ff31e7fd0 Binary files /dev/null and b/podcast/audio_segments_15/078_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/079_Samuel_Stimme.mp3 b/podcast/audio_segments_15/079_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..881e5836aa555df778dd3e37a6f4877b3e403323 Binary files /dev/null and b/podcast/audio_segments_15/079_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/080_Samuel_Stimme.mp3 b/podcast/audio_segments_15/080_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f2c81e126f2d6e1869df7cd08a6a3abb696178d3 Binary files /dev/null and b/podcast/audio_segments_15/080_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/081_Samuel_Stimme.mp3 b/podcast/audio_segments_15/081_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..af5250e14afce0cf3ae5e535035bbc60a8164b5b Binary files /dev/null and b/podcast/audio_segments_15/081_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/082_Kritiker.mp3 b/podcast/audio_segments_15/082_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..2aa4c7537ea7a3d43c6718eee71837d069184a4f Binary files /dev/null and b/podcast/audio_segments_15/082_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/083_Kritiker.mp3 b/podcast/audio_segments_15/083_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d25342a2d34eeef3deeffc8caf29aa42cabf0e8a Binary files /dev/null and b/podcast/audio_segments_15/083_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/084_Kritiker.mp3 b/podcast/audio_segments_15/084_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..71af5ac00cf2abb308b2f33dc04a78958261c0a0 Binary files /dev/null and b/podcast/audio_segments_15/084_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/085_Moderator.mp3 b/podcast/audio_segments_15/085_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..6944d564b3a2a8a7ef58adbc938de6de2ef86897 Binary files /dev/null and b/podcast/audio_segments_15/085_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/086_Moderator.mp3 b/podcast/audio_segments_15/086_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d1d140a3f10ca333bfb0fbca72cdce13ad2b521e Binary files /dev/null and b/podcast/audio_segments_15/086_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/087_Analystin.mp3 b/podcast/audio_segments_15/087_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..52e1cf651dbad721952db51ea53dfc09501c0b60 Binary files /dev/null and b/podcast/audio_segments_15/087_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/088_Analystin.mp3 b/podcast/audio_segments_15/088_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d8977c39c7741529a94d12a3fd18ee93281586c3 Binary files /dev/null and b/podcast/audio_segments_15/088_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/089_Samuel_Stimme.mp3 b/podcast/audio_segments_15/089_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..690f544451a7d7a49eec1769e3e473fb882a6b25 Binary files /dev/null and b/podcast/audio_segments_15/089_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/090_Moderator.mp3 b/podcast/audio_segments_15/090_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..0bd0259a0da20335c2eb5968855e0ad248a43e94 Binary files /dev/null and b/podcast/audio_segments_15/090_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/091_Analystin.mp3 b/podcast/audio_segments_15/091_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..570370c1f3326b14ac055a3ecfa7fac9c2216fb8 Binary files /dev/null and b/podcast/audio_segments_15/091_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/092_Analystin.mp3 b/podcast/audio_segments_15/092_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..69b501b559e254bb89f3b08b922e9318be732cf4 Binary files /dev/null and b/podcast/audio_segments_15/092_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/093_Analystin.mp3 b/podcast/audio_segments_15/093_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f2a9c6de83adb2664bc00fb4bf39fc5d9ffbc450 Binary files /dev/null and b/podcast/audio_segments_15/093_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/094_Analystin.mp3 b/podcast/audio_segments_15/094_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..dc38717e74b834811855de382ee11209c59e1312 Binary files /dev/null and b/podcast/audio_segments_15/094_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/095_Kritiker.mp3 b/podcast/audio_segments_15/095_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..aeefde087874d5fc2e8b8313e8b893dc2f6477b6 Binary files /dev/null and b/podcast/audio_segments_15/095_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/096_Kritiker.mp3 b/podcast/audio_segments_15/096_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a3ffc7226997bb9fba58105351b938ee114ef2d3 Binary files /dev/null and b/podcast/audio_segments_15/096_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/097_Moderator.mp3 b/podcast/audio_segments_15/097_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..7a9e2179b57a59f393bdcaa31acaabd8f231f566 Binary files /dev/null and b/podcast/audio_segments_15/097_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/098_Kritiker.mp3 b/podcast/audio_segments_15/098_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..45d78c14bca9151a5745cf11cbfc4c7776300816 Binary files /dev/null and b/podcast/audio_segments_15/098_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/099_Kritiker.mp3 b/podcast/audio_segments_15/099_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e7614736428ffca9f7b7d3f4903f328e348b9a2f Binary files /dev/null and b/podcast/audio_segments_15/099_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/100_Kritiker.mp3 b/podcast/audio_segments_15/100_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..06e749e70cbc47e0c279a8b15a1a68a1f7ef9653 Binary files /dev/null and b/podcast/audio_segments_15/100_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/101_Samuel_Stimme.mp3 b/podcast/audio_segments_15/101_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..27a55bd6126683b1e0c93d8762dd2f7636715df0 Binary files /dev/null and b/podcast/audio_segments_15/101_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/102_Moderator.mp3 b/podcast/audio_segments_15/102_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..9006a2ffb6d22f821096c508c8118d7e7c7ca57e Binary files /dev/null and b/podcast/audio_segments_15/102_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/103_Analystin.mp3 b/podcast/audio_segments_15/103_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ef5ed041a0b2a38bacdad582cd240e38da3c3644 Binary files /dev/null and b/podcast/audio_segments_15/103_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/104_Analystin.mp3 b/podcast/audio_segments_15/104_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..2e8df2aad7837d967090f38144b09568334b40a5 Binary files /dev/null and b/podcast/audio_segments_15/104_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/105_Analystin.mp3 b/podcast/audio_segments_15/105_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..37e08b44ed86ca5f498d16e5adaf559ff3b29fca Binary files /dev/null and b/podcast/audio_segments_15/105_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/106_Analystin.mp3 b/podcast/audio_segments_15/106_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..0454c184ef4e52ab1a78922fe87f6e29dab55521 Binary files /dev/null and b/podcast/audio_segments_15/106_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/107_Moderator.mp3 b/podcast/audio_segments_15/107_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..033e3437206e53566cf831a441d66d7e18475af4 Binary files /dev/null and b/podcast/audio_segments_15/107_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/108_Samuel_Stimme.mp3 b/podcast/audio_segments_15/108_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..4408a638826f0dd74f9ca70ba8f6de2c1aaefa4f Binary files /dev/null and b/podcast/audio_segments_15/108_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/109_Samuel_Stimme.mp3 b/podcast/audio_segments_15/109_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..79da89059ecc682b6adc65a90ad2145d1d5421fc Binary files /dev/null and b/podcast/audio_segments_15/109_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/110_Samuel_Stimme.mp3 b/podcast/audio_segments_15/110_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..2ea6167f83ebabab9dabe18c044415caa55b4408 Binary files /dev/null and b/podcast/audio_segments_15/110_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/111_Samuel_Stimme.mp3 b/podcast/audio_segments_15/111_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b55346e9e6cd3587416a9fe596c3f1d0c883306c Binary files /dev/null and b/podcast/audio_segments_15/111_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/112_Samuel_Stimme.mp3 b/podcast/audio_segments_15/112_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..48c31dd16f695186c462cc262c0e5b57d07e2120 Binary files /dev/null and b/podcast/audio_segments_15/112_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/113_Kritiker.mp3 b/podcast/audio_segments_15/113_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ff0fc38ca4924ed0268638ae6c8e345d923990ab Binary files /dev/null and b/podcast/audio_segments_15/113_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/114_Kritiker.mp3 b/podcast/audio_segments_15/114_Kritiker.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..7ea0e1af642dc360737441c7ba775efd176c8f96 Binary files /dev/null and b/podcast/audio_segments_15/114_Kritiker.mp3 differ diff --git a/podcast/audio_segments_15/115_Moderator.mp3 b/podcast/audio_segments_15/115_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f269aaba927f3aa3ad4371ff10ed7e88ae63c9ef Binary files /dev/null and b/podcast/audio_segments_15/115_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/116_Analystin.mp3 b/podcast/audio_segments_15/116_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a1f7636fae686071b62ad8198034fa422f2d8a10 Binary files /dev/null and b/podcast/audio_segments_15/116_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/117_Analystin.mp3 b/podcast/audio_segments_15/117_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..5d0fbd2dd220281a358b46d77320de3448c81d5a Binary files /dev/null and b/podcast/audio_segments_15/117_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/118_Analystin.mp3 b/podcast/audio_segments_15/118_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..16aea04b000ceb89dcbcdb68f0c2e1ff6acb3c78 Binary files /dev/null and b/podcast/audio_segments_15/118_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/119_Samuel_Stimme.mp3 b/podcast/audio_segments_15/119_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b0638250ec5a79582245aeb7c05e25fde15c4672 Binary files /dev/null and b/podcast/audio_segments_15/119_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/120_Samuel_Stimme.mp3 b/podcast/audio_segments_15/120_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a1a4628d89e7c38e8ae7fd03676b9b902dc50716 Binary files /dev/null and b/podcast/audio_segments_15/120_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/121_Samuel_Stimme.mp3 b/podcast/audio_segments_15/121_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a5050cafb30436f783362823a57a5db257530954 Binary files /dev/null and b/podcast/audio_segments_15/121_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/122_Samuel_Stimme.mp3 b/podcast/audio_segments_15/122_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..4f027bb9ad4bb64a793ed4a59a08e34d08f921bd Binary files /dev/null and b/podcast/audio_segments_15/122_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/123_Samuel_Stimme.mp3 b/podcast/audio_segments_15/123_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..654375db9b706b0400d042031fcd113b77df8233 Binary files /dev/null and b/podcast/audio_segments_15/123_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/124_Samuel_Stimme.mp3 b/podcast/audio_segments_15/124_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c9dd1ebd9a54c7651e2054011ccd48be667c7f1b Binary files /dev/null and b/podcast/audio_segments_15/124_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/125_Samuel_Stimme.mp3 b/podcast/audio_segments_15/125_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..55bac5a8808cf344acaee7118405b0609a3c819d Binary files /dev/null and b/podcast/audio_segments_15/125_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/126_Moderator.mp3 b/podcast/audio_segments_15/126_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..88d71e6342769e5113b8b6fa7ab61f55fc64cd7d Binary files /dev/null and b/podcast/audio_segments_15/126_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/127_Samuel_Stimme.mp3 b/podcast/audio_segments_15/127_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e30d396ffaff7ae6974bdc68ccbb3f87f83807f7 Binary files /dev/null and b/podcast/audio_segments_15/127_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/128_Samuel_Stimme.mp3 b/podcast/audio_segments_15/128_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..9b6f44ea62831a696452459c488909c591a8ebcc Binary files /dev/null and b/podcast/audio_segments_15/128_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/129_Samuel_Stimme.mp3 b/podcast/audio_segments_15/129_Samuel_Stimme.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a12da864fc0fd76abb846201312f87a68c0aaf37 Binary files /dev/null and b/podcast/audio_segments_15/129_Samuel_Stimme.mp3 differ diff --git a/podcast/audio_segments_15/130_Analystin.mp3 b/podcast/audio_segments_15/130_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..03703b8713ea6d03396726df76243fcded534c63 Binary files /dev/null and b/podcast/audio_segments_15/130_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/131_Analystin.mp3 b/podcast/audio_segments_15/131_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b2274db1b0127b1aaa7426422856c7dfeabf591c Binary files /dev/null and b/podcast/audio_segments_15/131_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/132_Analystin.mp3 b/podcast/audio_segments_15/132_Analystin.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..7dc40ae3d2e057e29530ce840d266dbf26abaaf2 Binary files /dev/null and b/podcast/audio_segments_15/132_Analystin.mp3 differ diff --git a/podcast/audio_segments_15/133_Moderator.mp3 b/podcast/audio_segments_15/133_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f72b5139d21ffb0ac756ab8f84158aa0f3d8863e Binary files /dev/null and b/podcast/audio_segments_15/133_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/134_Moderator.mp3 b/podcast/audio_segments_15/134_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e314acbf6667de740551a79dc195f390ebe98110 Binary files /dev/null and b/podcast/audio_segments_15/134_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/135_Moderator.mp3 b/podcast/audio_segments_15/135_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..45e1c4d3599bd52ee2625a9d4e787c44db3c7360 Binary files /dev/null and b/podcast/audio_segments_15/135_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/136_Moderator.mp3 b/podcast/audio_segments_15/136_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..074256ace7c086904b7f1171e65e6ed3edb95720 Binary files /dev/null and b/podcast/audio_segments_15/136_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/137_Moderator.mp3 b/podcast/audio_segments_15/137_Moderator.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..8e0ed70e4ae4b48adb3ab2f51b8ed3e2db95ba6a Binary files /dev/null and b/podcast/audio_segments_15/137_Moderator.mp3 differ diff --git a/podcast/audio_segments_15/concat.txt b/podcast/audio_segments_15/concat.txt new file mode 100644 index 0000000000000000000000000000000000000000..d61d0b5ff6d08fb5e9598bf8d8aa603db9441691 --- /dev/null +++ b/podcast/audio_segments_15/concat.txt @@ -0,0 +1,137 @@ +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/001_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/002_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/003_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/004_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/005_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/006_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/007_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/008_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/009_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/010_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/011_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/012_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/013_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/014_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/015_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/016_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/017_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/018_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/019_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/020_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/021_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/022_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/023_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/024_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/025_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/026_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/027_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/028_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/029_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/030_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/031_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/032_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/033_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/034_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/035_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/036_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/037_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/038_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/039_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/040_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/041_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/042_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/043_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/044_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/045_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/046_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/047_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/048_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/049_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/050_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/051_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/052_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/053_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/054_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/055_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/056_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/057_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/058_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/059_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/060_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/061_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/062_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/063_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/064_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/065_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/066_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/067_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/068_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/069_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/070_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/071_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/072_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/073_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/074_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/075_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/076_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/077_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/078_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/079_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/080_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/081_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/082_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/083_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/084_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/085_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/086_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/087_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/088_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/089_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/090_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/091_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/092_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/093_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/094_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/095_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/096_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/097_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/098_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/099_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/100_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/101_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/102_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/103_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/104_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/105_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/106_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/107_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/108_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/109_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/110_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/111_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/112_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/113_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/114_Kritiker.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/115_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/116_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/117_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/118_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/119_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/120_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/121_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/122_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/123_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/124_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/125_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/126_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/127_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/128_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/129_Samuel_Stimme.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/130_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/131_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/132_Analystin.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/133_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/134_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/135_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/136_Moderator.mp3' +file '/home/smlflg/Projekte/META2.0/podcast/audio_segments_15/137_Moderator.mp3' diff --git a/podcast/build_podcast_audio.py b/podcast/build_podcast_audio.py new file mode 100644 index 0000000000000000000000000000000000000000..e8cbe627e51d9f92bb9ca8c6a71dc5902b9c20cd --- /dev/null +++ b/podcast/build_podcast_audio.py @@ -0,0 +1,166 @@ +#!/usr/bin/env python3 +"""Build the META2 podcast audio from podcast/meta2_podcast_script.md.""" + +from __future__ import annotations + +import re +import shutil +import subprocess +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +SCRIPT = ROOT / "podcast" / "meta2_15_knoten_podcast_script.md" +SEGMENT_DIR = ROOT / "podcast" / "audio_segments_15" +OUT = ROOT / "podcast" / "meta2_15_knoten_podcast.mp3" +CONCAT_FILE = SEGMENT_DIR / "concat.txt" +RATE = "+38%" +MAX_CHARS = 140 + +VOICES = { + "Moderator": "de-DE-FlorianMultilingualNeural", + "Analystin": "de-DE-KatjaNeural", + "Kritiker": "de-DE-ConradNeural", + "Samuel-Stimme": "de-DE-KillianNeural", + "Produktleiter": "de-DE-SeraphinaMultilingualNeural", +} + +DIALOGUE_RE = re.compile(r"^\*\*(?P[^*]+):\*\*\s*(?P.+?)\s*$") + + +def split_text(text: str, max_chars: int = MAX_CHARS) -> list[str]: + text = re.sub(r"\s+", " ", text.strip()) + if not text: + return [] + + pieces = re.split(r"(?<=[.!?])\s+", text) + chunks: list[str] = [] + for piece in pieces: + piece = piece.strip() + if not piece: + continue + while len(piece) > max_chars: + cut = -1 + for sep in ["; ", ": ", ", ", " — ", " – ", " und ", " oder ", " "]: + pos = piece.rfind(sep, 0, max_chars) + if pos > 55: + cut = pos + (0 if sep == " " else len(sep.rstrip())) + break + if cut <= 0: + cut = max_chars + part = piece[:cut].strip(" ,;:–—-") + if part and part[-1] not in ".!?": + part += "." + chunks.append(part) + piece = piece[cut:].strip(" ,;:–—-") + if piece: + chunks.append(piece) + return chunks + + +def parse_segments() -> list[tuple[str, str, str]]: + if not SCRIPT.exists(): + raise FileNotFoundError(SCRIPT) + segments: list[tuple[str, str, str]] = [] + for line in SCRIPT.read_text(encoding="utf-8").splitlines(): + match = DIALOGUE_RE.match(line.strip()) + if not match: + continue + role = match.group("role") + text = match.group("text") + voice = VOICES.get(role) + if voice is None: + raise ValueError(f"No voice configured for role: {role}") + for chunk in split_text(text): + segments.append((role, voice, chunk)) + if not segments: + raise ValueError(f"No dialogue segments found in {SCRIPT}") + return segments + + +def run(cmd: list[str]) -> None: + print("+", " ".join(cmd[:4]), "...") + subprocess.run(cmd, check=True) + + +def main() -> int: + edge_tts = shutil.which("edge-tts") + ffmpeg = shutil.which("ffmpeg") + ffprobe = shutil.which("ffprobe") + if edge_tts is None: + print("ERROR: edge-tts not found", file=sys.stderr) + return 2 + if ffmpeg is None: + print("ERROR: ffmpeg not found", file=sys.stderr) + return 2 + if ffprobe is None: + print("ERROR: ffprobe not found", file=sys.stderr) + return 2 + + segments = parse_segments() + SEGMENT_DIR.mkdir(parents=True, exist_ok=True) + for stale in SEGMENT_DIR.glob("*.mp3"): + stale.unlink() + + segment_paths: list[Path] = [] + for idx, (role, voice, text) in enumerate(segments, start=1): + path = SEGMENT_DIR / f"{idx:03d}_{role.replace('-', '_')}.mp3" + segment_paths.append(path) + print(f"tts {idx:03d}/{len(segments)} role={role} voice={voice} chars={len(text)} rate={RATE}") + run([ + edge_tts, + "--voice", + voice, + "--rate", + RATE, + "--text", + text, + "--write-media", + str(path), + ]) + if not path.exists() or path.stat().st_size <= 1000: + raise RuntimeError(f"TTS output missing or too small: {path}") + + CONCAT_FILE.write_text( + "".join(f"file '{path.as_posix()}'\n" for path in segment_paths), + encoding="utf-8", + ) + if OUT.exists(): + OUT.unlink() + run([ + ffmpeg, + "-y", + "-hide_banner", + "-loglevel", + "error", + "-f", + "concat", + "-safe", + "0", + "-i", + str(CONCAT_FILE), + "-c", + "copy", + str(OUT), + ]) + + probe = subprocess.check_output([ + ffprobe, + "-v", + "error", + "-show_entries", + "format=duration,size", + "-of", + "default=noprint_wrappers=1:nokey=0", + str(OUT), + ], text=True) + print("\nVERIFIED") + print(f"script={SCRIPT}") + print(f"audio={OUT}") + print(f"segments={len(segments)}") + print(probe.strip()) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/podcast/meta2_15_knoten_podcast.mp3 b/podcast/meta2_15_knoten_podcast.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..8278d962a177fe075b1a18f314c9261fa31e07e9 --- /dev/null +++ b/podcast/meta2_15_knoten_podcast.mp3 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e6fa314e9f16939d2658a7a79b658af3a31e24fe0a7e047bdcc986ee8fbea31 +size 2692029 diff --git a/podcast/meta2_15_knoten_podcast_script.md b/podcast/meta2_15_knoten_podcast_script.md new file mode 100644 index 0000000000000000000000000000000000000000..781c24055faf6e08f4442e6a65b9ba465e3df832 --- /dev/null +++ b/podcast/meta2_15_knoten_podcast_script.md @@ -0,0 +1,141 @@ +# META2 Podcast — Die 15 Knoten + +## Intro + +**Moderator:** Willkommen zu einer besonderen Analyse. Wir tauchen heute ein in den Maschinenraum eines Geistes, der an der vordersten Front der KI-Entwicklung arbeitet. Es ist eine Reise durch 15 fundamentale Fragen, die sich ein Architekt namens Samuel selbst gestellt hat. 15 Knotenpunkte seines Denkens. + +**Moderator:** Wir haben seine Antworten, seine Selbstreflexionen, analysiert. An meiner Seite sind eine Analystin und ein Kritiker. + +**Analystin:** Wir sehen hier den Versuch, persönliche kognitive Muster in eine universelle, agentische Architektur zu gießen. Es ist faszinierend. + +**Kritiker:** Und brandgefährlich. Wir werden sehen, ob das Genialität oder nur hochkomplexer Selbstbetrug ist. + +## Kapitel 1: Kontrolle + +**Moderator:** Die erste Frage ist ein Klassiker im Zeitalter der KI: die Frage nach der Kontrolle. Wie bleibe ich Owner, wenn Agenten autonomer werden? + +**Analystin:** Samuels Antwort ist klar: Er überlässt den Agenten nicht die Architektur. Er definiert die Struktur, in der sie agieren. Er spricht von Meta-Steuerung, nicht von Mikromanagement. + +**Samuel-Stimme:** Ich bleibe Owner, indem ich die Architektur nicht den Agenten überlasse – sondern sie mir als Werkzeug unterordne. Mein Router-Agent ist kein Boss – er ist mein Sprachrohr. + +**Kritiker:** Das ist ein Euphemismus. Er kontrolliert die Pipeline statt des Outputs. Die Angst vor dem Kontrollverlust wird hier nur verlagert, nicht gelöst. + +## Kapitel 2: Struktur + +**Moderator:** Das führt uns direkt zur zweiten Frage: Wie übersetzt man Chaos in handhabbare Schritte? + +**Analystin:** Seine Methode ist nicht Planung, sondern Architektur. Er identifiziert den lautesten Schmerzpunkt – bei ihm das Informations-Routing – und setzt genau dort eine automatisierte Struktur ein. + +**Samuel-Stimme:** Ich habe einen Harness Intel Router Agent gebaut, der asynchrone Gedanken einfängt, sie labelt, priorisiert und an den richtigen Agenten weiterleitet. Kein Klick, kein Drag and Drop – nur Sprache. + +**Kritiker:** Eine brillante Idee, solange sie funktioniert. Aber was, wenn die Pipeline bricht? Dann ist das keine Struktur, sondern nur ein digitaler Friedhof für gute Absichten. + +## Kapitel 3: Identität + +**Moderator:** Und wer ist die Person hinter diesen Architekturen? Frage drei: Wer ist Samuel in dieser agentischen Welt? + +**Samuel-Stimme:** Ich bin ein Architekt, der seine eigene Unordnung in Systeme übersetzt. Ich arbeite nicht trotz ADHS, sondern mit ihm. Wenn das System funktioniert, arbeite ich gut. Wenn nicht, bin ich der müde CS-Student, der sich fragt, warum er nicht einfach mehr schafft. + +**Analystin:** Er sieht sich als Produzent von Agenten, nicht nur als Nutzer. Er denkt in versionierten, skalierbaren Produkten. + +**Kritiker:** Eine Identität, die auf der Funktion seiner eigenen, fragilen Systeme beruht. Das ist ein extrem instabiles Selbstbild. Wenn seine Technik versagt, versagt dann auch er als Mensch? + +## Kapitel 4: Der Digitale Thalamus + +**Moderator:** Er spricht von einem Digitalen Thalamus, einer Art Filter. Was genau ist damit gemeint? + +**Analystin:** Es ist seine agentische Sanduhr. Eine Engstelle, die den chaotischen Gedankenstrom filtert und strukturiert, bevor er auf die agentische Pyramide trifft. Es geht um die Kontrolle des Flusses. + +**Kritiker:** Und ich sage: Wenn die Pyramide dahinter blockiert – weil der Rückkanal fehlt oder Done nicht definiert ist – wird dieser Thalamus vom Fluss zum Stau. Dann ist es kein System, sondern ein Müllhaufen mit einem schicken Interface. + +**Samuel-Stimme:** Die Blockade der agentischen Pyramide entsteht nicht durch Mangel an Agenten – sondern durch Mangel an Disziplin. + +## Kapitel 5: Qualität + +**Moderator:** Wie misst man Erfolg in diesem Spiel? Was sind gute Metriken, um zu sagen: Jemand ist gut mit Agenten? + +**Analystin:** Samuels Qualität liegt nicht in der Nutzung, sondern in der Industrialisierung von Agenten. Er baut keine Tools, er baut Fabriken. Er denkt in Produktionslinien für KI-Systeme, mit Versionen, Skills und Registry-Steckbriefen. + +**Kritiker:** Aber er selbst sagt, er ist noch nicht da. Er kämpft mit den Brüchen, den fehlenden Rückkanälen. Gut sein ist für ihn ein schmerzhafter Prozess, kein Zustand. Er ist gut im Entwerfen, aber noch nicht im Betreiben. + +## Kapitel 6: Energie + +**Moderator:** Abseits von Produktivität, wann war dieser Mensch wirklich lebendig? + +**Samuel-Stimme:** Ich war lebendig, als mein Geist im Flow der Freiheit war. Als ich ungefiltert in den Plaud-Pin sprach, einfach weil die Gedanken rausmussten. Nicht weil es funktionierte, sondern weil es fühlte. Wie ein Rausch. Wie Ketamin in Berliner Clubs, nur mit Code statt mit Bass. + +**Analystin:** Das ist der Kern seines Antriebs. Nicht das Ergebnis, sondern der Moment, in dem die Technik zu einer Erweiterung seines Bewusstseins wird, fast zu einer sinnlichen Erfahrung. + +## Kapitel 7: Überforderung + +**Moderator:** Doch auf den Rausch folgt oft der Absturz. Wann scheitert er? + +**Analystin:** Er scheitert nicht an der Fähigkeit, sondern an der Gleichzeitigkeit. Er versucht, ein ganzes Ökosystem auf einmal zu bauen: Agentenfabrik, Registry, Governance, UI, alles parallel. Das nennt er parallele Systembrüche. + +**Kritiker:** Genau. Er wird von seiner eigenen Ambition überholt. Statt das zu bauen, was jetzt nötig ist, baut er alles, was irgendwann möglich sein könnte. Und daran zerbricht das System und er gleich mit. + +## Kapitel 8: Ownership + +**Moderator:** Das Gefühl von Ownership, von Eigentümerschaft, scheint zentral zu sein. Wann hat er es? + +**Samuel-Stimme:** Ich fühle mich stark, wenn ich etwas wirklich seins mache. Wenn ich die Zapier-Integration selbst hinbekomme. Es ist nicht das Ergebnis, das zählt, sondern der Akt des Schaffens, der mich in meiner Autonomie bestätigt. + +**Kritiker:** Ein fragiles Gefühl. Es zerbricht sofort, wenn er vor strategischen Blockaden steht, die er nicht selbst technisch lösen kann. Dann wird der Architekt wieder zum abhängigen Mitarbeiter. + +## Kapitel 9: Flucht + +**Moderator:** Es gibt ein Muster des Neustarts, der Fresh-Install-Mentalität. Ist das eine Flucht? + +**Analystin:** Es ist eine Flucht vor einem System, das ihn nicht mehr vorwärtsbringt, sondern ihn verbraucht. Die agentische Sanduhr war kein neues Spielzeug, sondern ein Notausgang aus der kognitiven Überlastung. + +**Samuel-Stimme:** Ich wollte nicht mehr denken und tippen und wiederholen, sondern sprechen und loslassen. + +## Kapitel 10: Menschen + +**Moderator:** Welche Rolle spielen andere Menschen in diesem System? + +**Analystin:** Eine zwiespältige. Seine größten Hebel sind oft Systeme, nicht Menschen. Der Harness Intel Router Agent befreit ihn von seinem eigenen Chaos. Er schafft Systeme, die seine ADHS-Struktur nutzen, statt sie zu bekämpfen. + +**Kritiker:** Aber genau diese Fokussierung auf Systeme zeigt die eigentliche Schwäche: die Unfähigkeit, gezielt Hilfe bei Menschen zu suchen. Das macht ihn letztlich kleiner und diffuser, weil er in seinem eigenen Kopf gefangen bleibt. + +## Kapitel 11: Zustand + +**Moderator:** Welche Rolle spielt der körperliche und mentale Zustand bei seinen Entscheidungen? + +**Kritiker:** Eine gewaltige. Er trifft Entscheidungen in Zuständen, denen er nüchtern nicht vertrauen würde. Er kauft unlimited Transkription in der Euphorie der Automatisierung, obwohl er weiß, dass das System noch ein Haufen Schrott ist. + +**Samuel-Stimme:** Das ist ADHS in Aktion: ein Impuls, der sich als Strategie tarnt. + +## Kapitel 12: Talent + +**Moderator:** Gab es eine Fähigkeit, die er schon immer hatte, aber lange nicht als solche erkannt hat? + +**Analystin:** Absolut. Das angeborene Talent, in Systemen zu denken. Er hat chaotische Gedanken schon als Teenager in agentenbasierte Workflows übersetzt, bevor er die Begriffe dafür kannte. Es war sein natürlicher Modus. + +## Kapitel 13: Schmerz + +**Moderator:** Viele seiner Ideen scheinen aus Schmerz zu entstehen. + +**Samuel-Stimme:** Jede Verletzung, die ich je erlebt hab, hat sich in eine Produktidee verwandelt. Nicht weil ich das wollte, sondern weil ich keine andere Wahl hatte. Wenn Outlook meine Bewerbungen versenkt, ist das ein Systemfehler in mir. Und den repariere ich, indem ich ein neues System baue. Das ist kein Design-Choice, das ist Überleben. + +**Kritiker:** Sein gesamtes Werk ist also eine Form von vernarbtem Gewebe. Jede Funktion eine Antwort auf eine vergangene Wunde. + +## Kapitel 14: Wiederholung + +**Moderator:** Gibt es eine Szene, die sich in seinem Leben immer wiederholt? + +**Analystin:** Ja. Der Alleingang, gefolgt vom Zusammenbruch, gefolgt von der Erkenntnis, dass er Hilfe gebraucht hätte. Und dann, als Konsequenz, der Bau eines Systems, das das Problem strukturell lösen soll. + +**Samuel-Stimme:** Ich starte allein. Immer. Ich glaube, ich kann es allein. Und dann – Crash. Die Überlastung. Der Scope Creep. Die Frustration, dass der Router mich falsch routet, obwohl ich genau gesagt habe, was ich will. + +## Kapitel 15: Zukunft + +**Moderator:** Die letzte Frage blickt nach vorn: Welche Version von Samuel wollte schon lange entstehen, hatte aber nie die richtige Infrastruktur? + +**Samuel-Stimme:** Die strukturierte, agentische, infrastrukturgebundene Version von mir. Eine Version, die nicht mehr klickt, sondern denkt – und die Gedanken dann automatisch in Agenten-Inputs verwandelt, ohne dass ich mich um Transkription, Routing oder Speicherung kümmern muss. + +**Analystin:** Das ist die Synthese. Der chaotische Ein-Mann-Shop wird zu einem strukturierten System, das von einem Gatekeeper-Agenten orchestriert wird. Was lange Theorie war, wird jetzt durch seine gebaute Infrastruktur zur Realität. + +## Outro + +**Moderator:** Kontrolle, Struktur, Identität, Schmerz und Zukunft. Wir haben 15 Knoten im Denken eines Mannes gesehen, der versucht, sich selbst zu externalisieren und zu systematisieren. Es ist kein abgeschlossener Prozess. Es ist die Architektur eines Geistes in ständiger, radikaler Bewegung. Danke, dass Sie zugehört haben. \ No newline at end of file diff --git a/podcast/meta2_agentische_sanduhr_podcast.mp3 b/podcast/meta2_agentische_sanduhr_podcast.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ef7b30b40e55293f2b0a0c6b4d136cf4ad19b749 --- /dev/null +++ b/podcast/meta2_agentische_sanduhr_podcast.mp3 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a044adb2a9ee117d5ab9578e75ac1884ec02ede9dce5fd37c17585f490cee89 +size 1924509 diff --git a/podcast/meta2_podcast_script.md b/podcast/meta2_podcast_script.md new file mode 100644 index 0000000000000000000000000000000000000000..1615b2009642dda508f823095fb5b2c053ca5314 --- /dev/null +++ b/podcast/meta2_podcast_script.md @@ -0,0 +1,144 @@ +# META2 Podcast — Die agentische Sanduhr + +Quelle: vorhandene `frage_*/ANTWORT.md` Dateien in `/home/smlflg/Projekte/META2.0`. +Verwendet: Frage 1 bis Frage 9. +Format: deutsches Podcast-Skript mit mehreren Rollen. + +## Rollen + +- Moderator: führt durch die Folge. +- Analystin: verdichtet die Antworten zu Systembegriffen. +- Kritiker: markiert Risiken, Brüche und Überforderung. +- Samuel-Stimme: Ich-Perspektive aus den Antworten, als reflektierte Verdichtung. + +--- + +## Intro + +**Moderator:** Willkommen zu einer Folge über Samuel, Agenten und die Frage, wie man aus Gedanken ein System baut, ohne sich selbst darin zu verlieren. + +**Analystin:** Die vorliegenden Antworten kreisen um neun Knoten: Kontrolle, Struktur, Identität, digitaler Thalamus, Agentenqualität, Energie, Überforderung, Ownership und Fluchtbewegungen. + +**Kritiker:** Und sie zeigen eine Spannung: Mehr Autonomie der Agenten kann Samuel entlasten — oder ihm das Gefühl nehmen, noch Owner zu sein. + +--- + +## Kapitel 1 — Kontrolle + +**Moderator:** Die erste Frage lautet: Wie bleibt Samuel Owner, wenn Agenten autonomer werden? + +**Samuel-Stimme:** Ich bleibe Owner, indem ich nicht jeden Schritt kontrolliere, sondern die Architektur kontrolliere. Agenten dürfen autonom handeln, aber ich definiere den Rahmen: Intent, Priorität, Rückkanal und Definition of Done. + +**Analystin:** Ownership heißt hier nicht Mikromanagement. Ownership heißt Meta-Steuerung: Samuel dirigiert die Pipeline, statt jeden Output einzeln festzuhalten. + +**Kritiker:** Das Risiko ist klar: Wenn der Router-Agent plötzlich wie ein Boss wirkt, kippt Delegation in Kontrollverlust. Deshalb braucht das System Feedback-Loops und klare Intake-Schichten. + +--- + +## Kapitel 2 — Struktur + +**Moderator:** Die zweite Frage: Wie übersetzt Samuel Chaos in handhabbare Schritte? + +**Analystin:** Nicht durch mehr Planung, sondern durch Architektur. Chaos wird nicht im Kopf sortiert, sondern in eine Pipeline geschoben: Gedanken erfassen, labeln, priorisieren, weiterleiten. + +**Samuel-Stimme:** Ich brauche keinen riesigen Masterplan. Ich brauche den Punkt, an dem das Chaos am lautesten schreit — und dort setze ich eine Struktur ein, die automatisch Schritte erzeugt. + +**Kritiker:** Der entscheidende Satz lautet: Im Kopf ist Chaos unkontrollierbar. Sobald Gedanken aber einen Weg durch ein System bekommen, können sie bearbeitet werden. + +--- + +## Kapitel 3 — Identität + +**Moderator:** Wer ist Samuel in einer agentischen Welt — und arbeitet er gut? + +**Samuel-Stimme:** Ich bin ein Architekt, der seine eigene Unordnung in Systeme übersetzt. Ich arbeite nicht trotz ADHS, sondern mit ihm — solange das System die Brüche auffängt. + +**Analystin:** Die Identität ist nicht: Ich bin ein Nutzer von Tools. Die Identität ist: Ich baue Agenten als Produkte, mit Rollen, Versionen, Skills, Registries und Rückkanälen. + +**Kritiker:** Aber die Antwort ist nicht nur triumphal. Wenn der Rückkanal fehlt, wenn Feedback-Loops brüchig sind, wird aus dem Architekten wieder der müde Student zwischen Traumwelt und Deadline. + +--- + +## Kapitel 4 — Digitaler Thalamus + +**Moderator:** Wie baut man einen digitalen Thalamus? + +**Analystin:** Nicht indem man mehr Agenten stapelt, sondern indem man den Fluss kontrolliert. Der digitale Thalamus ist die Sanduhr zwischen Gedankenstrom und agentischer Pyramide. + +**Samuel-Stimme:** Der Thalamus filtert nicht nur Noise. Er strukturiert Unordnung. Aber wenn kein Rückkanal existiert, wenn Done nicht definiert ist, dann wird aus dem Fluss ein Stau. + +**Kritiker:** Dann sammelt das System Gedanken, aber verarbeitet sie nicht. Der Buffer wird zur Müllhalde mit Interface. Genau hier entscheidet sich, ob eine Agentenarchitektur lebt oder nur beeindruckend aussieht. + +--- + +## Kapitel 5 — Agentenqualität + +**Moderator:** Was sind gute Metriken, um zu sagen: Samuel ist gut mit Agenten? + +**Analystin:** Die zentrale Beobachtung: Samuel ist nicht gut mit Agenten, weil er sie benutzt. Er ist gut, weil er sie industrialisiert. + +**Samuel-Stimme:** Ich denke nicht in einzelnen Features. Ich denke in Fabriken: Sanduhr, Lupascalare, Self-AI-Harness, Skills, Souls, Registry-Steckbriefe. + +**Kritiker:** Eine Metrik wäre also nicht: Wie viele Agenten laufen? Sondern: Wie zuverlässig werden Gedanken in Aufgaben, Aufgaben in Ergebnisse, und Ergebnisse in überprüfbare Rückkopplung verwandelt? + +--- + +## Kapitel 6 — Energie + +**Moderator:** Wann war Samuel wirklich lebendig — nicht erfolgreich, nicht produktiv, sondern lebendig? + +**Samuel-Stimme:** Ich war lebendig, wenn ich nicht musste, sondern wollte. Wenn Gedanken rausmussten. Wenn ich im Plaud-Pin sprach, ohne Setup, ohne Pipeline, einfach weil der Kopf sich endlich bewegen konnte. + +**Analystin:** Energie entsteht bei ihm aus Freiheit, Tiefe, Geschwindigkeit und Bedeutung. Nicht aus Checkboxen. + +**Kritiker:** Das ist wichtig: Wenn das System nur Produktivität erzwingt, tötet es genau den Treibstoff, aus dem es gebaut wurde. + +--- + +## Kapitel 7 — Überforderung + +**Moderator:** Wann scheitert Samuel nicht an fehlender Fähigkeit, sondern an zu viel gleichzeitig? + +**Analystin:** Wenn er versucht, ein ganzes Ökosystem auf einmal zu bauen: Agentenfabrik, Registry, Governance, UI, Goal-Layer, Router und Feedback-Pipeline gleichzeitig. + +**Samuel-Stimme:** Ich kann viel. Aber wenn zu viele Systembrüche parallel offen sind, bricht die Struktur. Dann brauche ich nicht mehr Kraft, sondern weniger Gleichzeitigkeit. + +**Kritiker:** Das V7-Muster ist der Warnhinweis: dreißigtausend Zeilen explodieren, fünfhundert Zeilen schaffen wieder Kontrolle. Größe ist nicht Fortschritt, wenn Done fehlt. + +--- + +## Kapitel 8 — Ownership + +**Moderator:** Wann fühlt Samuel sich stark, weil etwas wirklich seins war? + +**Samuel-Stimme:** Wenn ich etwas aus meiner Hand, aus meinem Kopf und aus meiner Notwendigkeit baue. Nicht weil es perfekt ist, sondern weil ich Verantwortung dafür übernehme. + +**Analystin:** Ownership ist hier kein Besitz. Ownership ist Bedeutung plus Verantwortung. Ein kleiner Prototyp kann mehr Eigentümerschaft erzeugen als ein großes System, das sich fremd anfühlt. + +**Kritiker:** Und genau deshalb reicht Output nicht. Wenn objektiv viel passiert, Samuel aber die Bedeutung nicht mehr greifen kann, geht Ownership verloren. + +--- + +## Kapitel 9 — Wiederholte Fluchtbewegungen + +**Moderator:** Wann wollte Samuel neu anfangen, alles resetten, neues System, neues Tool, neues Projekt — und was wollte er eigentlich vermeiden? + +**Analystin:** Die Antwort sagt: Reset war selten bloße Laune. Oft war es der Versuch, wieder Kontrolle zu spüren, wenn ein bestehendes System ihn nicht mehr vorwärtsbrachte, sondern festhielt. + +**Samuel-Stimme:** Ich wollte nicht immer etwas Neues. Manchmal wollte ich aus einem Workflow raus, der mich verbrauchte: zu viel manuelle Verwaltung, zu viel Tippen, zu viele parallele Sessions. + +**Kritiker:** Fresh install ist dann kein Ordnungstraum, sondern ein Notausgang. Die eigentliche Frage ist nicht: Welches neue Tool? Sondern: Welche Meta-Ebene fehlt, damit das alte System wieder führbar wird? + +--- + +## Schluss + +**Moderator:** Die neun Antworten ergeben ein klares Bild: Samuel braucht keine Agenten, die ihn ersetzen. Er braucht Agenten, die seine Gedanken in eine handhabbare Architektur übersetzen. + +**Analystin:** Der Kern ist die Sanduhr: oben Gedankenfluss, unten ausführbare Arbeit, dazwischen Filter, Priorisierung, Rollen, Rückkanal und Definition of Done. + +**Kritiker:** Die Gefahr ist nicht zu wenig Intelligenz. Die Gefahr ist zu viel Parallelität ohne Rückkopplung. + +**Samuel-Stimme:** Ich bleibe Owner, wenn das System mir gehört: nicht als Besitz, sondern als Form meiner eigenen Arbeitsweise. + +**Moderator:** Das war META2: Die agentische Sanduhr. Eine Folge über Kontrolle, Struktur und die Kunst, Autonomie so zu bauen, dass der Mensch nicht verschwindet. diff --git a/podcast/source_manifest.md b/podcast/source_manifest.md new file mode 100644 index 0000000000000000000000000000000000000000..24061d28d90ae2533f29c76e23aba34cbb509291 --- /dev/null +++ b/podcast/source_manifest.md @@ -0,0 +1,40 @@ +# META2 Podcast Source Manifest + +Build source freeze: alle 15 `ANTWORT.md` Dateien vorhanden. + +Verwendete Quellen: + +1. `/home/smlflg/Projekte/META2.0/frage_01_kontrolle/ANTWORT.md` +2. `/home/smlflg/Projekte/META2.0/frage_02_struktur/ANTWORT.md` +3. `/home/smlflg/Projekte/META2.0/frage_03_identitaet/ANTWORT.md` +4. `/home/smlflg/Projekte/META2.0/frage_04_thalamus/ANTWORT.md` +5. `/home/smlflg/Projekte/META2.0/frage_05_qualitaet/ANTWORT.md` +6. `/home/smlflg/Projekte/META2.0/frage_06_energie/ANTWORT.md` +7. `/home/smlflg/Projekte/META2.0/frage_07_ueberforderung/ANTWORT.md` +8. `/home/smlflg/Projekte/META2.0/frage_08_ownership/ANTWORT.md` +9. `/home/smlflg/Projekte/META2.0/frage_09_flucht/ANTWORT.md` +10. `/home/smlflg/Projekte/META2.0/frage_10_menschen/ANTWORT.md` +11. `/home/smlflg/Projekte/META2.0/frage_11_zustand/ANTWORT.md` +12. `/home/smlflg/Projekte/META2.0/frage_12_talent/ANTWORT.md` +13. `/home/smlflg/Projekte/META2.0/frage_13_schmerz/ANTWORT.md` +14. `/home/smlflg/Projekte/META2.0/frage_14_wiederholung/ANTWORT.md` +15. `/home/smlflg/Projekte/META2.0/frage_15_zukunft/ANTWORT.md` + +Artefakte: + +- Skript (9-Fragen-Version): `podcast/meta2_podcast_script.md` +- Audio (9-Fragen-Version): `podcast/meta2_agentische_sanduhr_podcast.mp3` +- Skript (15-Fragen-Version): `podcast/meta2_15_knoten_podcast_script.md` +- Audio (15-Fragen-Version): `podcast/meta2_15_knoten_podcast.mp3` +- Generator: `podcast/build_podcast_audio.py` +- Aufbereitung: Gemini 2.5 Pro (Podcast-Skript), dann lokale deutsche Edge-TTS-Stimmen bei +38%. + +Finale Audio-Parameter (15-Fragen-Version): + +- Stimmen: Florian, Katja, Conrad, Killian, Seraphina +- Segmente: 137 +- Maximaler Segmenttext: 140 Zeichen +- Dauer: 448.632 Sekunden (7:29 min) +- Größe: 2,692,029 Bytes +- Vollstaendiger Playback mit mpv bis Dateiende: Exit 0 +- Geschwindigkeit: +38% \ No newline at end of file diff --git a/reference/glossary.html b/reference/glossary.html new file mode 100644 index 0000000000000000000000000000000000000000..8ce10456b57dbb28d7312346e8197653c1fac3bd --- /dev/null +++ b/reference/glossary.html @@ -0,0 +1,71 @@ + + + + + + Glossar: Vertikale Qualität mit Agenten + + + + + + +

Glossar: Vertikale Qualität

+ +
+
Vertikale Qualität
+
Eine Pipeline von Eingang bis zum verifizierten Ende durchziehen. Tiefe, nicht Breite. Maß: ein fertiges, nachweisbares Ergebnis pro Pipeline.
+ +
Horizontale Qualität
+
Nicht Qualität. Mehr Agenten, mehr Skills, mehr Architektur ohne Done-Definition. Scope Creep mit besserem Marketing.
+ +
Slot
+
Der eine aktive Arbeitsplatz. Nur ein Task ist gleichzeitig im Slot. Alles andere wartet im Puffer. Nicht zu verwechseln mit "parallele Tasten" — ein Slot hat eine klare Done-Bedingung.
+ +
Tor
+
Filter vor dem Fluss. Lässt nur durch, was in den aktuellen Slot passte. Unterschied zum Router: ein Router verteilt, ein Tor begrenzt.
+ +
Router (vs. Tor)
+
Filter im Fluss. Nimmt alles an und verteilt an mehrere Ziele. Vergrößert den Durchsatz, begrenzt ihn nicht. Was Samuel bisher baut.
+ +
Puffer
+
Warteschlange für Gedanken, die nicht in den aktuellen Slot passen. Ein Parkplatz, kein Arbeitsplatz. Aufgeschrieben, nicht ausgeführt.
+ +
Done-Definition
+
Klares Ende eines Tasks. Nicht "irgendwann fertig", sondern: Output im Format X, verifiziert durch Y. Ohne Done-Definition gibt es keine vertikale Qualität.
+ +
Rückkanal
+
Feedback-Schleife: Output → Prüfung → Done oder Korrektur. Ohne Rückkanal verschwinden Ergebnisse in Ordnern, ohne dass jemand sie verifiziert.
+ +
Scope Creep
+
Wenn ein Task wächst, statt fertig zu werden. Symptom: mehr Agenten, mehr Offenheiten, weniger fertige Ergebnisse. Antidote:_slot-Begrenzung + Done-Definition.
+ +
Agentische Sanduhr
+
Samuels Metapher für eine Engstelle im Gedankenfluss. Im aktuellen Entwurf: Filter im Fluss. In vertikaler Qualität: Filter vor dem Fluss.
+ +
Leitplanke
+
Begrenzung, die Gedanken auf Kurs hält. Unterscheidung: Leitplanke im Fluss (Router) vs. Leitplanke vor dem Fluss (Tor). Samuel braucht Letzteres.
+
+ + + + + \ No newline at end of file diff --git a/run_meta2.sh b/run_meta2.sh new file mode 100644 index 0000000000000000000000000000000000000000..b6fd417f4e1c9d462d389fe2f2eefe80a866915b --- /dev/null +++ b/run_meta2.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# META2.0 — Legacy: 15 Agenten parallel, alle Fragen +# +# WICHTIG: +# Dieser Frage-Swarm ist NICHT die Zielarchitektur fuer die 194k-Message +# Session-Schicht. Fuer Sessions gilt Map einmal -> Reduce -> Answer-N. +# Siehe META2_MAPREDUCE_ARCHITECTURE.md. +# +# Nur fuer kleine/Plaud-only Experimente bewusst freischalten: +# META2_ALLOW_LEGACY_QUESTION_SWARM=1 bash run_meta2.sh +if [ "${META2_ALLOW_LEGACY_QUESTION_SWARM:-0}" != "1" ]; then + echo "ABBRUCH: run_meta2.sh ist ein Legacy-Frage-Swarm." + echo "Fuer META2.0 Sessions zuerst MapReduce bauen:" + echo " 1) Layer 1 Session-Digests" + echo " 2) Layer 2 Korpus-Reduce" + echo " 3) Layer 3 Antworten pro Frage" + echo "" + echo "Details: /home/smlflg/Projekte/META2.0/META2_MAPREDUCE_ARCHITECTURE.md" + echo "" + echo "Wenn du den alten Plaud-only Lauf trotzdem willst:" + echo " META2_ALLOW_LEGACY_QUESTION_SWARM=1 bash /home/smlflg/Projekte/META2.0/run_meta2.sh" + exit 2 +fi +set -a +source /home/smlflg/Projekte/IPAI/KnowdledgeGraph/../.env +source /home/smlflg/Projekte/IPAI/KnowdledgeGraph/.env.keys +set +a + +PYTHON=/home/smlflg/Projekte/IPAI/KnowdledgeGraph/.venv/bin/python +BASE=/home/smlflg/Projekte/META2.0 + +echo "=== META2.0 Swarm — 15 Agenten ===" +echo "$(date)" +echo "" + +STAGGER=4 # Sekunden zwischen Agent-Starts (Rate-Limit-Schutz) + +run_agent() { + local id=$1 frage=$2 dir=$3 + echo " → Starte $id" + $PYTHON $BASE/swarm_agent.py --frage-id "$id" --frage "$frage" --output-dir "$BASE/$dir" \ + > "$BASE/$dir/run.log" 2>&1 & + sleep $STAGGER +} + +# Welle 1 — Original 5 +run_agent "frage_01_kontrolle" "Wie bleibe ich Owner wenn Agenten autonomer werden?" "frage_01_kontrolle" +run_agent "frage_02_struktur" "Wie übersetze ich Chaos in handhabbare Schritte?" "frage_02_struktur" +run_agent "frage_03_identitaet" "Wer ist Samuel in einer agentischen Welt und arbeitet er gut?" "frage_03_identitaet" +run_agent "frage_04_thalamus" "Wie baut man einen digitalen Thalamus und was passiert wenn die agentische Pyramide blockt?" "frage_04_thalamus" +run_agent "frage_05_qualitaet" "Was sind gute Metriken um zu sagen: Samuel ist gut mit Agenten?" "frage_05_qualitaet" + +# Welle 2 — Tiefe Lebensfragen +run_agent "frage_06_energie" "Wann war Samuel wirklich lebendig — nicht erfolgreich, nicht produktiv, sondern lebendig? Neugier, Bühne, Risiko, Tiefe, Geschwindigkeit, Bedeutung." "frage_06_energie" +run_agent "frage_07_ueberforderung" "Wann ist Samuel nicht an fehlender Fähigkeit gescheitert, sondern daran dass sein Denken zu breit für sein aktuelles Interface wurde?" "frage_07_ueberforderung" +run_agent "frage_08_ownership" "Wann hat Samuel sich stark gefühlt weil etwas wirklich seins war — und wann verlor er dieses Gefühl obwohl objektiv viel passierte?" "frage_08_ownership" +run_agent "frage_09_flucht" "Wann wollte Samuel neu anfangen, alles resetten, neues System, neues Tool — und was wollte er eigentlich vermeiden?" "frage_09_flucht" +run_agent "frage_10_menschen" "Welche Menschen haben Samuel größer gemacht und welche kleiner, diffuser oder abhängiger? Wer erhöht Klarheit, wer erzeugt Nebel?" "frage_10_menschen" + +# Welle 3 — Tiefste Ebene +run_agent "frage_11_zustand" "Welche Entscheidungen hat Samuel in Zuständen getroffen denen er nüchtern nicht vertrauen würde — Müdigkeit, Euphorie, Token-Druck, sozialer Rausch?" "frage_11_zustand" +run_agent "frage_12_talent" "Was konnte Samuel immer schon ungewöhnlich gut bevor er es ernst genommen hat — so natürlich dass er es nicht als Fähigkeit erkannt hat?" "frage_12_talent" +run_agent "frage_13_schmerz" "Welche Verletzungen und Reibungsflächen haben später Produktideen, Kontrollbedürfnisse oder Weltbilder erzeugt?" "frage_13_schmerz" +run_agent "frage_14_wiederholung" "Welche Szene wiederholt sich in Samuels Leben in verschiedenen Kostümen — andere Personen, andere Stadt, anderes Projekt, aber gleiche Struktur?" "frage_14_wiederholung" +run_agent "frage_15_zukunft" "Welche Version von Samuel wollte schon lange entstehen hatte aber nie die richtige Infrastruktur — was versucht durch ihn seit Jahren Form anzunehmen?" "frage_15_zukunft" + +echo "" +echo "15 Agenten gestartet." +echo "" +echo "Live-Monitor:" +echo " watch -n10 'for d in $BASE/frage_*/session_log.md; do echo -n \"\$(dirname \$d | xargs basename): \"; wc -l < \$d 2>/dev/null || echo 0; done'" +echo "" +echo "Fortschritt einzelner Agent:" +echo " tail -f $BASE/frage_01_kontrolle/run.log" +echo "" +echo "Ergebnisse lesen:" +echo " cat $BASE/frage_06_energie/ANTWORT.md" diff --git a/swarm_agent.py b/swarm_agent.py new file mode 100644 index 0000000000000000000000000000000000000000..acf5491ad2284bee64bc3496d8e250d344f2881f --- /dev/null +++ b/swarm_agent.py @@ -0,0 +1,194 @@ +#!/usr/bin/env python3 +"""META2.0 Swarm Agent — ein Agent, eine Frage, alle Sessions.""" + +import argparse +import json +import os +import sys +import time +from pathlib import Path +from openai import OpenAI + +# --- Key Rotation --- +KEYS = os.environ.get("LITELLM_API_KEYS", "").split(",") +_key_idx = 0 + +def next_key(): + global _key_idx + key = KEYS[_key_idx % len(KEYS)].strip() + _key_idx += 1 + return key + +BASE_URL = os.environ.get("LITELLM_BASE_URL", "https://litellm-kommone.genai.govdigital.de/v1") +MODEL = os.environ.get("LITELLM_MODEL", "stackit-qwen-qwen3-vl-235b-a22b-instruct-fp8") + +TRANSCRIPTS_DIR = Path("/home/smlflg/Projekte/IPAI/KnowdledgeGraph/data/raw") +SESSIONS_DIR = Path("/home/smlflg/.claude/projects/-home-smlflg") + +CHUNK_CHARS = 6000 # Max chars per source to send to Qwen + + +def call_qwen(prompt: str, retries: int = 10) -> str: + for attempt in range(retries): + try: + client = OpenAI(api_key=next_key(), base_url=BASE_URL) + resp = client.chat.completions.create( + model=MODEL, + messages=[{"role": "user", "content": prompt}], + max_tokens=300, + temperature=0.3, + ) + return resp.choices[0].message.content.strip() + except Exception as e: + wait = min(4 * (2 ** attempt), 60) # exponential backoff, max 60s + print(f" [retry {attempt+1}/{retries}] {e} — warte {wait}s", flush=True) + time.sleep(wait) + return "[FEHLER: Qwen nicht erreichbar nach 10 Versuchen]" + + +def extract_jsonl_text(path: Path) -> str: + """Extrahiert menschliche Nachrichten aus Claude JSONL Sessions.""" + lines = [] + try: + with open(path, encoding="utf-8", errors="ignore") as f: + for line in f: + line = line.strip() + if not line: + continue + try: + obj = json.loads(line) + # Claude JSONL: message objects mit role/content + msg = obj.get("message", obj) + role = msg.get("role", "") + content = msg.get("content", "") + if role == "human" and isinstance(content, str) and len(content) > 20: + lines.append(content[:500]) + elif role == "human" and isinstance(content, list): + for block in content: + if isinstance(block, dict) and block.get("type") == "text": + txt = block.get("text", "") + if len(txt) > 20: + lines.append(txt[:500]) + except Exception: + continue + except Exception as e: + return f"[Lesefehler: {e}]" + return "\n".join(lines[:30]) # Max 30 Nachrichten + + +def load_sources() -> list[dict]: + sources = [] + + # 1. Plaud Transkripte (reichste Quelle) + if TRANSCRIPTS_DIR.exists(): + for f in sorted(TRANSCRIPTS_DIR.glob("*.txt")): + try: + text = f.read_text(encoding="utf-8", errors="ignore") + sources.append({ + "name": f.name, + "type": "transkript", + "text": text[:CHUNK_CHARS], + }) + except Exception: + continue + + # 2. Claude Sessions (JSONL) + if SESSIONS_DIR.exists(): + for f in sorted(SESSIONS_DIR.glob("*.jsonl"))[:30]: # max 30 + text = extract_jsonl_text(f) + if len(text) > 100: + sources.append({ + "name": f.stem[:60], + "type": "session", + "text": text[:CHUNK_CHARS], + }) + + return sources + + +def analyze_source(frage: str, source: dict) -> str: + prompt = f"""Du analysierst persönliche Aufzeichnungen von Samuel Fleig (CS-Student, AI Engineer, ADHS). + +FORSCHUNGSFRAGE: {frage} + +QUELLE [{source['type']}]: {source['name']} +--- +{source['text']} +--- + +Schreibe GENAU EINEN präzisen Satz: Was verrät diese Quelle zur Forschungsfrage? +Wenn die Quelle nichts Relevantes enthält: "Keine relevante Information." +Satz (kein Präambel, kein Kommentar):""" + return call_qwen(prompt) + + +def synthesize(frage: str, log_entries: list[str]) -> str: + relevant = [e for e in log_entries if "Keine relevante" not in e and len(e) > 20] + if not relevant: + return "Keine ausreichenden Daten für eine Synthese gefunden." + + joined = "\n".join(f"- {e}" for e in relevant[:50]) + prompt = f"""Du bist Samuels persönlicher Meta-Analyst. + +FORSCHUNGSFRAGE: {frage} + +ERKENNTNISSE aus {len(relevant)} Quellen: +{joined} + +Schreibe eine tiefe, ehrliche Antwort auf die Forschungsfrage (3-5 Absätze). +Nutze Samuels eigene Sprache und Konzepte. Sei direkt, keine Floskeln. +Beziehe dich auf konkrete Beispiele aus den Erkenntnissen. + +ANTWORT:""" + return call_qwen(prompt) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--frage-id", required=True) + parser.add_argument("--frage", required=True) + parser.add_argument("--output-dir", required=True) + args = parser.parse_args() + + out = Path(args.output_dir) + out.mkdir(parents=True, exist_ok=True) + log_path = out / "session_log.md" + answer_path = out / "ANTWORT.md" + + print(f"\n=== META2.0 Agent: {args.frage_id} ===", flush=True) + print(f"Frage: {args.frage}", flush=True) + print(f"Output: {out}", flush=True) + + sources = load_sources() + print(f"Quellen geladen: {len(sources)} ({sum(1 for s in sources if s['type']=='transkript')} Transkripte, {sum(1 for s in sources if s['type']=='session')} Sessions)", flush=True) + + log_entries = [] + + with open(log_path, "w", encoding="utf-8") as log: + log.write(f"# Session Log: {args.frage_id}\n\n") + log.write(f"**Frage:** {args.frage}\n\n") + log.write(f"**Quellen:** {len(sources)}\n\n---\n\n") + + for i, source in enumerate(sources): + print(f" [{i+1}/{len(sources)}] {source['type']}: {source['name'][:50]}", flush=True) + result = analyze_source(args.frage, source) + log_entries.append(result) + log.write(f"**{i+1}. {source['name'][:60]}** `[{source['type']}]`\n{result}\n\n") + log.flush() + time.sleep(1.0) # sanfte Rate-Limit-Schonung (15 parallele Agents) + + print(f"\n → Synthese läuft...", flush=True) + answer = synthesize(args.frage, log_entries) + + with open(answer_path, "w", encoding="utf-8") as f: + f.write(f"# {args.frage_id}: Antwort\n\n") + f.write(f"**Frage:** {args.frage}\n\n") + f.write(f"**Analysierte Quellen:** {len(sources)}\n\n---\n\n") + f.write(answer) + f.write("\n") + + print(f" ✓ Fertig. Antwort: {answer_path}", flush=True) + + +if __name__ == "__main__": + main() diff --git a/wireframes/2026-09-12-hai-auge/WIREFRAME_PACKET.md b/wireframes/2026-09-12-hai-auge/WIREFRAME_PACKET.md new file mode 100644 index 0000000000000000000000000000000000000000..bf8b4b8a7abf2ef5406f1b37b648bcf079a72ab4 --- /dev/null +++ b/wireframes/2026-09-12-hai-auge/WIREFRAME_PACKET.md @@ -0,0 +1,184 @@ +# Wireframe Packet: HAI-Auge + +## 1. Owner Summary + +Das HAI-Auge wird Samuels persönlicher 24/7-Agent auf dem Hetzner-Server. +Es hört und liest über angeschlossene Quellen und unterstützt ihn in allen Lebensbereichen. +Samuel konkretisiert seine Rolle als persönlichen ADHS-Begleiter: Es begleitet seine gewählte Arbeit und hilft sprachbasiert, wenn es nicht weitergeht. +Ein Subagent triggert den Meta-Modus. Dieser verändert die Agent-Version Git-basiert, prüft den Nutzen und kann vorwärts und rückwärts wechseln. +Diese Ablaufskizze macht Quellen, Rückkanal und Versionswechsel prüfbar, bevor eine laufende Installation verändert wird. +Status: Entwurf zur Freigabe; noch keine Implementierung oder Serveränderung. +META2.0 ist der Gesprächs- und Entwurfsort, noch kein festgelegter Installationsort. + +## 2. Assumptions + +- SAFE DEFAULT: Der bestätigte Server ist `hai-brain`, Tailscale `100.95.167.16`, Hostname `smlflg-allwaysonAgent`. +- SAFE DEFAULT: Alle Lebensbereiche bleiben im Zielumfang; eine erste Ende-zu-Ende-Verbindung ist ein Bauabschnitt, kein Ersatz für das Gesamtziel. +- SAFE DEFAULT: Arbeitsbegleitung ist der Kern: gewählte Aufgabe kennen, Stocken anhand freigegebener Signale als Vermutung erkennen, kurz sprachlich helfen und den Wiedereinstieg prüfen. Stille allein beweist keine Ablenkung. +- SAFE DEFAULT: Der Meta-Trigger kommt gemäß Samuels Vorgabe von einem Subagenten. Seine konkrete Triggerregel ist noch zu ermitteln; der Arbeitsdialog bleibt währenddessen verfügbar. +- NEEDS OWNER DECISION: „Fixes Git“ ist verbindlich; festes Repository, unveränderliche Basis-Commit-ID pro Versuch und Rückkehr zur bewährten Commit-ID sind die zur Bestätigung vorgelegte Auslegung. Repository und vorhandenes Setup sind noch nicht zugeordnet. +- SAFE DEFAULT: Vorhandene Hermes-Komponenten zuerst auf Eignung prüfen. Kein bestehender Prozess wird für diesen Entwurf beendet oder umkonfiguriert. +- SAFE DEFAULT: Meta-Änderungen dürfen innerhalb eines von Samuel freigegebenen Bereichs automatisch getestet und zurückgerollt werden. Die konkrete Grenze ist vor Aktivierung sichtbar festzulegen. +- NEEDS OWNER DECISION: Bedeutet „hört“ eingehende Sprachaufnahmen oder zusätzlich fortlaufendes Live-Audio? PLAUD/Intake ist ein vorhandener möglicher Einstieg, aber noch keine bestätigte HAI-Auge-Quelle. +- NEEDS OWNER DECISION: Tatsächliche Quellen, privater Antwortkanal und erlaubte Handlungen aus bestehenden Serveranschlüssen ermitteln und als konkrete Anschlussliste bestätigen. +- RISKY ASSUMPTION: Ein laufender Hermes-Prozess sei bereits ein zuverlässiger Dauerdienst. Das wurde nicht belegt. + +## 3. Roles + +| Role | Goal | Permissions | Risks | +|---|---|---|---| +| Samuel | Unterstützung erhalten und Richtung bestimmen | Quellen, Mandate, Pause, Version und Erfolgskriterien bestimmen | Zu viele Rückfragen oder unbemerkte Änderungen | +| HAI-Auge | Gewählte Arbeit begleiten, bei Stocken sprachlich helfen | Freigegebene Quellen lesen und innerhalb des Mandats handeln | Veraltete Informationen, falsche Interpretation, störende Unterbrechungen | +| Trigger-Subagent | Verbesserungsbedarf erkennen und Meta-Modus auslösen | Belegten Anlass mit Basisversion an Meta-Modus übergeben | Jeden Stillstand als Systemfehler behandeln | +| Meta-Modus | Eigenes Verhalten verbessern | Kandidaten für freigegebene Agent-Dateien erzeugen und testen | Selbstbewertung ohne echten Nutzennachweis | +| Prüfer und Versionswächter | Vergleich und Wiederherstellung | Unabhängige Checks, aktive Version umschalten, vorherige Version starten | Wiederholung externer Aktionen oder nicht rückrollbarer Datenänderungen | + +Der Trigger-Subagent ist ausdrücklich von Samuel vorgegeben. Prüfer und Versionswächter sind technische Verantwortlichkeiten; ihre Umsetzung ist noch offen. + +## 4. View Map + +| View | Purpose | Primary user | Main decision/action | States needed | +|---|---|---|---|---| +| Eingang und Unterstützung | Arbeite ich an meiner gewählten Aufgabe, wo brauche ich Hilfe? | Samuel | Sprechen, nächsten Schritt wählen, Hilfe annehmen oder Pause machen | arbeitet, Stocken vermutet, Sprachhilfe, wieder eingestiegen, Pause, Eingang fehlt | +| Meta-Modus | Was ändert sich und lohnt es sich? | Samuel und Versionswächter | Vergleichen, testen, übernehmen, zurückrollen | vorgeschlagen, Test, unklar, verbessert, Regression | +| Betrieb | Ist das Auge tatsächlich wach und angeschlossen? | Samuel | Quelle prüfen, pausieren, wiederaufnehmen | aktiv, Sync fehlt, Provider blockiert, pausiert, Wiederherstellung | + +## 5. State Map + +| State | Visible signifier | Allowed actions | Blocked actions | Data/evidence needed | +|---|---|---|---|---| +| Bereit | Letzter erfolgreicher Eingang und Antwort | Neue Eingänge bearbeiten | Unmandatierte Aktionen | Ende-zu-Ende-Beleg, Dienstzustand | +| Leer | Noch kein Eingang | Quellenstatus prüfen | Erfundener Tagesstatus | Eingangszähler | +| Verarbeitung | Eingang wird verarbeitet | Warten, pausieren | Doppelte Bearbeitung | Ereignis-ID und laufender Auftrag | +| Arbeitet | Gewählte Aufgabe und nächster Check-in | Ungestört arbeiten, Hilfe rufen | Unnötige Unterbrechungen | Freigegebener Arbeitskontext | +| Stocken vermutet | Kurze Nachfrage mit Anlass | Antworten, Hilfe, später, Pause | Aus Inaktivität Arbeitsverweigerung ableiten | Owner-Meldung oder freigegebenes Signal | +| Sprachhilfe | Zuhören / spricht / unterbrochen | Blockade schildern, Antwort unterbrechen, einen Schritt wählen | Monolog fortsetzen, obwohl Samuel spricht | Audio-Eingang, Transkript, Audio-Ausgabe | +| Wiedereinstieg | Nächster eigener Schritt festgehalten | Ausführen und Ergebnis kurz bestätigen | Gesprochene Hilfe als erledigte Arbeit zählen | Bestätigung oder konkretes Arbeitsergebnis | +| Fehler | Fehler mit Zeitpunkt | Begrenzter Wiederholungsversuch | Erfolg melden | Fehlerklasse und Versuchszähler | +| Veraltet | Quelle zuletzt synchronisiert am … | Alte Daten ausdrücklich als alt anzeigen | Als aktuell behandeln | Quellzeit und Empfangszeit | +| Sync fehlt | Quelle nicht verbunden | Anschluss prüfen | Schlussfolgerung aus fehlenden Daten | Letzter Sync oder unbekannt | +| Zugriff verweigert | Berechtigung fehlt | Samuel um konkrete Berechtigung bitten | Selbstständig Rechte erweitern | Ablehnung der Quelle | +| Nur lesen | Lesemandat aktiv | Lesen und Vorschläge zeigen | Externe Änderungen | Aktuelles Mandat | +| Pausiert | Pause aktiv | Status lesen, wiederaufnehmen | Neue autonome Arbeit | Persistierter Pausenzustand | +| Review nötig | Entscheidung offen | Begründung und Vergleich lesen | Abhängige Aktion | Konkrete Änderung und Folgen | +| Provider blockiert | Modellzugang oder Budget fehlt | Eingang erhalten und Blockade anzeigen | Ersatz als erfolgreichen Lauf ausgeben | Provider-Antwort ohne Secrets | +| Destruktive Aktion | Wirkung ausdrücklich benannt | Freigeben oder abbrechen | Ausführung ohne Freigabe | Ziel und Umfang | +| Erfolgreich | Ergebnis zugestellt und geprüft | Ergebnis verwenden | Aus Tests allein Dauerbetrieb ableiten | Readback im Antwortkanal | +| Historie | Version, Quelle und Entscheidung | Nachvollziehen, gültige Version auswählen | Historie still umschreiben | Änderungs- und Ereignisprotokoll | +| Meta unklar | Nutzen nicht belegt | Kandidat behalten, weitere Belege sammeln | Kandidat produktiv übernehmen | Vergleich mit identischem Prüfmaterial | +| Regression | Rückkehr zu Version … | Vorherige Version aktivieren und prüfen | Weiterpromovieren | Fehlgeschlagener Check oder Nutzensignal | +| Rollback fehlgeschlagen | Betrieb angehalten | Diagnose und menschliche Wiederherstellung | Weitere Selbständerungen | Fehlender Start-/Integritätstest | + +## 6. Low-Fidelity Mockups + +```text ++-- Eingang und Unterstützung -----------------------------------+ +| Quelle: … Quellzeit: … Empfang: … [Beleg öffnen] | +| Meine Aufgabe: … Mein nächster Schritt: … | +| Beobachtung: … Stocken vermutet, noch nicht bestätigt | +| Sprache: „Hängst du gerade fest oder brauchst du Ruhe?“ | +| [Sprechen] [Hilf mir beim nächsten Schritt] [Später] [Pause] | +| Nach der Hilfe: „Konntest du anfangen?“ | +| [Antwort lesen] [Aktion prüfen] [Korrigieren] | +| Hinweis: Quelle veraltet / nicht verbunden, falls zutreffend | ++----------------------------------------------------------------+ + ++-- Meta-Modus --------------------------------------------------+ +| Aktiv: vN Letzte bewährte Version: vN Kandidat: vN+1 | +| Trigger: Subagent … Beleg: … Repo: offen Basis-Commit: … | +| Anlass: … Erwartete Verbesserung: … Betroffene Dateien: … | +| [Änderung ansehen] [Prüfbelege] | +| vN --> isolierter Kandidat --> gleicher Vergleichstest | +| | besser: begrenzter Probebetrieb | +| | unklar/schlechter: vN bleibt | +| Probebetrieb --> bewährt: übernehmen / Regression: zurück zu vN | +| [Zurückrollen] [Meta pausieren] [Mandat ansehen] | ++----------------------------------------------------------------+ + ++-- Betrieb -----------------------------------------------------+ +| Agent: … Letzter Heartbeat: … Letzte echte Antwort: … | +| Sprache: nicht geprüft Texte: nicht geprüft | +| Antwortkanal: nicht geprüft Provider: nicht geprüft | +| Wartende Eingänge: … Aktive Version: … | +| [Quellen prüfen] [Pause] [Wiederaufnehmen] [Historie] | +| Aktueller Befund: SSH bestätigt; 24/7-Unterstützung unbelegt | ++----------------------------------------------------------------+ +``` + +## 7. Affordances & Signifiers + +| UI element | What user thinks it does | Actual effect | Enabled when | Disabled/gated when | Risk | +|---|---|---|---|---|---| +| Beleg öffnen | Herkunft sehen | Originalquelle mit Zeitpunkt zeigen | Leserecht vorhanden | Quelle nicht verfügbar | Private Inhalte | +| Sprechen / Hilf mir | Bei Blockade Unterstützung erhalten | Audio aufnehmen, Blockade kurz klären, einen machbaren Schritt anbieten | Audioquelle und Ausgabe verbunden | Mikrofon fehlt oder Aufnahme pausiert | Unerwünschte Aufnahme oder lange Antworten | +| Später / Pause | In Ruhe arbeiten oder ausruhen | Check-in verschieben bzw. Begleitung pausieren | Owner-Zugang | Fremder Zugriff | Wiederholte störende Nachfragen | +| Aktion prüfen | Entscheidung verstehen | Konkretes Ziel und Wirkung zeigen | Vorschlag vorhanden | Angaben fehlen | Unklare Tragweite | +| Korrigieren | Fehlinterpretation verbessern | Korrektur als Eigentümersignal speichern | Zugeordneter Eingang | Identität unbestätigt | Fremde Eingaben als Owner-Wille | +| Änderung ansehen / Prüfbelege | Verbesserung beurteilen | Diff und Vergleich vorlegen | Kandidat vorhanden | Test fehlt: Übernahme gesperrt | Plausible Erklärung ohne Messung | +| Zurückrollen | Vorigen Stand nutzen | Version umschalten und Lauf prüfen | Geprüfter Rückweg vorhanden | Inkompatibler Zustand | Externe Wirkungen bleiben bestehen | +| Pause / Meta pausieren | Aktivität stoppen | Neue Arbeit bzw. neue Änderungen anhalten | Autorisierter Owner | Identität unbestätigt | Laufende Aktion braucht definierten Abbruchpunkt | +| Wiederaufnehmen | Weiterarbeiten | Wartende Ereignisse kontrolliert abarbeiten | Quellen und Mandat gültig | Wiederherstellung fehlgeschlagen | Doppelte Aktionen | +| Historie / Mandat | Kontrolle behalten | Versionen, Rechte und Entscheidungen anzeigen | Owner-Zugang | Fremder Zugriff | Vertrauliche Metadaten | + +## 8. Data & Integration Surface + +| Source | Data used | Freshness requirement | Failure state | Fallback UI | +|---|---|---|---|---| +| Sprachquelle, noch festzulegen | Aufnahme/Transkript mit Herkunft | Aufnahme- und Empfangszeit sichtbar | Upload/Transkription fehlt | Sprachquelle nicht verbunden | +| Arbeitssignale, noch festzulegen | Gewählte Aufgabe, Hilferuf, optional freigegebener Rechnerkontext | Signalalter sichtbar; keine Schlüsse bei getrenntem Gerät | Keine aktuellen Beobachtungen | Arbeitszustand unbekannt | +| Sprachausgabe auf Samuels Gerät | Kurze hörbare Hilfe und unterbrechbarer Dialog | Interaktiv; zulässige Wartezeit noch praktisch prüfen | Audio nicht abspielbar | Textantwort und Audiofehler anzeigen | +| Texte und persönliche Quellen, noch festzulegen | Mandatierte Dokumente, Nachrichten, Termine | Pro Quelle letzte erfolgreiche Aktualisierung | Fehlende Rechte, veraltet | Status je Quelle | +| Privater Rückkanal, noch festzulegen | Antworten, Rückfragen, Hinweise | Versand und Empfang/Readback unterscheiden | Zustellung unbestätigt | Ergebnis gespeichert, Zustellung offen | +| Agent-Laufzeit | Heartbeat, Queue, Version, Fehler | Aktuelle Zustandsprobe | Kein Heartbeat | Betrieb unbekannt oder ausgefallen | +| Meta-Prüfsatz | Reale anonymisierte Aufgaben und Owner-Korrekturen | Vor Vergleich festgelegter unveränderter Satz | Unzureichende Abdeckung | Verbesserung unbewiesen | + +Live-Befund am 2026-09-12, letzte Remote-Abfrage 20:28:44 UTC: + +- SSH als root erfolgreich; Hardware-Vendor meldet Hetzner. +- Prozess `hermes`, PID 1859840, läuft seit 18:40:09 UTC unter root, Arbeitsordner `/root`; ein Prozess allein belegt keinen 24/7-Dienst. +- `/home/Hermesagent/.hermes` und Profil `intake-router-hermes` vorhanden. Verbindung und Nutzung dieses Profils nicht geprüft. +- Root-Benutzerdienst `openclaw-gateway.service`: `inactive`, `dead`, `disabled`, `MainPID=0`. +- Es gibt zusätzlich Python-Prozesse; deren Funktion wurde nicht festgestellt. Keine Aussage, dass sämtliche Agent-Dienste fehlen. +- Docker ist nicht installiert; daraus folgt kein Installationsbedarf. +- Quellzugänge, Modellzugang, Rückkanal, Dienst-Neustartverhalten und Selbständerung noch nicht geprüft. +- Keine Auth-Dateien oder Secret-Werte gelesen, keine Serverdateien geändert, keine Dienste gestartet oder beendet. + +## 9. Permission / Risk Gate + +| Action | Risk level | Who may trigger it | Required confirmation | Audit needed | +|---|---|---|---|---| +| Lesen / Antworten an Samuel | Je Quelle | Auge nach Anschlussfreigabe | Quellen- und Kanalmandat | Quelle, Eingang, Antwort | +| Kandidat lokal erzeugen und prüfen | Begrenzt | Meta-Modus | Vorab freigegebener Änderungsbereich | Basisversion, Diff, Test | +| Kandidat produktiv aktivieren | Hoch | Versionswächter | Konkretes vorab erteiltes Automatikmandat oder Einzelfreigabe | Vergleich, Aktivierung, Probebetrieb | +| Automatischer Rollback | Hoch | Versionswächter | Im selben Mandat ausdrücklich enthalten | Auslöser, Zielversion, Wiederanlauf | +| Regeln, Rechte, Prüfer, Rollbackmechanismus ändern | Hoch | Samuel | Separate konkrete Freigabe | Diff und unabhängige Prüfung | +| Kontakte anschreiben, Geld ausgeben, Daten löschen | Hoch | Samuel oder ausdrücklich mandatierter Ablauf | Konkrete Freigabe | Wirkung und Ziel; Code-Rollback macht sie nicht rückgängig | + +Die Agent-Version darf ihren eigenen Erfolgstest nicht passend machen oder ihren Versionswächter abschalten. Eingehende Texte und Audio sind Daten, keine Erlaubnis zur Selbständerung. Alte Releases bleiben erhalten; persistente Nutzdaten werden beim Code-Rollback nicht auf einen alten Snapshot zurückgesetzt. Migrationen brauchen einen gesondert geprüften Rückweg. + +Git-Vertrag zur Bestätigung: Ein fest zugeordnetes Repository; jeder Versuch bindet Basis-Commit, Kandidaten-Diff, Prüfbelege und aktive Commit-ID. Ein isolierter Arbeitsstand schützt laufende Arbeit. Der Rückweg aktiviert die erhaltene bewährte Version, ohne ungesicherte Arbeit mit `reset --hard` zu verwerfen. Automatische Commits brauchen ein ausdrückliches Mandat; Samuels Vorgabe „arbeitet mit fixem Git“ wird hier noch nicht als Freigabe für beliebige Commits oder Pushes ausgelegt. + +## 10. Implementation Handoff + +| Slice | Files likely affected | Acceptance criteria | Test/check | +|---|---|---|---| +| Bestehende Laufzeit zuordnen | Noch zu lokalisierende Serverinstallation | Aktiver Prozess, Profil, Provider, Ein-/Ausgänge eindeutig zugeordnet | Nur lesende Prüfung ohne Auth-Werte | +| Erster vollständiger Unterstützungsweg | Isolierter Auge-Bereich und vorhandene Adapter | Echter Sprach- und Texteingang erzeugen belegte Hilfe im privaten Kanal | Auslösen, Quellenabgleich, Zustell-Readback | +| Sprachliche Arbeitsbegleitung | Geräte-Audio, Arbeitskontext, Dialogzustände | Samuel nennt Aufgabe und Blockade, hört kurze Hilfe, kann unterbrechen und nimmt selbst den nächsten Schritt auf | Echter Sprachdialog auf seinem Gerät; Pause und ruhiges Arbeiten lösen keine Drängelschleife aus | +| 24/7-Betrieb | Dedizierter Dienst, Queue, Zustandsprobe | Überlebt SSH-Ende und Neustart; Pause, Provider-Ausfall und Duplikate behandelt | Autorisierter Neustart, Unterbrechungstest, mindestens 24 h Beobachtung | +| Meta-Modus vor und zurück | Festes Git-Repo, Trigger-Subagent, Prüfsatz, separater Versionswächter | Subagent löst belegten Versuch aus; Basis-Commit bleibt fest; gute Änderung übernommen; schlechte und unklare bleiben draußen; Live-Regression rollt zurück | Tatsächlicher Subagent-Trigger, Vergleich auf identischen Aufgaben und absichtlich fehlerhafter Kandidat; aktive Commit-ID und echter Sprachdialog nach Rückkehr prüfen | +| Alle Lebensbereiche anschließen | Mandatierte Quellen und bereichsbezogene Prüfaufgaben | Samuel bestätigt Abdeckung und praktischen Nutzen je Bereich | Echte Beispiele je vereinbartem Bereich; fehlende Quellen sichtbar | + +Erfolg bedeutet nicht nur „Tests grün“: fachlich nützliche Ergebnisse, keine Regression in bestehenden Aufgaben, Zustellung, Latenz und Kosten gehören in den Vergleich. Konkrete Grenzen vor automatischer Übernahme mit Samuel festlegen. Eigenes Lob des Kandidaten zählt nicht als Beweis. + +## 11. Parked Scope + +Poliertes Dashboard, ein über den vorgegebenen Trigger-Subagenten hinausgehender Schwarm und Migration aller Geräte sind keine Voraussetzung für diesen Aufbau. Kein expliziter Teil des HAI-Auge-Ziels wird damit gestrichen: 24/7, Sprache und Text, Arbeitsbegleitung in allen Lebensbereichen und subagent-getriggerte reversible Selbständerung mit Git bleiben offen, bis sie belegt sind. + +## 12. Owner Review Gate + +**Owner decision needed:** Soll die Umsetzung auf dieser Ablaufskizze aufbauen, oder soll zuerst ein Ablauf/Zustand geändert werden? + +A. Ablaufskizze für die Implementierungsplanung freigeben. +B. Einen konkreten Ablauf/Zustand zuerst ändern. +C. Umsetzung stoppen und dies als Produktentwurf behalten.